0

What might I be doing wrong? My Windows Installer AppSearch is getting a different version for RDP binaries on Windows 10 than is reported by Explorer/Properties and by wmic .

Our product requires recent RDP, so the MSI uses AppSearch to check the file version of mstscax.dll. Weirdly it finds version 6.3, while wmic and Explorer both report the version as 10.0 (on a fully updated Win 10 system).

Using wmic:

C:\Users\Alan> wmic datafile where name="C:\\windows\\system32\\mstscax.dll" get manufacturer, name, version
Manufacturer           Name                             Version
Microsoft Corporation  c:\windows\system32\mstscax.dll  10.0.15063.483

Right-clicking the file in Explorer also shows the version as 10.0.15063.483

But using this WiX Appsearch code fails:

    <Property Id="RDPVERSIONWIN10">
        <DirectorySearch Id="Win10RdpVer" Path="[System64Folder]">
            <FileSearch Name="mstscax.dll" MinVersion="6.4" />
        </DirectorySearch>
    </Property>
    <Condition Message="Appsearch for mstscax.dll failure">
        <![CDATA[Installed OR RDPVERSIONWIN10 ]]>
    </Condition>

The condition only succeeds with MinVersion="6.3". Interestingly/coincidentally, on Windows 7 the latest RDP version is 6.3

I can't understand this .. can anyone explain please?

= = = = = = = = = = = = = = = = = = = = = = = = = = =

For completeness, here's all the (minimal) wix code for my test

<?xml version='1.0' encoding='utf-8'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>

<!-- testing appsearch for mstscax.dll - weird result on Win10 -->

    <Product Name='Foobar 1.0' Manufacturer='Acme Ltd.'
        Id='8DA5E740-A17F-4B5C-9305-28622608455A'
        UpgradeCode='97B91883-D329-4A31-AF11-29BB7DA1775F'
        Language='1033' Codepage='1252' Version='1.0.0'>

        <Package Id='*' Keywords='Installer' Description="Acme's Foobar 1.0 Installer"
            Comments='Foobar is a registered trademark of Acme Ltd.' Manufacturer='Acme Ltd.' Platform="x64"
            InstallerVersion='400' Languages='1033' Compressed='yes' SummaryCodepage='1252' />

        <Property Id="RDPVERSIONWIN10">
            <DirectorySearch Id="Win10RdpVer" Path="[System64Folder]">
                <FileSearch Name="mstscax.dll" MinVersion="6.4" />
            </DirectorySearch>
        </Property>
        <Condition Message="Appsearch for mstscax.dll failure">
            <![CDATA[ Installed OR RDPVERSIONWIN10 ]]>
        </Condition>

        <Media Id='1' Cabinet='Sample.cab' EmbedCab='yes' DiskPrompt="CD-ROM #1" />
        <Property Id='DiskPrompt' Value="Acme's Foobar 1.0 Installation [1]" />

        <Directory Id='TARGETDIR' Name='SourceDir'>
            <Directory Id='ProgramFilesFolder' Name='PFiles'>
                <Directory Id='Acme' Name='Acme'>
                    <Directory Id='INSTALLDIR' Name='Foobar 1.0'>
                        <Component Id='MainExecutable' Guid='C256A4D0-2F98-401B-B53A-9892D3FFABB9'>
                            <File Id='FoobarEXE' Name='FoobarAppl10.exe' DiskId='1' Source='FoobarAppl10.exe' KeyPath='yes'/>
                        </Component>
                    </Directory>
                </Directory>
            </Directory>
        </Directory>

        <Feature Id='MainExecutable' Level='1'>
            <ComponentRef Id='MainExecutable' />
        </Feature>

  </Product>
</Wix>

Fwiw using Orca shows the values in the MSI tables as correctly matching the WiX code.

Alan
  • 45
  • 5
  • More weirdness: I inserted your snippet into my msi project. The file was not found. That msi is a part of the bundle. When a bundle is installed, the file IS found. When the msi is installed as admin, the file also not found. – dvorn Nov 26 '17 at 12:34
  • 1
    This sounds like another app compat version lie from Windows. See https://stackoverflow.com/questions/31932646 and related for more angles on dealing with app compat. – Michael Urman Nov 26 '17 at 19:15

0 Answers0