私は、WiX Toolset 3.10.2を使用して自分の製品のインストーラをビルドしています。複数のインストールを防止する
ソリューションに2つのWIXプロジェクトがあり、1つはコンパイルされたバイナリからMSIを構築し、もう1つはWixStandardBootstrapperApplicationを使用してMSIからsetup.exeをビルドします。
バージョンを増やしても正常に動作し、アップグレードを提案します。
同じインストーラを2回目に起動すると正常に動作し、「設定の変更」画面が表示されます。
問題は、バージョンを増やすことなくインストーラを再構築した後、以前のインストールを検出できず、うれしく2度目にインストールされるためです(「アンインストール」コントロールパネルには同じ項目が複数あります)。
これをやりなおす方法と、製品のインストール済みインスタンスを1つだけ許可する方法はありますか?
MSI:
<?include "..\Version.wxi"?>
<Product Id="*" Name="xxx" Language="1033" Version="$(var.vvvVersion)"
Manufacturer="yyy" UpgradeCode="0d88cab0-d278-43bb-b891-607bc01c4dec" >
<MajorUpgrade DowngradeErrorMessage="A newer version of xxx is already installed." />
EXE:
<?include "..\Version.wxi"?>
<Bundle Name="xxx" Manufacturer="yyy" Version="$(var.vvvVersion)"
UpgradeCode="eac46fb0-09d1-4c29-8fc1-984dddb35e50"
IconSourceFile="$(var.SolutionDir)applicationIcon.ico" >
もし彼がそれを行っても(デフォルトでこれを有効にする議論がある)、MSIはバージョンをアップグレードすることなく同様の問題を呈します。私は実際にあなたのMSIがファイルバージョンとバンドルを拾い上げて製品バージョンを手に入れるためのサポートを追加しました: MSIのアップグレードテーブルを変更して、同じバージョンの後続ビルドの変更をテストするために必要な同じバージョンのアップグレードを許可することもできます。 –
Heath