0

根据本教程,我正在使用 PCP 构建补丁:
http ://wix.sourceforge.net/manual-wix3/patch_building.htm

我有两个 MSI(提取为管理员安装)

  1. 8.11.9.225(这是我要更新的目标)
  2. 8.11.9.353(最新的)。

上面的过程没有任何问题,并生成了我的 .msp 文件,但文件很大(500+ MB),所以我认为差异太大了。

但是,每当我尝试安装此补丁时,它都会显示更改/修复对话框,如果我使用更改或修复,在这两种情况下都会出现错误

“已安装另一个版本。您必须先卸载它才能安装此版本。”

我什至更改了第二个 msi 中的产品代码(在所有表中),但它不能解决任何问题。

这是我的补丁代码:

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <PatchCreation
      Id="{ff8364b1-f222-48fb-bc6b-cfb37b38fcdf}"
      CleanWorkingFolder="yes"
      OutputPath="ABD_Patch_353.pcp"
      WholeFilesOnly="yes"
       AllowProductCodeMismatches="yes"

      >

    <PatchInformation
        Description=  "Patch for build 225"
        Comments=     "Patch for build 225"
        Manufacturer= "Farrukh"
    />

    <PatchMetadata
        AllowRemoval=     "yes"
        Description=      "Patch for build 225"
        ManufacturerName= "Farrukh"
        TargetProductName="My Product 08.11.09.225"
        Classification=   "Update"
        DisplayName=      "My Product 08.11.09.225"
    />
    <Family DiskId="5000"
        MediaSrcProp="ABD_225"
        Name="ABD_225"
        SequenceStart="5000">
        <UpgradeImage  Id="ABD_353" SourceFile="D:\ABD\353\My_Product.msi" >
          <TargetImage Id="ABD_225" SourceFile="D:\ABD\225\My_Product.msi" Order="2" IgnoreMissingFiles="no" />
        </UpgradeImage>
    </Family>

    <PatchSequence PatchFamily="ABDPatchFamily" 
        Sequence="1.0.0.0"
        Supersede="yes"  
    />

  </PatchCreation>
</Wix>

由于它正在生成一个大尺寸的 .msp,我应该将 msp 用于这种尺寸还是进行重大升级?

任何帮助将不胜感激

最好的祝福

4

1 回答 1

0

并通过使用以下命令行安装 msp 来解决:

msiexec /p MyPatch.msp REINSTALLMODE=oums REINSTALL=ALL /qb

我还没有挖掘出 REINSTALLMODE=oums,但它目前正在工作。

于 2012-11-06T12:01:40.297 回答