使用NuGet作为包源时,解决System.Web.Mvc的多个冲突版本

时间:2014-10-10 06:45:12

标签: c# asp.net-mvc visual-studio assembly-reference-path

项目找到同一程序集的多个版本时遇到问题。例如System.Web.Mvc

enter image description here

我想确保我们的MVC项目永远不会在除NuGet源之外的任何地方找到这样过时的dll

我意识到从系统中删除冲突版本并不是一个好主意,因为许多应用程序可能依赖于它们。例如,在C:\Program Files (x86)

中找到了这个

更新

由于我们使用NuGet,我改变了:

Project > Properties > Build > Output > Output path:C:\Temp\Drop

在每个项目中(我们还有一些便携式区域类项目)然后

Project > Properties > Reference Paths并添加了C:\Temp\Drop

问题消失了。

这是正确的解决方法吗?还是我只是在蠕虫身上打开另一个罐头?

1 个答案:

答案 0 :(得分:2)

检查以下与装配绑定和探测相关的文章,这非常好:

MSDN - Assembly Probing

同时检查Article

有一个完整的层次结构用于查找程序集,对于强命名的程序集,GAC将是第一个,在您的情况下,您使用强名称程序集。如本文所述,您应该能够在运行时将应用程序指向正确的程序集版本