15

次のようなMSIセットアップが1つあります。

<Product Id="*" ... UpgradeCode="4207FF3B-5E0D-4311-9DFC-B41AA8DE2965" />
    <MajorUpgrade DowngradeErrorMessage="Can't downgrade" />

期待どおりに機能します。

  1. 製品をインストールする
  2. 再コンパイル(効果的に新しいIDを生成)
  3. 新しいmsiファイルを開始すると、変更ビューが表示され、製品を修復またはアンインストールできます。

良い。しかし、それからやけどが来る。

私は、最も単純なバンドルを作成しました。標準のブートラッパーを使用し、MsiPackageを1つ追加するだけです。

<MsiPackage SourceFile="$(var.Setup.TargetPath)" />

問題は、再コンパイルするたびに、何も変更せずに、すでにインストールされている製品の横に製品をもう一度インストールできることです。これにより、ARPエントリが重複します。

バンドルexeファイルを2回再コンパイルして実行しないと、期待どおりにセットアップの変更画面が表示されます。MSIだけで行ったのと同じ動作を書き込みで行うにはどうすればよいですか?

4

1 に答える 1

8

バンドルのバージョン番号を増やすと、Burn は以前のバージョンをアップグレードして削除します。

于 2012-07-21T05:38:59.473 に答える