.NET Framework 버전을 효과적으로 확인
.NET Framework 버전, 특히 3.5 SP 1을 확인하는 것은 개발자의 일반적인 요구 사항입니다. 그러나 Environment.Version()
을 사용하여 이 정보를 얻으면 서비스 팩과 같은 중요한 세부 정보는 제외되고 기본 버전만 얻을 수 있습니다.
이를 위해 여러 가지 방법이 있습니다.
.NET 1-4의 경우
간단하고 효과적인 방법은 레지스트리에서 직접 데이터를 검색하는 것입니다. .NET 버전 1~4의 경우 다음 코드 조각을 사용할 수 있습니다.
<code class="language-csharp">RegistryKey installed_versions = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP"); string[] version_names = installed_versions.GetSubKeyNames(); // version names 以 'v' 开头,例如 'v3.5',在转换前需要去除 double Framework = Convert.ToDouble(version_names[version_names.Length - 1].Remove(0, 1), CultureInfo.InvariantCulture); int SP = Convert.ToInt32(installed_versions.OpenSubKey(version_names[version_names.Length - 1]).GetValue("SP", 0));</code>
이 코드에서 "Framework" 변수는 설치된 최고 버전을 나타내고 "SP"는 관련 서비스 팩 번호를 보유합니다.
.NET 4.5의 경우
버전 4.5 이상의 경우 공식 Microsoft 문서에서는 다음 방법을 권장합니다.
<code class="language-csharp">using System; using Microsoft.Win32; ... private static void Get45or451FromRegistry() { using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\")) { int releaseKey = Convert.ToInt32(ndpKey.GetValue("Release")); if (true) { Console.WriteLine("Version: " + CheckFor45DotVersion(releaseKey)); } } } ... // 使用 >= 检查版本将启用前向兼容性, // 但是您应该始终在新版本的框架上编译代码,以确保您的应用程序以相同的方式工作。 private static string CheckFor45DotVersion(int releaseKey) { if (releaseKey >= 528040) { return "4.8 或更高版本"; } if (releaseKey >= 461808) { return "4.7.2 或更高版本"; } if (releaseKey >= 461308) { return "4.7.1 或更高版本"; } if (releaseKey >= 460798) { return "4.7 或更高版本"; } if (releaseKey >= 394802) { return "4.6.2 或更高版本"; } if (releaseKey >= 394254) { return "4.6.1 或更高版本"; } if (releaseKey >= 393295) { return "4.6 或更高版本"; } if (releaseKey >= 393273) { return "4.6 RC 或更高版本"; } if ((releaseKey >= 379893)) { return "4.5.2 或更高版本"; } if ((releaseKey >= 378675)) { return "4.5.1 或更高版本"; } if ((releaseKey >= 378389)) { return "4.5 或更高版本"; } // 此行不应该执行。非空 release 密钥应该意味着 // 已安装 4.5 或更高版本。 return "未检测到 4.5 或更高版本"; }</code>
이 코드는 레지스트리를 활용하여 설치된 .NET Framework 버전과 해당 서비스 팩을 확인합니다.
이러한 기술을 사용하면 개발자는 설치된 .NET Framework 버전을 빠르고 정확하게 확인할 수 있으므로 정보에 입각한 결정을 내리고 애플리케이션과의 호환성을 보장할 수 있습니다.
위 내용은 설치된 .NET Framework 버전 및 서비스 팩을 효과적으로 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!