.NET应用程序在Windows 10上将不同的操作系统版本返回到PowerShell

ali*_*ada 7 .net c# windows powershell windows-10

我正在尝试确定.NET应用程序中的操作系统版本,该应用程序已经使用System.Environment.OSVersion成功确定Windows 8.1之前的所有Windows版本的版本.

但是,System.Environment.OSVersion在Windows 10上调用.NET应用程序时,返回的版本是Microsoft Windows NT 6.2.9200.0(与Windows 8.1上的输出完全相同).但是,当[System.Environment]::OSVersion通过PowerShell 调用时,输出给了我Microsoft Windows NT 10.0.10240.0.

我的印象是PowerShell使用.NET并期望两个调用返回完全相同的输出.为什么输出中存在差异,更重要的是,如何检测我的应用程序是否在Windows 10上运行?

Ant*_*lev 8

我认为这是原因:

随着Windows 8.1的发布,GetVersionAPI 的行为已经改变了它将为操作系统版本返回的值.GetVersion函数返回的值现在取决于应用程序的显示方式.

未在Windows 8.1或Windows 10中显示的应用程序将返回Windows 8 OS版本值(6.2).

  • 谢谢,只需要在清单文件中添加Windows 10 GUID作为支持的操作系统. (2认同)