以前のインストーラーがNSIS (Nullsoft Scriptable Install System) で作成された既存の製品のインストーラーを作成しています。WiXを使用して、この製品の msi ベースのインストーラーを作成する必要があります。私はこれに関して特定の質問があります:-
- アプリケーションがターゲット マシンにインストールされているかどうかを検出する方法は? アプリケーションは、NSIS (古いバージョン) または MSI (現在以降) を使用してインストールされている可能性があります。
- ターゲット マシンに古い/同じバージョンの製品がインストールされている場合にアップグレードできる WiX インストーラーを作成する方法。いくつかのサイトでこのトピックを見つけましたが、それらはすべて機能していません。具体的には、ソフトウェアのリリースごとに、インストーラー コード ベースでどの情報 (GUID、バージョンなど) を変更する必要があるかを知りたいです。
- 当社の製品は、毎年 3 つまたは 4 つのバージョンがリリースされています。どのようなインストーラーが最適ですか?
Wix コードの製品要素のバージョンを変更しただけでは、新しいインストーラーは古いインストーラーを置き換えることができないことに注意してください。新しいバージョンのインストーラーをダブルクリックすると、エラー ダイアログが表示されます。
この製品の別のバージョンが既にインストールされています。このバージョンのインストールを続行できません。この製品の既存のバージョンを構成または削除するには、[コントロール パネル] の [プログラムの追加と削除] を使用してください。」
サンプルコード:
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" >
<Product Name='Baton' Id='41B8F929-B6CF-41BE-9E40-C96D9BD6D672'
UpgradeCode='E1F03FA4-D470-4FA6-86BA-F5CDD3007C1D'
Language='1033' Codepage='1252' Version='1.0.0' Manufacturer='Company Name.'>
<Package Id='*' Keywords='Installer' Description="product Installer"
Comments='product comments'
InstallerVersion='100' Languages='1033' Compressed='yes'
SummaryCodepage='1252' />
<Upgrade Id='E1F03FA4-D470-4FA6-86BA-F5CDD3007C1D'>
<UpgradeVersion OnlyDetect='no' Property='PREVIOUSFOUND' Minimum='1.0.0'
IncludeMinimum='yes' Maximum='1.1.0' IncludeMaximum='yes' />
</Upgrade>
<!-- ***Install execution sequence*** -->
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>