Maison > développement back-end > C++ > Comment puis-je vérifier efficacement la version du .NET Framework installée sur mon système ?

Comment puis-je vérifier efficacement la version du .NET Framework installée sur mon système ?

Linda Hamilton
Libérer: 2025-01-15 11:38:48
original
246 Les gens l'ont consulté

How Do I Efficiently Check the Installed .NET Framework Version on My System?

Déterminez facilement la version de .NET Framework

Les développeurs doivent souvent déterminer la version spécifique du .NET Framework utilisée par un système, en particulier lorsqu'ils ciblent des fonctionnalités spécifiques ou maintiennent une version spécifique. Bien que Environment.Version() ne soit disponible que dans la version de base, il devient nécessaire de trouver un moyen efficace de vérifier les mises à jour spécifiques telles que .NET 3.5 SP1.

Utilisez le registre

Une solution possible consiste à accéder au registre Windows. Pour les versions .NET 1 à 4, le code simple suivant peut extraire des informations pertinentes :

<code class="language-csharp">RegistryKey installed_versions = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP");
string[] version_names = installed_versions.GetSubKeyNames();
//版本名称以 '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>
Copier après la connexion

Gestion de .NET 4.5

Pour .NET 4.5 et versions ultérieures, Microsoft fournit des conseils de documentation détaillés. Cet exemple de code montre comment récupérer la version exacte installée :

<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("版本: " + 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>
Copier après la connexion

Grâce à ces méthodes, les développeurs peuvent désormais facilement déterminer la version exacte de .NET Framework installée sur leurs systèmes, ce qui leur permet d'utiliser en toute confiance des fonctionnalités spécifiques et de résoudre les problèmes de compatibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal