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.