Feedback

C# - Frameworkversion einer Assembly bestimmen

Veröffentlicht von am 04.01.2013
(1 Bewertungen)
Die Methode bestimmt die Version des benötigten .net-Frameworks einer Assembly, nicht nur die Version der CLR. Da z.B. 2.0, 3.0, 3.5 alle auf der CLR V. 2.0 basieren
(Stichwort Assembly.ImageRuntimeVersion)

Die einzige Möglichkeit ist leider alle referenzierten Assemblys zu laden, zu prüfen ob sie zum Framework zu gehören und die höchste Version zu finden.
GFU-Schulungen  [Anzeige]

C# Grundlagen

Die Schulung vermittelt Ihnen die Grundlagen von C# in der Arbeit mit Datentypen sowie bei Klassenbibliotheken. Sie lernen, mit Variablen umzugehen und deren verschiedene Formen zu konvertieren. 

VB.NET 2017/2015/2013 Komplett

Ziel des Seminars ist der flexible Umgang mit VB.NET, wie z.B. die damit verbundene eigenständige Entwicklung von Programmen oder das Verwenden von Datenbanken.

using System.Reflection;

// ...

public static Version GetNetFXVersion(Assembly assembly)
{
    if (assembly == null)
        throw new ArgumentNullException("assembly");

    Version version = new Version(1, 0);
    foreach (AssemblyName assemblyName in assembly.GetReferencedAssemblies())
    {
        Assembly refAssembly = null;
        try
        {
            refAssembly = Assembly.Load(assemblyName);
        }
        catch
        {
            continue;
        }

        if (refAssembly != null)
        {
            AssemblyProductAttribute[] productAttr = (AssemblyProductAttribute[])refAssembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false);
            if (productAttr.Length == 1)
            {
                if (productAttr[0].Product == "Microsoft® .NET Framework" &&
                    assemblyName.Version > version)
                    version = assemblyName.Version;
            }
        }
    }

    return version;
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!