调试Asp.Net项目时,Dll未加载到AppDomain中(第二次)

时间:2013-09-17 07:43:08

标签: c# asp.net visual-studio debugging dynamic-loading

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

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

然后我再次点击Stop和F5。这次加载的程序集中没有B.dll。但是,如果我拨打AppDomain.CurrentDomain.Load("B"),它就会被正确加载。

如果我重建项目周期重复。<​​/ p>

所以问题是:

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

1 个答案:

答案 0 :(得分:1)

  1. 是。第一次,编译发生时。
  2. 因为这些库将在编译后按需加载。
  3. 这应该有助于How to pre-load all deployed assemblies for an AppDomain