Ist mscorlib.dll/mscoree.dll geladen, wenn .NET-Anwendung ausgeführt wird
Ich versuche, etwas zu klären.
-
Wenn ein .NET-Konsolenanwendung ausgeführt wird, hat mscorlib.dll/mscoree.dll Holen Sie sich in den Prozess geladen wird der virtuelle Adressraum?
-
mscorlib.dll und mscoree.dll (CLR) sind nicht verwalteten dlls. Ist das richtig?
Auch, was ist eine gute Ressource zu verstehen, mehr über wie ein .NET-Programm ausgeführt wird?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja. Wirst du immer bekommen mscoree.dll geladen, das ist der bootstrapper für die Standard-CLR-host. Es ist eine nicht verwaltete DLL. Jeder .NET-assembly enthält ein bisschen von native code, nur ein Sprung in die DLL. Es hat jedoch geladen, die von aktuellen Windows-Versionen direkt von den OS-loader hat .NETTO-Bewusstsein integriert. Sie sehen es in der Debug + Module-Fenster, wenn Sie schalten Sie die nicht verwaltete Debuggen option, Projekt + Eigenschaften, Registerkarte "Debuggen". Du wirst dann auch sehen mscorjit.dll, mscorwks.dll und msvcr80.dll drei weitere Stücke von native code, die erforderlich sind, um verwalteten code ausführen. Bzw. die just-in-time-compiler, die CLR und die C-runtime-Bibliothek unterstützt. Sie haben unterschiedliche DLL-Namen in .NET 4.
Technisch ist es möglich, nicht bekommen mscorlib.dll geladen hat der compiler die /nostdlib-option zu vermeiden, die eine Referenz auf das assembly. Praktisch, dass nur funktioniert, wenn Sie ersetzen, das ist, wie Silverlight kompiliert wird, zum Beispiel. Ansonsten ist es eine mixed-mode-Montage mit einige nativen code, sondern hauptsächlich die verwalteten code. Es gibt eine separate version für die 64-bit-framework, weil die. Sie werden auch sehen mscorlib.ni.dll mit nicht verwaltetes Debuggen aktiviert ist, ist die ngen-ed-version der assembly.
Ich würde empfehlen zu Lesen, die Jefrey Richter ' s Buch CLR via C#. Es bietet eine sehr klare Erklärung, was Los ist unter der Haube 🙂
Auch yor dieser Frage hilfreich: Warum ist eine assembly .exe-Datei?
.Net Ausführbare Datei ist nicht anders als jede andere PE-Dateien. So wie jeder importierten dlls in native ausführbare Datei, mscorlib.dll geladen wird der Prozess virtuellen Raum .net ausführbare Datei.
Wenn es Sie interessiert, können Sie Lesen Sie über die PE-Datei-format hier