[wix-users] Windows 10 Detection

Jürgen Schäpker Juergen.Schaepker at giepa.de
Tue May 24 00:58:16 PDT 2016


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


More information about the wix-users mailing list