我正在使用 Burn 来安装我的先决条件。其中一个先决条件要求我检查当前操作系统是否是 Windows 7 的家庭基本版。我尝试使用 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)”评估为假。
以上条件适用于 Wix 3.7 Burn。它在 Windows 7 Home Basic 上总是给我错误的结果,而在 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')">