Ich habe eine alte DLL, die gegen das .NET Framework kompiliert und bereitgestellt wurde. Ich bin nicht sicher, gegen welche Version des .NET Frameworks es kompiliert wurde. Ich frage mich, wie ich feststellen kann, gegen welche Version des .NET-Frameworks diese DLL kompiliert wurde. Ich kann dem Quellcode nicht vertrauen, da ich glaube, dass er auf Visual Studio 2008 aktualisiert und auf .NET Framework Version 3.5 geändert wurde.
.net
.net-framework-version
mpenrow
quelle
quelle
Antworten:
Laden Sie es in Reflector und sehen Sie, worauf es verweist?
beispielsweise:
quelle
In PowerShell können Sie Folgendes verwenden, um die Ziellaufzeit abzurufen:
Ich habe dies aus Ben Griswolds Antwort an PowerShell angepasst .
Wenn Sie die in Visual Studio angegebene Zielframeworkversion kennen möchten, verwenden Sie:
Du solltest so etwas bekommen
quelle
dotPeek ist ein großartiges (kostenloses) Tool, um diese Informationen anzuzeigen .
Wenn Sie Probleme haben, Reflector zu finden, ist dies eine gute Alternative.
quelle
Sie können ILDASM verwenden ...
und suchen Sie in der Ausgabe nach dem Abschnitt 'Metadaten'. Es wäre ungefähr so:
Das Tag 'version' zeigt Ihnen die .NET Framework-Version an. Im obigen Beispiel ist es 4.0.30319
quelle
// Metadata section: 0x424a5342, version: 1.1, extra: 0, version len: 12, versio n: v4.0.30319
Sie haben einige Optionen: Um es programmgesteuert aus verwaltetem Code abzurufen, verwenden Sie Assembly.ImageRuntimeVersion:
In der Befehlszeile ab Version 2.0 zeigt ildasm.exe dies an, wenn Sie auf "MANIFEST" doppelklicken und nach "Metadatenversion" suchen. Bestimmen der CLR-Version eines Bildes
quelle
Verwenden Sie ILSpy http://ilspy.net/
Open Source, kostenlos, definitiv eine Option, da jetzt Reflektor bezahlt wird.
quelle
Einfach einfach
quelle
GetCustomAttributes
hat keineTargetFrameworkAttribute
. ImageRuntimeVersion funktioniert jedoch einwandfrei und ruft die richtige CLR ab, für die die Binärdatei erstellt wurde. Ich benötige die Ziel-Framework-Version, für die es erstellt wurde.Eine weitere Option über Visual Studio: Fügen Sie jedem Projekt einen Verweis auf die DLL hinzu. Klicken Sie dann mit der rechten Maustaste auf den neuen Verweis und klicken Sie auf Eigenschaften. In der Laufzeitversion können Sie sehen, wonach Sie suchen:
quelle
Dekompilieren Sie es mit ILDASM und sehen Sie sich die Version von mscorlib an, auf die verwiesen wird (sollte ganz oben stehen).
quelle
Der einfachste Weg: Öffnen Sie einfach die DLL in einem beliebigen Texteditor. Schauen Sie sich eine der letzten Zeilen an:
quelle
Ich habe schnell diese C # -Konsolen-App geschrieben, um dies zu tun:
https://github.com/stuartjsmith/binarydetailer
Übergeben Sie einfach ein Verzeichnis als Parameter und es wird sein Bestes tun, um Ihnen das Netz-Framework für jede DLL und Exe dort mitzuteilen
quelle
" Detect It Easy ", auch bekannt als DiE, ist ein Programm zur Bestimmung von Dateitypen. Funktioniert mit DLL-Dateien oder anderen (EXE-) Dateien. Absolut kostenlos für den kommerziellen und nichtkommerziellen Gebrauch.
quelle
Wenn Sie
DotPeek
ausJetBrains
, können Sie es sehen inAssembly Explorer
.quelle
Wenn Sie die Antworten hier erweitern, kann dies bei einer abhängigen Baugruppe explodieren. Wenn Sie Glück haben und wissen, wo der Abhängige ist (oder noch glücklicher, es ist im GAC), kann dies helfen ...
Referenz: https://weblog.west-wind.com/posts/2006/Dec/22/Reflection-on-Problem-Assemblies
quelle