2010-02-24 73 views
4

我目前在我的ASP.NET MVC項目中工作another issue。爲了更好地理解代碼庫中發生的事情,我決定在我自己的項目中引用ASP.NET MVC源代碼項目,方法是將解決方案文件添加到我的引用中。如何解決我的項目DLL和GAC中的DLL之間的歧義?

當我這樣做,我開始得到HTTP 404錯誤。

恰好如此,我在HandleErrorAttributeOnException()方法上設置了斷點,否則可能需要很長時間才能找到實際問題。當我懸停在OnException方法調用的參數filterContext,我得到這個Exception描述:

 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

如何最好地解決這種歧義?

回答

3

System.Web.MvcWeb.Config引用,在<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"/> 

顯然Visual Studio中的GAC找不到簽名的程序集時PublicKeyToken丟失,所以它被迫使用本地項目組裝。

1

我不知道,但也許你的答案就在你的配置的assemblyBinding標籤: http://msdn.microsoft.com/en-us/library/twy1dw1e.aspx

+0

System.Web.Mvc在AssemblyBinding中未被引用,但*在編譯/彙編中被引用。我想我解決了它。感謝您的幫助。 +1 – 2010-02-24 22:07:23