[wix-users] Windows 10 Detection

Phil Wilson phil.wilson at mvps.org
Tue May 24 11:32:11 PDT 2016


I think most people get around the universal CRT issue by running the VC
Redist to install runtime support (because it includes the UCRT for older OS
versions).  

What's the issue with shortcut properties? Is it the 1946 error? 

The WindowsBuild property might help. It seems to be reliable, and MS have
implied that using the OS version is not a good practice compared to
checking if the OS supports the feature you want to use, which WindowsBuild
kinda-sorta does. 

Phil W 

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of
Jürgen Schäpker
Sent: Tuesday, May 24, 2016 5:22 AM
To: WiX Toolset Users Mailing List
Subject: Re: [wix-users] Windows 10 Detection

Well, it's Microsofts confusing versioning, different APIs return different
results, some depending on compatibilty settings in the manifest. For the
purpose at hand we really do need to check for 6.3.

________________________________________
Von: wix-users [wix-users-bounces at lists.wixtoolset.org] im Auftrag von Colin
Sim [Colin.Sim at ipfx.com]
Gesendet: Dienstag, 24. Mai 2016 10:14
An: WiX Toolset Users Mailing List
Betreff: Re: [wix-users] Windows 10 Detection

Hi JS,

Why is the minimum file version 6.3.10000.0 and not something like 10.0.0.0?

Will 6.4.0.0 be better?

Thanks,
Colin

-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of
Jürgen Schäpker
Sent: Tuesday, 24 May 2016 7:58 p.m.
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Windows 10 Detection

Hi,

take a look at this project:

https://github.com/dokan-dev/dokany/tree/master/dokan_wix

What works for us:

    <Property Id="WIN10FOUND" Secure="yes">
      <DirectorySearch Id="searchSystem" Path="[SystemFolder]" Depth="0">
        <FileSearch Id="searchFile"
                    Name="advapi32.dll"
                    MinVersion="6.3.10000.0"/>
      </DirectorySearch>
    </Property>

and then for a component:

              <Component Id="Win10Component" Guid="{...}">
                <Condition>VersionNT = 603 AND WIN10FOUND</Condition> ...

best regards,
JS
________________________________________
Von: wix-users [wix-users-bounces at lists.wixtoolset.org] im Auftrag von Colin
Sim [Colin.Sim at ipfx.com]
Gesendet: Dienstag, 24. Mai 2016 09:04
An: WiX Toolset Users Mailing List
Betreff: [wix-users] Windows 10 Detection

Hello,

I have a MSI installer that needs to do perform different tasks when run on
different operating systems.

As an example, check that KB2999226 (Universal CRT) is applied to operating
systems prior to Windows 10 before the VC140 CRT merge module is installed
(i.e. merge module will not work without that update). On Windows 10, this
update doesn't exist and is applied by default.

Another example is to properly support notifications (Windows 10 action
centre) the deployed shortcut on a Windows 10 machine needs an additional
shortcut property applied. This property does not exist on earlier OS
versions and trying to set it will cause an error.

The VersionNT property is set to 603 on Windows 10, instead of 1000. I have
looked online for how to work around this issue but none of them work. The
suggestions I have tried are:

1.       Use a custom action that calls RtlGetVersion to get the OS version.
The result of RtlGetVersion is correct when it's called from an .EXE but
gives the same result as VersionNT (not the result I'm looking for) when
invoked from a native .DLL custom action.

2.       Verify that a core OS file (e.g. user32.dll, advapi32.dll, and so
on) has minimum version. The property associated with the file search is
never set when I specify a minimum file version of 10.0.10240.16xx (or one
less than that to work around the file checking issue). However, the
property is set if I say set the minimum version to 6.0.6001.1750.

Both experiments seem to suggest there is another layer of virtualisation
applied in Windows 10 that make it impossible for a MSI to detect the OS is
it running on.

How have other people worked around this issue?

Is the only solution to wrap the MSI in a WiX bundle? If so, how does this
bundle get deployed through AD (we still have a lot of customers who only
deploy through AD)?

Thanks,
Colin

This e-mail contains IPFX information which may be privileged or
confidential and is intended for use only by the individual(s) or entity
named above. If you are not the intended recipient, note that disclosing,
copying, distributing or using this information is prohibited. If you have
received this e-mail in error, please advise immediately to the e-mail
address above and permanently delete this message and any attachments.
Please note that any views or opinions presented in this email are solely
those of the author and do not necessarily represent those of the company.
We monitor our e-mail system and may record your e-mails. Thank you.

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/

Email secured by Check Point

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/

Email secured by Check Point

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/





More information about the wix-users mailing list