[.net] Bestimmen Sie die Framework (CLR) Version der Assembly



4 Answers

class Program {
  static void Main(string[] args) { 
      System.Console.WriteLine(
             System.Reflection.Assembly.LoadFrom(args[0]).ImageRuntimeVersion);
  }
}

Kompilieren und führen Sie die obige Anwendung unter dem neusten .NET Framework aus (da eine ältere CLR möglicherweise keine Assemblys laden kann, die eine neuere CLR erfordern) und führen Sie den Pfad zur Assembly aus, die Sie als Befehlszeilenargument überprüfen möchten.

Question

Wie kann ich anhand der Befehlszeile (oder mit anderen Mitteln) feststellen, welche CLR Version eine .NET Assembly benötigt?

Ich muss feststellen, ob eine Assembly 2.0 oder 4.0 CLR-Version benötigt.




Ich würde vorschlagen, ReflectionOnlyLoadFrom () anstelle von LoadFrom () zu verwenden

Es hat den Vorteil, dass es x64- und ia64-Assemblys laden kann, wenn es auf einer x86-Maschine läuft, während LoadFrom () dies nicht tun wird.

Allerdings werden .NET 4.0-Assemblys immer noch nicht von einer 2.0-Powershell geladen.




Hier ist ein PowerShell Äquivalent des in einer anderen Antwort vorgeschlagenen .NET-Codes. Wenn Sie PowerShell verwenden, können Sie einige Schritte wie das Erstellen und Kompilieren einer Baugruppe überspringen.

Führen Sie an einer PowerShell-Eingabeaufforderung Folgendes aus:

[System.Reflection.Assembly]::LoadFrom("C:\...\MyAssembly.dll").ImageRuntimeVersion

Standardmäßig verwendet PowerShell die .NET v2-Laufzeitumgebung. Daher erhalten Sie eine Ausnahme für Baugruppen, die auf v4 ausgerichtet sind. Stapelüberlauffrage Wie kann ich PowerShell mit der .NET 4-Laufzeitumgebung ausführen? Details Methoden, um das bei Bedarf zu ändern.




Probieren Sie diese ausführbare Assembly-Information aus , um die Assembly-Version zu erhalten, die Ihnen die erforderliche CLR-Version sowie weitere Informationen wie Compilierungsoptionen, Zielprozessor und Referenzen angibt:




Ein sehr nettes Werkzeug ist JustDecompile von Telerik. Sie können Assemblys öffnen, und das Tool zeigt an, ob sie auf 4.5, 4.5.1 oder 4.6 ausgerichtet sind




Related