Windows 10“msiexec.exe”清单仍然是8.1

时间:2015-05-13 14:39:38

标签: windows-installer msiexec

似乎 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?

2 个答案:

答案 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版本   包正在运行