关于C#中Environment.OSVersion判断操做系统及Win10上的问题

咱们都知道在C#中能够经过Environment.OSVersion来判断当前操做系统,下面是操做系统和主次版本的对应关系:app

操做系统 主版本.次版本
Windows 10 10.0*
Windows Server 2016 Technical Preview 10.0*
Windows 8.1 6.3*
Windows Server 2012 R2 6.3*
Windows 8 6.2
Windows Server 2012 6.2
Windows 7 6.1
Windows Server 2008 R2 6.1
Windows Server 2008 6
Windows Vista 6
Windows Server 2003 R2 5.2
Windows Server 2003 5.2
Windows XP 64-Bit Edition 5.2
Windows XP 5.1
Windows 2000 5

图标转自(https://msdn.microsoft.com/en-us/library/ms724832(v=vs.85).aspx函数

可是,当你在win10操做系统上使用这个函数是会获得这样的结果:6.2.9200.0,而不是咱们期待的10.0.***,这是为何?值得咱们注意的是,在这个表格下面有这样的小字:spa

* For applications that have been manifested for Windows 8.1 or Windows 10. Applications not manifested for Windows 8.1 or Windows 10 will return the Windows 8 OS version value (6.2). To manifest your applications for Windows 8.1 or Windows 10, refer to Targeting your application for Windows.操作系统

也就是说返回6.2就是win8以上操做系统的默认状况。要返回10.0就要作特殊处理。MSDN原文方法在这里https://msdn.microsoft.com/en-us/library/dn481241(v=vs.85).aspxblog

解决方法:为项目新建并指定“应用程序清单文件”,而后把下面的注释去掉,就能够返回10.0.***了 ci

image
添加应用程序清单文件
image
去掉win10适配注释get

相关文章
相关标签/搜索