似乎 Windows 10 Insider Preview附带的VersionNT
包含“supportedOS”= 8.1的清单。这会破坏某些Windows 10元素的检测,例如<ul>
<li class="foo">One</li>
<li class="bar">Two</li>
<li class="bar">Tree</li>
<li class="bar">Four</li>
<li class="foo">Five</li>
<li class="bar">Six</li>
<li class="bar">Seven</li>
</ul>
,DirectX,IIS等。
任何人都可以确认这是否是已知问题?任何修订的ETA?
答案 0 :(得分:0)
此时很明显微软不打算解决它,恰恰相反:Windows 10中不推荐使用MSI技术。
但是,高级安装程序在 Windows 10 和Windows Server 2016上正确计算VersionNT(64)=1000
!
答案 1 :(得分:0)
由于Windows Installer属性VersionNT正在提供错误&#34;在Win 10上,我们不得不寻找另一种检测操作系统的方法。我发现检测Windows 10的一种非常简单而强大的方法是调用内置的WMIC命令并解析它的输出:
wmic os get Name,Version,BuildNumber /VALUE
它会准确地返回您需要的信息,以确定您所使用的操作系统:
BuildNumber = 14393
版= 10.0。的 14393 强>
http://helpnet.flexerasoftware.com/installshield22helplib/helplibrary/whats_newIS2015.htm
在具有Windows 10的系统上,Windows Installer属性为VersionNT 和VersionNT64表示603,最初是作为 Windows 8.1的版本号。因此,无法创建 .msi包中专门针对Windows 10的条件。
自Windows Installer 5.0和Windows 7以来,.msi中的DLL自定义操作 软件包被填充以阻止获取操作系统版本; API GetVersion,GetVersionEx和RtlGetVersion返回Windows 版本为6.0.6000,最初的版本号为 Windows Vista。因此,也不可能获得实际的 DLL自定义操作或来自的自定义Windows版本号 InstallScript自定义操作(作为DLL实现)。
由于Windows Installer中的上述行为,事实并非如此 很容易检测到.msi的Windows版本 包正在运行