3
可能重复:装上在运行时的需求
How are DLLs loaded by the CLR?在.NET中,引用的DLL在运行时按需加载?
在.NET中被引用的DLL?或者它们都是在开始时加载的。我问,因为在运行带有Visual Studio的项目时,我注意到它正在为每个在开始时引用的DLL加载符号。
这是只是因为我在VS附加调试运行?
可能重复:装上在运行时的需求
How are DLLs loaded by the CLR?在.NET中,引用的DLL在运行时按需加载?
在.NET中被引用的DLL?或者它们都是在开始时加载的。我问,因为在运行带有Visual Studio的项目时,我注意到它正在为每个在开始时引用的DLL加载符号。
这是只是因为我在VS附加调试运行?
您可以在没有附加VS的情况下运行时使用Procmon(进程监视器)检查自己。关于我的头顶,我记得它们是在JIT编译器第一次遇到类型时按需加载的。事实上,我使用混合解决方案(托管和非托管程序集),并且当一个非托管dll丢失时,首次需要来自该程序集的类型时会出现该错误;当我在VS上运行时,我甚至得到了调用堆栈。但我从来没有在VS之外检查过。至于背后的理论,this question有很长的解释。