2010-01-18 83 views
2

我已經安裝了ASP.NET MVC 2 RC,打開默認的 「示例項目」,但出現以下錯誤:ASP.NET MVC 2 System.Web.Mvc.dll程序衝突

Parser Error Message: The type 'System.Web.Mvc.ViewMasterPage' is ambiguous: it could come from assembly 'C:\WINDOWS\assembly\GAC_MSIL\System.Web.Mvc\2.0.0.0__31bf3856ad364e35\System.Web.Mvc.dll' or from assembly 'C:\Documents and Settings\sfent\My Documents\Visual Studio 2008\Projects\MvcApplication1\MvcApplication1\bin\System.Web.Mvc.DLL'. Please specify the assembly explicitly in the type name.

這似乎是GAC dll和創建並放置在bin目錄(我認爲應該優先使用GAC版本)的dll之間的衝突

我已使用Google搜索此問題並發現了類似問題,但與不正確的命名空間有關。這是與MVC框架捆綁在一起的未更改的示例應用程序。

我也嘗試完全刪除框架並重新安裝RC,但無濟於事。

所有建議表示讚賞。

回答

0

您的項目是否參考了框架的v1和v2?另外,爲什麼不刪除本地複製的匹配的dll?

+0

當您構建項目時,dll會自動在bin目錄中創建。我只參考v2並且只有v2在機器上。 – Fenton 2010-01-18 10:07:46

+0

@索尼:您可以將引用程序集設置爲不復制到bin文件夾(右鍵單擊引用並選擇屬性)。 – Richard 2010-01-18 10:31:49

+1

我認爲這個想法是你想在bin文件夾中的本地dll部署到「MVC未安裝」託管?我錯過了什麼。 – Fenton 2010-01-18 10:46:44

1

的問題可能是在你的項目的引用仍然指向舊版本的DLL(v1.0)。刪除參考並向版本(v2.0)添加一個新參考。

你發現提示,以及在MVC2 RC的發佈說明:

「使用Visual Studio中打開該項目,並在Solution Explorer中,展開參考節點刪除參考System.Web.Mvc(指向版本1.0程序集)添加對System.Web.Mvc(v2.0.0.0)的引用。「

乾杯, Damrod

+0

嗨Damrod,感謝提示 - 我從來沒有在這臺機器上另一個MVC的實現,所以這不是在這種情況下的問題。乾杯。 – Fenton 2010-01-19 08:34:51

+0

此問題在Visual Studio 2008的ASP .NET MVC 2 RTM中仍然存在。在自動生成的單元測試項目中也發生了同樣的錯誤。 – 2010-04-22 17:54:36

+0

這對我有效 - 謝謝,Damron。 – 2014-12-31 19:22:06

5

我得到這個錯誤,在我的情況下,它是很容易解決的。

我在我的Views文件夾中創建了一個新的主頁面,但是我沒有注意到它,它帶有後面的代碼和設計器,當然你不想使用MVC2。這一切都建立了,但給了我,「解析器錯誤消息:類型'System.Web.Mvc.ViewMasterPage'是不明確的:...」錯誤,當我跑它。

爲了解決這個問題,我刪除了我的新母版頁的代碼隱藏和設計器文件,錯誤消失了。

+0

+1有同樣的問題,@Rafe在這裏稱之爲。通過刪除母版頁面的.cs和設計器文件修復,無需重新安裝。我認爲這應該被標記爲答案 – 2011-06-27 19:08:10