【问题标题】:SYSINFO.NWinMajor is giving wrong value for Windows 7SYSINFO.NWinMajor 为 Windows 7 提供了错误的值
【发布时间】:2012-12-12 10:40:45
【问题描述】:

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

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

【问题讨论】:

  • 这是在纯 InstallScript 项目中,还是在 MSI 项目中的 InstallScript 自定义操作中? (如果是后者,请尝试引用 MSI 属性 VersionNT。)
  • 感谢您的回复。我知道 VersionNT。但我正在使用 nWinMajor 并结合使用 nWinMinor。所以想知道问题所在。

标签: installscript installshield-2012


【解决方案1】:

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

请参阅 Chris Jackson 的 Why Custom Actions get a Windows Vista Version Lie on Windows 7 了解更多详细信息,例如为什么应用 shim 的信息。

【讨论】:

  • 感谢大家的回复
猜你喜欢
  • 1970-01-01
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 2016-03-25
  • 1970-01-01
  • 2014-03-15
  • 2022-01-24
相关资源
最近更新 更多