0

3 つのバンドルがあり、コードは以下のとおりです。1.0.0、1.0.0.1、および 2.0.0。

1.0.0、1.0.0.1、および 2.0.0 がインストールされている場合、View Installed Updates にはまだ 1.0.0.1 がインストール済みとしてリストされます。最後のバージョンがアンインストールされるまでそこに残ります。

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle Name="Burn Installer" Version="1.0.0" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="...">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
      <MsiPackage Id="MainPackage" SourceFile="TESTLIST_v1.0.0_en-us.msi" Vital="yes" DisplayInternalUI="yes" />
    </Chain>
  </Bundle>
</Wix>

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle Name="Patch 1.0.0.1" ParentName="Burn Installer" Version="1.0.0.1" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="...">
    <RelatedBundle Id="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Action="Patch"/>     
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
      <MspPackage Id="Patch" SourceFile="TESTLIST_v1.0.0.1_en-us.msp" Vital="yes" DisplayInternalUI="no" PerMachine="yes" Permanent="no"/>
    </Chain>
  </Bundle>
</Wix>


<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Bundle Name="Burn Installer" Version="2.0.0" Manufacturer="LANSA" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA" Copyright="..." AboutUrl="...">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
    <Chain>
      <MsiPackage Id="MainPackage" SourceFile="TESTLIST_v2.0.0_en-us.msi" Vital="yes" DisplayInternalUI="yes" />
    </Chain>
  </Bundle>
</Wix>

アップグレードが適用されると、以前のバージョンとパッチはすべて、[プログラムと機能] および/または [インストールされた更新プログラムの表示] から削除する必要があります。MSI/MSP を Bundler 経由ではなく直接インストールした場合とまったく同じです。

4

1 に答える 1

1

WiX 3.9以降の答えは次のとおりです...

メジャー アップグレード バンドルでは、UpgradeCode が一致する必要があります。以下の例では「AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA」。

パッチ バンドルでは、アップグレード コードは一意である必要があり、バンドルで使用される他の GUID とは無関係です。例では「CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC」。

メジャー アップグレード バンドルでは、RelatedBundle は一意である必要があります。この GUID は、そのメジャー アップグレードのすべてのパッチで使用されます。例では「BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB」。

これらの設定により、メジャー アップグレードが [プログラムと機能] に表示され、パッチが [インストールされた更新の表示] に表示されるようになります。

<Bundle Version="1.0.0" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA">
    <RelatedBundle Id="BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB" Action="Detect" />
</Bundle>
<Bundle Version="1.0.0.1" UpgradeCode="CCCCCCCC-CCCC-CCCC-CCCC-CCCCCCCCCCCC">
    <RelatedBundle Id="BBBBBBBB-BBBB-BBBB-BBBB-BBBBBBBBBBBB" Action="Patch" />
</Bundle>
<Bundle Version="2.0.0" UpgradeCode="AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA">
    <RelatedBundle Id="DDDDDDDD-DDDD-DDDD-DDDD-DDDDDDDDDDDD" Action="Detect" />
</Bundle>
于 2016-08-09T01:37:48.587 に答える