本文經原作者授權以原創方式二次分享,歡迎轉載、分享。
原文作者:唐宋元明清
原文地址:? ?https://www.cnblogs.com/kybs0/p/16478587.html
?C# 獲取系統已安裝的.NET版本
獲取系統已安裝的.NET版本,來確定當前應用可運行的環境。

獲取系統已安裝的.NET版本
微軟已經有相應的完整文檔,請參考:確定已安裝的 .NET Framework 版本 - .NET Framework | Microsoft Docs[1]
Release根據文檔描述是版本密鑰,應該是類似版本構建號,能夠判斷是否已安裝.NET。
Version是.NetFramework的版本
我整理了下獲取Version的方法,方便大家獲取:
private?Version?GetFrameworkVersion(){string?registerKey?=?@"SOFTWARE\Microsoft\NET?Framework?Setup\NDP\v4\Full\";var?defaultVersion?=?new?Version(0,?0);try{using?(var?sub?=?RegistryKey.OpenBaseKey(RegistryHive.LocalMachine,?RegistryView.Registry32).OpenSubKey(registerKey)){if?(!(sub?.GetValue("Release")?is?int?key))return?defaultVersion;//判斷if?(key?>=?528040)return?new?Version(4,?8);if?(key?>=?461808)return?new?Version(4,?7,?2);if?(key?>=?461308)return?new?Version(4,?7,?1);if?(key?>=?460798)return?new?Version(4,?7);if?(key?>=?394802)return?new?Version(4,?6,?2);if?(key?>=?394254)return?new?Version(4,?6,?1);if?(key?>=?393295)return?new?Version(4,?6);if?(key?>=?379893)return?new?Version(4,?5,?2);if?(key?>=?378675)return?new?Version(4,?5,?1);if?(key?>=?378389)return?new?Version(4,?5);}}catch?(Exception){//?ignored}//小于4.5,一般不存在這個環境return?new?Version(0,?0);}
注:如果需要快速獲取電腦的.NET版本,可以通過PowerShell查看
(Get-ItemProperty?'HKLM:\SOFTWARE\Microsoft\NET?Framework?Setup\NDP\v4\Client'?-Name?Version).Version

參考資料
[1]
確定已安裝的 .NET Framework 版本 - .NET Framework | Microsoft Docs: https://docs.microsoft.com/zh-cn/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed#net_d