【发布时间】:2015-08-20 14:34:15
【问题描述】:
我正在尝试确定 .NET 应用程序中的操作系统版本,该应用程序已使用 System.Environment.OSVersion 成功确定所有 Windows 版本(直至 Windows 8.1)的版本。
但是,在 Windows 10 上的 .NET 应用程序中调用 System.Environment.OSVersion 时,返回的版本是 Microsoft Windows NT 6.2.9200.0(与 Windows 8.1 上的输出完全相同)。但是,当通过 PowerShell 调用 [System.Environment]::OSVersion 时,输出会显示 Microsoft Windows NT 10.0.10240.0。
我的印象是 PowerShell 在后台使用 .NET,并希望这两个调用返回完全相同的输出。为什么输出存在差异,更重要的是,如何检测我的应用是否在 Windows 10 上运行?
【问题讨论】:
-
您的声明是错误的,因为您注意到的 8.1 输出实际上是为了兼容 Windows 8。检查 PowerShell 控制台的 app.config 以研究您需要包含在自己的 hack 中。
-
@LexLi 实际上,我的说法是正确的,因为它是观察到的行为。此外,观察到的行为违背了最小惊讶原则,这进一步证实了我的主张。现在,请告诉我,你提到的这个神话配置在哪里?
-
检查答案,它说明了一切。
标签: c# .net windows powershell windows-10