相关疑难解决方法(0)

Visual Studio 2010正在吃我的DLL! - 构建后缺少引用的第三方dll

请帮助我把头发拉出来:

我有一个Visual Studio ASP.NET MVC解决方案,log4net在这种情况下,项目引用第三方DLL .我的解决方案树如下:

  • GenericLibrary
  • MyApp.NHibernate
  • MyApp.Library
  • MyApp.WebUI

MyApp.WebUI是主要的启动MVC Web项目,并且引用了GenericLibrary,MyApp.NHibernateMyApp.Library.MyApp.NHibernate引用了所有NHibernate位,包括log4net.

现在的问题是当我编译我的解决方案时,log4net dll似乎出现并从MyApp.WebUI项目的/ bin目录中消失,因此NHibernate可以理解地抛出错误.我的第二台显示器上有一个Windows资源管理器窗口,查看了web项目的/ bin文件夹,我可以看到log4net dll出现然后在每次编译后消失,它似乎按顺序发生(出现,消失,重新出现,消失等)而不是随机.

MyApp.NHibernate项目是唯一引用log4net dll的项目,但GenericLibrary引用了NHibernate而不是log4net.MyApp.NHibernate引用GenericLibrary,MyApp.Library也引用GenericLibrary,但GenericLibrary是独立的.

我能想到的唯一解决方案是为我的解决方案中使用的每个外部库/ dll(Nhibernate,log4net,Castle Windsor等)添加对主MyApp.WebUI项目的引用,以修复log4net问题并避免将来发生这种情况.但这对我来说不是一个非常整洁/解耦的解决方案.


更新:要回答kekekela的问题,我将log Local设置为true,用于log4net引用和MyApp.NHibernate项目引用本身,请参见下面的屏幕截图:

alt text http://www.dominicpettifer.co.uk/Temp/DLL-Hell-1.png


更新2: Bizzarely这个问题似乎只影响log4net DLL.我尝试在MyApp.NHibernate项目中添加一个不同的第三方dll,NLog dll,这似乎保持不变,而log4net继续消失并重新出现.

.net dll compilation visual-studio-2010 visual-studio

3
推荐指数
1
解决办法
2440
查看次数