xochi

Our software makes a custom installer which we have modified to work fine under Vista. However, I just got a bug report from a user who found some unusual bugs. He created some debug logs, which show that the EXE was apparently being run under XP SP2 Compatibility Mode (e.g. the app was reporting a windows OS version # of 5.1).

I asked the user to right-click the app and look at properties -- XP Compatability Mode was not checked.

I asked him to rebuild the installer, using a new name (such as Setup2.exe). When he ran this new file, it did not run in Compatibility mode.

Further research reveals that in some cases, after the Installer is run, you get the dialog box "This program may not have installed properly -- Yes it installed fine, No it did not".

I'm wondering if perhaps at one point, the user clicked "No it didn't install", and then Vista decided to set some internal flags to run it in XP compatibility mode Is this possible If so-

(A) why did the EXE not show that it was set for XP compatibility mode

(B) is there any way to detect via code that an app is under Vista / XP Compatibiilty mode

(C) is there any way to prevent Vista from doing the "your installer may not have installed properly" check

thx!



Re: Application Compatibility for Windows Vista Odd bug with XP Compatability Mode for Setup.exe?

AndyCadley

xochi wrote:

(C) is there any way to prevent Vista from doing the "your installer may not have installed properly" check

I haven't tried, but if you include a Vista manifest in the installer executable it should prevent any Application Compatibilty behaviour (since you've declared that it is Vista compatible.)





Re: Application Compatibility for Windows Vista Odd bug with XP Compatability Mode for Setup.exe?

Raymond Parsons - MSFT

xochi -

On Vista, the Program Compatibility Assistant was added to help diagnose application compatibility problems. Unfortunately, we cannot always be 100% correct with our heuristics, thus the problem that you're seeing.

As AndyCadley said, if the application is marked with a UAC manifest, the application will be excluded permanently from the Program Compatibility Assistant.

To correct your problem, please mark your application with a UAC manifest. More information on how to do this can be found here:

http://msdn2.microsoft.com/en-us/library/aa480150.aspx

You can read more about the Program Compatibility Assistant here:

http://msdn2.microsoft.com/en-us/library/aa480152.aspx#appcomp_topic18

Please post a reply if I can be of any additional help.

Raymond Parsons
Microsoft Corporation