Sì. Avrai sempre caricato mscoree.dll, che è il bootstrapper per l'host CLR predefinito. È una DLL non gestita. Ogni assembly .NET contiene un pochino di codice nativo, solo un salto in quella DLL. Tuttavia, viene caricato direttamente dalle recenti versioni di Windows, il caricatore del sistema operativo include .NET awareness integrata. Puoi vederlo nella finestra Debug + Modules quando attivi l'opzione di debug non gestito, Progetto + Proprietà, scheda Debug. Vedrai anche mscorjit.dll, mscorwks.dll e msvcr80.dll, altri tre blocchi di codice nativo necessari per eseguire il codice gestito. Rispettivamente il compilatore just-in-time, CLR e la libreria di supporto di runtime C. Hanno diversi nomi DLL in .NET 4.
Tecnicamente è possibile non caricare mscorlib.dll, il compilatore ha l'opzione/nostdlib per evitare un riferimento a tale assembly. Praticamente funziona solo se fornisci un sostituto, è così che Silverlight viene compilato per esempio. È altrimenti un assembly in modalità mista con un po 'di codice nativo ma principalmente gestito. A causa di ciò esiste una versione separata di esso per il framework 64-bit. Vedrai anche mscorlib.ni.dll con il debug non gestito abilitato, ovvero la versione ngened dell'assembly.
fonte
2012-03-03 13:40:14
Non sono sicuro dello switch del compilatore ('/ nostdlib') ma l'opzione visiva nelle proprietà del progetto -> scheda di creazione -> avanzata non è più presente in Visual Studio. L'ho visto per l'ultima volta in Visual Studio 2010 quando si entra nelle proprietà del progetto in cui avevamo una casella di controllo per interrompere il riferimento a "mscorlib.dll" di default. A partire da Todady, non è possibile creare un'applicazione .Net tramite Visual Studio senza più "mscorlib.dll". – RBT