Reputation: 179
I am using Burn to get my prerequisites installed. One of the prerequisites requires me to check if the current OS is the Home Basic edition of Windows 7. I tried checking it with MsiNTSuitePersonal as follows.
<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)"/>
Following is the log from WiX Burn Setup.
[093C:02E0][2013-04-01T17:14:21]i052: Condition '(MsiNTSuitePersonal = 1)' evaluates to false.
The above condition is for Wix 3.7 Burn. It always gives me the result false on Windows 7 Home Basic, while using the same thing in an MSI it works perfectly. See the following log.
Property(S): MsiSystemRebootPending = 1 Property(S): VersionMsi = 5.00 Property(S): VersionNT = 601 Property(S): WindowsBuild = 7600 Property(S): ServicePackLevel = 0 Property(S): ServicePackLevelMinor = 0 Property(S): MsiNTProductType = 1 Property(S): MsiNTSuitePersonal = 1
Also, I tried checking the same condition using the registry, but how do I compare a string in InstallCondition?
I would like to do something as follows.
<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')">
Upvotes: 2
Views: 412
Reputation: 35901
I believe the problem is that you are referring to MsiNTSuitePersonal
which is the Windows Installer built-in property. The variable in Burn you are looking for is NTSuitePersonal
(note: it's not prefixed with Msi
, because it's not provided by the Windows Installer).
For the complete list, see Burn Built-in Variables.
Upvotes: 3