由於.NET 4和Windows 8或更高版本的平臺很難確定運行程序的操作系統版本。如何在c#中獲得真正的操作系統版本?
例如,在Windows 10上運行,如果我的項目有一個Windows 8的DLL那麼Environment.OSVersion.Version
回報6.2.9200.0
這是Windows 8和非Windows 10
這一行爲在這個問題解釋(crono的答案):Windows version in c#
所以我的問題是以下幾點:我們如何才能確定(並保持在.NET方式,以便能夠在非Windows平臺上使用它)我們的應用程序的操作系統版本是運行?
鏈接到MSDN:
https://msdn.microsoft.com/en-us/library/system.environment.osversion(v=vs.110).aspx
我會張貼關於[體現您的應用程序]的答案(https://msdn.microsoft.com/en-us/library/windows/desktop /dn481241%28v=vs.85%29.aspx),這樣'Environment.OSVersion.Version'就能返回正確的值(我最近必須這樣做才能讓我的軟件檢測Windows 10),但如果您使用的是非Windows平臺,我不確定它會對您有所幫助。我做了一些搜索,看來Mono似乎在聽'app.manifest'文件時遇到問題。 –
這就是我發現的問題。但是,如果有一個Windows 10.1或甚至11個程序,爲了讓他的應用程序正確檢測到該版本,該程序需要重新編譯該程序。而且,考慮到應用的生命週期,僅僅因爲OsVersion返回每個清單允許的最後一個版本,在以前的版本中考慮在這種Windows中運行舊版應用可能是錯誤的。不知道我是否清楚...微軟的這個決定是相當令人不安的...... –