Burn を使用して前提条件をインストールしています。前提条件の1つとして、現在のOSがWindows 7のHome Basicエディションであるかどうかを確認する必要があります。以下のようにMsiNTSuitePersonalで確認してみました。
<ExePackage Id="someId"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
InstallCommand="/q"
SourceFile="Redist\some.exe"
DisplayName="Display something"
InstallCondition="(MsiNTSuitePersonal = 1)"/>
以下は、WiX Burn Setup からのログです。
[093C:02E0][2013-04-01T17:14:21]i052: 条件 '(MsiNTSuitePersonal = 1)' は false と評価されます。
上記の条件は Wix 3.7 Burn の場合です。Windows 7 Home Basicでは常に結果がfalseになりますが、MSIで同じことを使用しても完全に機能します。以下のログを参照してください。
プロパティ (S): MsiSystemRebootPending = 1 プロパティ (S): VersionMsi = 5.00 プロパティ (S): VersionNT = 601 プロパティ (S): WindowsBuild = 7600 プロパティ (S): ServicePackLevel = 0 プロパティ (S): ServicePackLevelMinor = 0 プロパティ ( S): MsiNTProductType = 1 プロパティ (S): MsiNTSuitePersonal = 1
また、レジストリを使って同じ条件を調べてみたのですが、InstallCondition で文字列を比較するにはどうすればよいでしょうか。
私は次のように何かをしたいと思います。
<ExePackage Id="UWSOptionfor7Home"
Cache="no"
Compressed="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
InstallCommand="/q"
SourceFile="Redist\UltiDev\UltiDev Web Server Setup.exe"
DisplayName="UltiDev Web Server"
InstallCondition="(IsWin7PersonalEdition = 'Terminal Server Personal')">