Comment puis-je vérifier à partir d'une application c#, elle-même, quelle version de dotnet est utilisée par l'application?
Réponses
Trop de publicités?Utilisez Environment.Version
- il vous donne la version exacte de .NET utilisée par l'application.
Obtient un objet Version qui décrit les numéros majeur, mineur, de build et de révision du runtime commun du langage.
Pour savoir quelle version du framework est installée, consultez cette question et ses réponses sur SO. En résumé, vous devrez fouiller dans la base de registre.
Anders Zommarin
Points
2357
Metallic Skeleton
Points
162
Créez une application Console, ajoutez cette classe et exécutez-la
using Microsoft.Win32;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication2
{
public class GetDotNetVersion
{
public static void Get45PlusFromRegistry()
{
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(subkey))
{
if (ndpKey != null && ndpKey.GetValue("Release") != null)
{
Console.WriteLine(".NET Framework Version: " + CheckFor45PlusVersion((int)ndpKey.GetValue("Release")));
}
else
{
Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
}
}
}
// Checking the version using >= will enable forward compatibility.
private static string CheckFor45PlusVersion(int releaseKey)
{
if (releaseKey >= 394802)
return "4.6.2 or later";
if (releaseKey >= 394254)
{
return "4.6.1";
}
if (releaseKey >= 393295)
{
return "4.6";
}
if ((releaseKey >= 379893))
{
return "4.5.2";
}
if ((releaseKey >= 378675))
{
return "4.5.1";
}
if ((releaseKey >= 378389))
{
return "4.5";
}
// This code should never execute.
// that 4.5 or later is installed.
return "No 4.5 or later version detected";
}
}
// L'appel de la méthode GetDotNetVersion.Get45PlusFromRegistry produit
// une sortie comme suit:
// .NET Framework Version: 4.6.1
}
AntiqueWhale
Points
21