2

我正在使用 InstallShield 2012 创建安装程序,并且正在使用 SYSINFO 主要和次要值检查操作系统。SYSINFO.nWinMajor 给出了正确的值,但 SYSINFO.nWinMinor 给出了 Windows 7 的 0。它应该是 1。

有人知道上面的解决方案吗?

4

1 回答 1

1

MSI 中的自定义操作在VistaRTMVersionLieWindows 7 上进行了填充,因此 InstallShield 用于填充的 APISYSINFO声称可以在 Windows Vista 上运行。这不能被安装本身禁用,因此最好的办法是引用VersionNTVersionNT64属性(在延迟操作的情况下可能间接引用),因为它们具有正确的版本信息。

有关其他详细信息,例如有关为何应用 shim 的信息,请参阅 Chris Jackson 的Why Custom Actions get a Windows Vista Version Lie on Windows 7 。

于 2012-12-13T12:58:23.527 回答