0

ビルド サーバーでセットアップを自動作成し、リリース バージョンと現在のビルド バージョンの間にパッチを作成しようとしています。

悲しいことに、私はそれを機能させることができません。

これは私の Patch.wxs です:

  <Patch  AllowRemoval="no" Manufacturer="Company" DisplayName="Product Patch" Description="Patch" Classification="Update">
    <Media Id="5000" Cabinet="RTM.cab">
      <PatchBaseline Id="RTM"/>
    </Media>
    <PatchFamily Id="SampleFamily" Version="1.0.0.0" Supersede="yes">
      <FeatureRef Id="ProductFeature"/>
    </PatchFamily>
  </Patch>

postBuild を使用して、パッチファイルをコンパイルおよびリンクします。

"C:\Program Files (x86)\WiX Toolset v3.8\bin\candle.exe" $(ProjectDir)Patch.wxs -dDebug -dOutDir=$(TargetDir) -o Patch.wixobj 
"C:\Program Files (x86)\WiX Toolset v3.8\bin\light.exe" $(TargetDir)Patch.wixobj -o  $(TargetDir)Patch.wixmsp

ここまでは、すべてうまくいくと思います。ビルドが成功した後、torch を使用して変換を作成します。

torch -p -xi release.wixpdb latestBuild.wixpdb -out diff.wixmst 

差分が正常に作成されました。次に、pyro はファイルに違いはないという警告を表示します。

pyro Patch.wixmsp -t RTM diff.wixmst -out patch.msp"
warning PYRO1079 : The cabinet 'RTM.cab' does not contain any files.  If this patch contains no files, this warning can likely be safely ignored.  Otherwise, try passing -p to torch.exe when first building the transforms, or add a ComponentRef to your PatchFamily authoring to pull changed files into the cabinet.

msi ファイルをインストールすると、ファイルが異なり、2 つの異なるインストールが行われます。しかし、パッチをインストールしても何も変わりません。PatchFamily をいじってみましたが、うまくいきません。

変更を含むパッチ ファイルを取得するにはどうすればよいですか?

4

2 に答える 2

0

wix ツールがファイル コンテンツの変更を認識していないようです。適切に動作させるには、WIX チュートリアルの説明に従ってください。

ここでは、コンポーネントのソースにバージョン部分を追加するように特に注意してください。つまり、1.0 は 1.0 ソースからコンポーネント ファイルを取得し、2.0 は 2.0 ルート フォルダからソース ファイルを取得するとします。このように、ファイルは期待どおりにパッチを作成しています。

于 2015-05-15T10:07:20.507 に答える
-1

この問題の原因がわかりました。

ビルド サーバーは、ビルドごとに個別のフォルダーを作成しません (ビルド自体ではなく、ドロップ用のみ)。そのため、パッチを作成するときに、両方の wixpdb ファイルがビルド フォルダーの同じファイルを参照するため、違いはありません。見つかった。ここでビルドサーバーを変更して、ドロップ フォルダー内に管理インストールを作成し、最終的な msi ファイルを使用して変換を作成しました。

そのように作成された pyro の変換を使用すると、変更されたファイルを含む期待どおりの msp が作成されます。

于 2014-09-17T14:38:45.717 に答える