Вопрос

I am creating installer using InstallShield 2012 and I am checking OS using SYSINFO major and minor values.SYSINFO.nWinMajor is giving correct value but SYSINFO.nWinMinor is giving 0 for windows 7.It should be 1.

Do anyone know the solution for above ?

Это было полезно?

Решение

Custom actions within an MSI are shimmed with VistaRTMVersionLie on Windows 7 so that the APIs which InstallShield uses to populate SYSINFO are claiming to run on Windows Vista. This cannot be disabled by the installation itself, so your best bet is to reference the VersionNT or VersionNT64 properties (possibly indirectly in the case of a deferred action), as they have the correct version information.

See Chris Jackson's Why Custom Actions get a Windows Vista Version Lie on Windows 7 for additional details, such as information on why shim is applied.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top