在.NET中,引用的DLL是否在运行时按需加载?

3

可能是重复问题:
CLR如何加载DLL?

在.NET中,引用的DLL是否在运行时按需加载?还是全部在开头加载?我问这个问题是因为当我用Visual Studio附加运行我的项目时,我注意到它在开始时为每个引用的DLL加载符号。

这只是因为我在使用VS调试吗?

1个回答

1

您可以在未连接VS的情况下使用Procmon(进程监视器)进行自检。我记得它们是按需加载的,当JIT编译器第一次遇到类型时。事实上,我使用混合解决方案(托管和非托管程序集),当缺少非托管dll时,错误会在首次需要该程序集中的类型时出现;我甚至在VS上运行时获得了该调用堆栈。但我从未在VS之外进行过检查。至于背后的理论,在this question中有一个长的解释。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接