MVC应用程序无法加载程序集

时间:2012-04-08 17:23:49

标签: asp.net-mvc-3

我有一个解决方案,它有一个引用某些第三方.Net程序集的类库。这些第三方程序集依赖于非.Net程序集。非.Net程序集不会复制到bin文件夹,这会导致错误“无法加载xxx程序集或其某个依赖项”。所以我创建了一个预构建事件来将它们复制到bin文件夹,这解决了这个问题。

然后,当我从同一解决方案中的控制台项目引用我的项目时,我得到了同样的错误,所以我在控制台项目中使用预构建事件做了同样的事情。再次,这解决了问题。

现在,当我在同一个解决方案中从MVC应用程序引用类库项目时,我得到了同样的错误。但是使用在其他两种情况下工作的相同的预构建事件并不能解决Web应用程序的问题。我已尝试使用开发服务器和IIS,但得到相同的错误。我还尝试在Global.asax的Application_Start()中为AssemblyResolve添加一个处理程序,以查看发生了什么,但它没有触发。

我是否需要将文件放在除Web目录的bin目录之外的其他位置?

Win 7,IIS 7,VS 2010,.Net 4,MVC 3

1 个答案:

答案 0 :(得分:1)

这在ASP.NET中不起作用的原因是因为在临时文件夹中的ASP.NET托管程序集get shadow copied中,因此在运行时无法找到非托管库。要找到它们,它们需要存在于PATH环境变量的一部分文件夹中。或者将它们放在c:\windows\System32\Inetsrv文件夹中。

相关问题