当我在 Windows 2012 R2 机器(RTM build 9600)上运行我的 MSI 时,VersionNT 属性设置为 602(而不是 603)。如果 602 实际上是正确的操作系统版本,那么如何在安装时以编程方式区分 Windows 2012 和 Windows 2012 R2?
更新:看起来如果我直接在 Windows 2012 R2 或 Windows 8.1 上运行我的 MSI,VersionNT 将正确设置为 603。如果我的 MSI 由引导程序(win32 应用程序)启动,则将设置 VersionNT,错误地,到 602。因此,直接运行的 MSI 与由 win32 应用程序启动之间存在差异。
Windows 10 更新:
我发现当我更新引导程序的清单以支持 Windows 10 兼容性时,MSI 的 InstallUISequence 将正确设置 VersionNT=1000,但 InstallExecuteSequence 的 VersionNT=603。
如何使 InstallExecuteSequence 也设置 VersionNT=1000?