我在我们的构建服务器上自动创建了安装程序,并尝试在已发布版本和当前构建版本之间创建补丁。
可悲的是我无法让它工作。
这是我的 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 -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 文件,文件会有所不同,我会得到两个不同的安装。但如果我安装补丁,没有任何改变。我玩过 PatchFamily,但我无法让它工作。
如何获取包含我的更改的补丁文件?