[wix-users] Windows 10 Identification During Install

Marc Beaudry mbeaudry at matrox.com
Thu Oct 12 11:08:30 PDT 2017

Hello Everyone,

Windows 10 required attested drivers, causing me to have two sets of drivers, one for Windows 10 and a second set of all OSes prior to Windows 10 but greater or equal to 7.

I have searched and found different solutions to my issue, but I can't believe this is how installers work, so I would like the opinion of someone else that has more experience than I on this matter.

--- VersionNT and VersionNT64: When I run an MSI with Verbose logging I get VersionNT = 603 on Windows 10 and on Server 2012. 
I know VersionNT is a private property and should not be used, I was simply experimenting.

--- Next option was a CA using C#: OperatingSystem os = System.Environment.OSVersion;
This too returns 6.X

--- Next Option was a CA in C++. GetVersion or GetVersionEX
This too returns 6.X
For this to report the correct version it requires a modified application manifest file. I do not have an application, so this doesn't work in my scenario.
All my installer has is a CA.DLL

--- Next option is to use the Version Help Functions in a CA: IsWindowsVersionOrGreater()
I have two different version of Windows 10 on my test bench.
This does not work on my older version of Windows 10, this is the first release of 10.
The one that works on my Windows 10 is IsWindows8OrGreater, which makes no sense.

Now on the windows installer side of things how can I correctly identify the OS I am installing on is Windows 10 or Greater??? (IE Servier 2016 as an example)
Asked differently is there a native Windows Installer way of Identifying that the installation OS is 10 or greater

I have this condition, which I know is not good practice as I am using VersionNT, this does not work on Server 2012 and it expects Windows 7 architecture  for Drivers.
<Condition> <![CDATA[VersionNT>602]]></Condition>

Thanks for your help and wisdom,

More information about the wix-users mailing list