0

こんにちは、バージョン1とバージョン2に設定した設定です。ただし、アップグレード用にMSIパッケージをインストールしているときに、メッセージボックスが表示され、古いバージョンを自動的に削除するのではなく、プログラムの追加/削除から以前のバージョンのインストールを削除するように求められます。新しいバージョンをインストールします。

設定を変更する必要がある場合はお知らせください。

以下のバージョン1の設定:

  <Product Id="*" Name="CBUDirectMSI" Language="1033" Version="1.0.0.0" Manufacturer="" UpgradeCode="5fa35d9d-5b5a-40f0-9607-e381e728a146">

        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"/>

        <Upgrade Id="5fa35d9d-5b5a-40f0-9607-e381e728a146">
          <UpgradeVersion Property="OLD_VERSION_FOUND" 
           Minimum="1.0.0.0" 
           Maximum="2.0.0.0" 
           IncludeMinimum="yes" 
           IncludeMaximum="no" 
           OnlyDetect="no" 
           IgnoreRemoveFailure="no" 
           MigrateFeatures="yes" 
           Language="1033" />
          <UpgradeVersion 
          Property="NEWER_VERSION_FOUND" 
          Minimum="2.0.0.0" 
          IncludeMinimum="no" 
          OnlyDetect="yes" 
          Language="1033" />
        </Upgrade>

        <Condition Message="A newer version of [ProductName] is already installed. Exiting installation.">

        </Condition>

        <InstallExecuteSequence>
          <InstallExecute Before="RemoveExistingProducts" />
          <RemoveExistingProducts Before="InstallFinalize" />
        </InstallExecuteSequence>
    </Product>

バージョン2の設定

<Product Id="B55596A8-93E3-47EB-84C4-D7FE07D0CAF4" Name="CBUDirectMSI" Language="1033" Version="2.0.0.0" Manufacturer="" UpgradeCode="5fa35d9d-5b5a-40f0-9607-e381e728a146">

    <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine"/>


    <Upgrade Id="5fa35d9d-5b5a-40f0-9607-e381e728a146">
      <UpgradeVersion Property="OLD_VERSION_FOUND" 
       Minimum="1.0.0.0" 
       Maximum="2.0.0.0" 
       IncludeMinimum="yes" 
       IncludeMaximum="no" 
       OnlyDetect="no" 
       IgnoreRemoveFailure="no" 
       MigrateFeatures="yes" 
       Language="1033" />
      <UpgradeVersion 
      Property="NEWER_VERSION_FOUND" 
      Minimum="2.0.0.0" 
      IncludeMinimum="no" 
      OnlyDetect="yes" 
      Language="1033" />
    </Upgrade>

    <Condition Message="A newer version of [ProductName] is already installed. Exiting installation.">

    </Condition>

    <InstallExecuteSequence>
      <InstallExecute Before="RemoveExistingProducts" />
      <RemoveExistingProducts Before="InstallFinalize" />
    </InstallExecuteSequence>
</Product>

Wixインストーラーは新しいバージョンを認識しますが、古いバージョンを削除せず、新しいバージョンをインストールします。以下のメッセージボックスに「この製品の別のバージョンがすでにインストールされています」というエラーメッセージボックスが表示されます。このバージョンのインストールは続行できません。この製品の既存のバージョンを構成または削除するには、「コントロールパネルのプログラムの追加と削除」を使用してください。

誰かが私がどこで間違っているのか私に提案できますか?

4

1 に答える 1

1

現在実装しているMajorUpgradeタグの代わりに、タグを使用することをお勧めします。使用するプロセスははるかに簡単です。UpgradeMajorUpgrade

<MajorUpgrade
    Schedule="afterInstallInitialize"
    DowngradeErrorMessage="A later version of [ProductName] is already installed. Setup will now exit.">

例: http://wix.sourceforge.net/manual-wix3/major_upgrade.htm

于 2013-02-26T17:08:16.430 に答える