Gaurav
Gaurav

Reputation: 179

WiX Burn 3.7 MsiNTSuitePersonal showing wrong value for Windows 7 Home Basic

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

Answers (1)

Rob Mensching
Rob Mensching

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

Related Questions