调试项目时(第二次),不会在 AppDomain 中加载 Dll Asp.Net Dll

本文关键字:Dll AppDomain 加载 Asp Net 项目 第二次 调试 | 更新日期: 2023-09-27 18:31:37

我在MVC项目中有一个项目引用(到B.dll),它不是静态使用的 Asp.Net。启动时,我正在查看加载的程序集,并在 IoC 容器中动态注册它们的类型。

当我重建 MVC 项目并按 F5 时,我在 AppDomain.CurrentDomain.GetAssemblies() 返回的已加载程序集列表中看到B.dll

然后我再次点击停止和 F5。这次加载的程序集中没有B.dll。但是,如果我调用AppDomain.CurrentDomain.Load("B")它将正确加载。

如果我重建项目周期重复。

所以问题是:

  1. 我假设,文件夹中bin dll应该在启动时由IIS加载,对吗?
  2. 为什么 Visual Studio 在第一次和第二次调试会话上的行为不同?最重要的是,如何强制它在启动时加载所有库?

调试项目时(第二次),不会在 AppDomain 中加载 Dll Asp.Net Dll

  1. 是的。第一次,当编译发生时。
  2. 因为这些库将在编译后按需加载。

这应该会有所帮助 如何为 AppDomain 预加载所有已部署的程序集