我收到这个错误。
编译错误描述:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。
编译器错误消息:CS1704:已导入具有相同简单名称“MyMVCAssembly,版本=1.0.0.0,文化=中性,PublicKeyToken=null 的程序集。尝试删除其中一个引用或对其进行签名以并排启用。
我的解决方案有 2 个 ASP.Net MVC 项目 - 拆分主要内容和区域。主项目没有对第二个项目的引用。相反,它获取文件夹中的所有 MVC DLL 并将其存储到 IOC 容器中,该容器负责注册所有控制器。
当我将第二个 ASP.Net MVC 项目的输出设置到主项目的 bin 文件夹中时,出现错误。(我已将区域解决方案中的所有视图设置为始终复制。)
我还尝试了将 DLL 复制到主 bin 而不是设置输出的构建后操作,但结果是相同的。
我应该怎么办?
此外,我有以下设置:
- 它设置为使用本地 IIS 服务器而不是 VS 开发服务器。
- 在“输出”窗口中,我看到本地 Web 服务器正在从 GAC 和 Temporary ASP.Net 文件夹加载所有 DLL。我看到的问题是它还试图从我的解决方案文件夹中加载我的 DLL 文件。
任何想法为什么它也试图从解决方案中获取唯一的 DLL?对于其他项目,它没有这种行为。
更新:
这是一个奇怪的行为:
[1] 我清除了违规程序集的所有副本。
[2] 我删除了将该程序集复制到我的主 MVC 项目 bin 文件夹的构建后操作。
[3] 我运行主要项目。它可以正常工作,但当然不会加载缺少的程序集。
[4] 我手动将该程序集复制到 mian MVC 项目 bin 文件夹中。
[5] 我运行解决方案。它再次收到错误!
有人可以解释为什么它试图从两个不同的地方加载这个相同的程序集吗?
好的,这可能是问题的线索:因为我将程序集复制到主 MVC 项目的 bin 文件夹,它也被复制到临时 ASP.NEt 文件夹中。同时,由于该项目没有被解决方案中的任何其他项目引用,因此它也在将相同的程序集复制到 IIS 中。我怎样才能防止这种情况发生?如果我排除将程序集复制到主 MVC bin 的步骤,它根本不会加载到 IIS 中。为什么会这样?