關於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

相關文章
相關標籤/搜索