Tim_Mayert
Level 9

System Search for file with specific versions Issue

I am using the System Search to find a file .exe that has a specific version range.

So I set the Minimum version to 11.1.0.0 and Maximum Version to 11.1.999.0 so that it will, if the file exist within that version range, set the FILE_FOUND property.

Now I am doing testing on this property and my first test was to install on a system that has this file installed with the version number of 11.0.579.0. The property got set even though the version of the file does not fall within the min/max range.

Why did this not work in this case?

I tryed with a few more apps that had to be looked for and again I am installing on a system with all the .exe file version lower than the Min version entry and again all of the properties were set as if it passed the versioning check.

So am I doing something wrong in the App search and therefore it is ignoring the version check and just setting the property because it found the file? If this is the case then how do I get it to correct use the versioning range for the condition to set the property?

Thanks for any help.
Labels (1)
0 Kudos
5 Replies
KEiGHT
Level 6

Did you've try it with...

if (FindFile ( szPath , szFileName , svResult )<0)then
LaunchApplication ( szProgram , szCmdLine , szDirectory , SW_NORMAL , nTimeOut , LAAW_OPTION_WAIT );

???
0 Kudos
Tim_Mayert
Level 9

We are using Basic MSI install projects and therefore not using scripts for this.

The System Search help mentions that the if the file is found and within the min and max version numbers that it would then set the property, but as stated it is finding the file, but with a lower version number than what is set for the min value and it sets the property as if the condition passed.

So I just want to know why it passed the condition, even though the version number is NOT in the min/max range....

Thanks,
0 Kudos
KEiGHT
Level 6

I see.. but for full control of the any application is recommended to use at least InstallScript MSI Project 🙂

Sorry , i can't help you in basic , I use only InstallScript Project.

good luck with another user 🙂
0 Kudos
RobertDickau
Flexera Alumni

A quick test---making a DLL with version 11.0.579.0, and a system search for it using version range 11.1.0.0 to 11.1.999.0---seemed to work fine, in that it claimed not to find the file. (Unfortunately, MSI log files don't seem to show reasons an AppSearch did or didn't work, the way major upgrades at least mention it.) Changing the lower bound of the search to 11.0.0.0 resulted in a search that did find the file, also as expected.

If you look in the Signature table of your project using the Direct Editor, is the version range for the search correct?

As a test, if you create an InstallScript project and use VerGetFileVersion (or any other sample program using some other Windows API), is the version returned by Windows for your DLL what you expect?
0 Kudos
Barbara
Level 7

Recently I have the same problem you described: I am using the Signature table to check, if a file in a special version is present on the system. I am looking for the file [CommonFilesFolder]\microsoft shared\VSTO\10.0\VSTOMessageProvide.dll. It must have at least the version 10.0.31118.0
Even if the file is present in a lower version, the connected property in AppSearch gets set. I know I can do this search with InstallScript also, or find some registry keys to check, but I would prefer the out of the box functionality of the Windows Installer.
Did you find a solution for this problem?

Best regards
Barbara
0 Kudos