如何解决我的项目DLL和GAC中的DLL之间的歧义?

我目前正在研究ASP.NET MVC项目中的另一个问题 。 为了更好地理解代码库中发生的事情,我决定在我自己的项目中引用ASP.NET MVC源代码项目,方法是将解决方案文件添加到我的引用中。

当我这样做时,我开始收到HTTP 404错误。

我恰好在HandleErrorAttributeOnException()方法上设置了断点,否则可能需要很长时间才能找到实际问题。 当我将鼠标hover在OnException方法调用中的filterContext参数上时,我得到此Exception描述:

 类型'System.Web.Mvc.ViewMasterPage'是不明确的: 
        它可能来自assembly[GAC中的assembly路径] 
        或从assembly[我的项目中的assembly路径] 

GAC中的程序集就在那里,因为我安装了ASP.NET MVC 2.0 RC2版本

我如何才能最好地解决这种歧义?

System.Web.MvcWeb.Config中的部分中引用。 在我的应用程序中,此条目具有公钥标记属性。

我通过删除PublicKeyToken属性解决了这个问题。

所以这:

  

成为这个:

  

显然,当缺少PublicKeyToken时,Visual Studio无法在GAC中找到已签名的程序集,因此它被强制使用本地项目程序集。

我不确定,但也许你的答案在于你的配置的assemblyBinding标签: http : //msdn.microsoft.com/en-us/library/twy1dw1e.aspx