Vista application compatibility

From NSIS Wiki
Jump to navigationJump to search

Windows Vista introduced a new mechanism called Program Compatibility Assistant.

This tool is the reason for some Installers to pop up a dialog after completing, complaining this program might not have installed correctly.


MSDN tells the exact behaviour of the PCA
PCA does not specifically look for the setup's failing due to version problems. The logic used by PCA is to detect if a setup did not complete successfully. It monitors a program detected as setup by Windows Vista and Windows Server 2008 and checks whether the program registers an entry in Add or Remove Programs (ARP). If no entries are created in ARP, PCA concludes that the installer did not complete successfully. It will then wait for the install program to terminate before displaying the UI. If it is an uninstaller, the detection looks for whether an entry was deleted from ARP.


So the solution for you creating installers is to use the Add/Remove Program functionality of Windows, as it's "best practice" anyway. But don't forget to delete the registry key in your uninstaller!

References

MSDN - Application Compatibility: Program Compatibility Assistant (PCA)