Windows Installer プロパティを使用した条件の設定例を紹介します。
Windows Installer プロパティは、インストールの実行条件やカスタムアクションの実行条件などに使用できます。
以下では、使用頻度の高いプロパティと使用例を紹介します。
実行環境の OS を条件にする
例)Windows XP かどうかを判定する場合
VersionNT = 501
例)Windows Vista かどうかを判定する場合
(VersionNT = 600) AND (MsiNTProductType =1)
例)Windows 7 かどうかを判定する場合
(VersionNT = 601) AND (MsiNTProductType =1)
例)Windows Server 2008 R2 かどうかを判定する場合
(VersionNT = 601) AND (MsiNTProductType <>1)
例)XP Home Edition かどうかを判定する場合
(VersionNT = 501) And (MsiNTSuitePersonal =1)
例)Windows XP Professional x64 かどうかを判定する場合
(VersionNT64 = 502) AND (MsiNTProductType = 1)
VersionNT プロパティには、OS のバージョンを格納します。
64ビットの OS 上で動作している場合のみ、VersionNT64 プロパティには、OS のバージョンを格納します。
| OS | VersionNT | VersionNT64 |
| Windows NT 4.0 | 400 | - |
| Windows 2000 | 500 | - |
| Windows XP | 501 | 502(*) |
| Windows Server 2003 | 502 | 502 |
| Windows Vista | 600 | 600 |
| Windows Server 2008 | 600 | 600 |
| Windows 7 | 601 | 601 |
| Windows Server 2008 R2 | 601 | 601 |
| Windows 8 | 602 | 602 |
| Windows Server 2012 | 602 | 602 |
| Windows 8.1 | 603 | 603 |
| Windows Server 2012 R2 | 603 | 603 |
*)Windows XP x64 の判定では、VersionNT64 プロパティを使用します。
MsiNTProductType プロパティには、Windows の製品タイプを格納します。
| 製品タイプ | MsiNTProductType |
| WorkStation (Windows XP Professionalなど) |
1 |
| Domain controller | 2 |
| Server | 3 |
製品のインストール状態を条件にする
インストール状態の判別
| 状態 | 条件 |
| 初回インストール | Not Installed |
| メンテナンス | Installed 変更のみ:Installed AND _IsMaintenance="Change" 修復のみ:Installed AND _IsMaintenance="Reinstall" |
| アンインストール | REMOVE="ALL" (InstallValidate アクションの後) |
| マイナーアップグレード | IS_MINOR_UPGRADE(*) |
| メジャーアップグレード | IS_MAJOR_UPGRADE(*) |
*) IS_MINOR_UPGRADE および IS_MAJOR_UPGRADE は各アップグレード時のみ'真'に評価される
プロパティとなりますので、プロパティ名のみで条件として使用可能です。
機能の状態を条件にする
特定の機能の状態を検出して、インストール条件に設定することができます。
条件は、CostFinelize アクション以降で使用できます。
例)機能がローカルにインストールされるときだけ実行し、修復時は動作しない場合
(&FeatureName=3) AND NOT(!FeatureName=3)
例)機能が削除されるときだけ実行する場合
(&FeatureName=2) AND (!FeatureName=3)
機能の状態は、以下のような式にて判定されます。
&FeatureName=n
!FeatureName=n
FeatureName の前についている & や ! は以下のような意味を持つ接頭辞です。
& : 機能のアクション状態(機能 FeatureName が選択状態)
! : 機能のインストール状態
&FeatureName=n の n は、以下の表のような意味を持ちます。
&FeatureName=3 の場合、機能がローカルにインストールするように選択されている場合という意味になります。
| 値(n) | 意味 |
| -1 | アクションなし(機能の状態に変更がないとき) |
| 1 | 機能がアドバタイズされているとき |
| 2 | 機能がインストールされていないとき(アンインストールされる) |
| 3 | 機能がローカルにインストールされたとき |
| 4 | 機能をソースから実行するとき |
参考記事
Operating System Properties
Conditional Statement Syntax
Examples of Conditional Statement Syntax
Conditions to Determine Installation States
検索文字列:インストール条件、ターゲットシステム、OS、カスタムアクション、MSI