WiX 3.6补丁文件XML
本文关键字:文件 XML 补丁 WiX | 更新日期: 2023-09-27 18:29:51
在以下补丁XML中,升级/目标映像应包含在哪里?我需要包含ValidateProductId元素,这就是我不能使用以前的XML结构的原因。
<Patch AllowRemoval="yes"
Classification="Update"
Comments="Patch"
Description="Patch"
DisplayName="Patch"
Manufacturer="..."
MoreInfoURL="http://..."
TargetProductName="Szenario Rechner"
Codepage="1252">
<Media Id="1000"
Cabinet="Patch.cab"
EmbedCab="yes"
Source="Cab1" >
<PatchBaseline Id="RTM">
<Validate ProductId="no" />
</PatchBaseline>
</Media>
<PatchFamily Id='pf1'
Version='1.2.7.0'
Supersede='yes'>
<ComponentRef Id="Szenariorechner" />
</PatchFamily>
</Patch>
下面是我以前的补丁XML。
<PatchCreation Id="224C316C-5894-4771-BABF-21A3AC1F75FF"
CleanWorkingFolder="yes"
WholeFilesOnly="yes">
<PatchInformation Description="Patch 1.0.4475.23974"
Comments="Patch 1.0.4475.23974"
ShortNames="no"
Languages="1033"
Compressed="yes"
Manufacturer="..." />
<PatchMetadata AllowRemoval="yes"
Description="Patch 1.0.4475.23974"
ManufacturerName="..."
TargetProductName="Update"
MoreInfoURL="http://"
Classification="Update"
DisplayName="Patch 1.0.4475.23974" />
<Family DiskId="2"
MediaSrcProp="Sample"
Name="Update"
SequenceStart="600">
<UpgradeImage SourceFile="C:'new.msi"
Id="PatchUpgrade">
<TargetImage SourceFile="C:'old.msi"
Order="2"
Id="PatchUpgrade"
IgnoreMissingFiles="no" />
</UpgradeImage>
</Family>
<PatchSequence PatchFamily="SamplePatchFamily"
Sequence="1.0.4475.23974"
Supersede="yes" />
</PatchCreation>
您的旧补丁创作是指使用补丁创建属性创建补丁。你所提到的这个新版本使用的是纯WiX。正如您所看到的,UpgradeImage/TargetImage对对于后一个不需要。
相反,您应该直接在Patch根目录下创建一个TargetProductCodes元素,并添加一些TargetProductCode元素作为其直接子项:
<TargetProductCodes>
<TargetProductCode Id="PUT-PRODUCT-CODE-HERE" />
<TargetProductCode Id="PUT-PRODUCT-CODE-HERE" />
<TargetProductCode Id="PUT-PRODUCT-CODE-HERE" />
...
<TargetProductCode Id="PUT-PRODUCT-CODE-HERE" />
</TargetProductCodes>
当你构建一个补丁时,你可以向torch.exe提供基本和更新的MSI(或WIXPDB)文件来生成diff。希望它能有所帮助。我建议你再次审视"纯WiX"方法,以更好地理解它。