我目前正在ASP.NET MVC项目中处理another issue。为了更好地理解代码库中发生的事情,我决定在我自己的项目中引用ASP.NET MVC源代码项目,方法是将解决方案文件添加到我的引用中。
当我这样做时,我开始收到HTTP 404错误。
恰好我在OnException()
的{{1}}方法上设置了断点,否则可能需要很长时间才能找到实际问题。当我将鼠标悬停在HandleErrorAttribute
方法调用中的filterContext
参数上时,我会收到此OnException
说明:
The type 'System.Web.Mvc.ViewMasterPage' is ambiguous: it could come from assembly [path to assembly in GAC] or from assembly [path to assembly in my project]
GAC中的程序集就在那里,因为我安装了ASP.NET MVC 2.0 RC2 release。
如何最好地解决这种歧义?
答案 0 :(得分:3)
System.Web.Mvc
部分Web.Config
中引用了{p> <Compilation><Assemblies>
。在我的应用程序中,此条目具有公钥标记属性。
我通过删除PublicKeyToken
属性解决了这个问题。
所以这个:
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
成为这个:
<add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral"/>
显然,当PublicKeyToken
丢失时,Visual Studio无法在GAC中找到已签名的程序集,因此它被强制使用本地项目程序集。
答案 1 :(得分:1)
我不确定,但也许您的答案在于配置的assemblyBinding标记: http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx