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.