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 3.6补丁文件XML

您的旧补丁创作是指使用补丁创建属性创建补丁。你所提到的这个新版本使用的是纯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"方法,以更好地理解它。