2009-02-05 131 views
12

我將我的項目從MyProjectName重命名爲MyNewProjectName。我在解決方案上做了一個完整的查找/替換,並更改了測試項目。在Default.aspx.cs我得到ASP.NET MVC命名空間重命名

的InvalidOpterationException「控制器名‘家’是以下類型之間的曖昧: MyNewProjectName.Controllers.HomeController MyProjectName.Controllers.HomeController」

我該如何解決?謝謝

回答

30

你有沒有嘗試重建(右鍵單擊項目,並選擇「重建」)?同時檢查垃圾箱以確保只有具有新名稱的部件在那裏。另外,再次檢查項目屬性以驗證組件的名稱被輸出。如果您不確定輸出程序集的名稱是什麼,請從bin中刪除所有dll並重建。

+1

我做了一個重建,甚至是一個乾淨的我做了一個窗口文件搜索,顯然,VS並沒有清除所有的東西 – 2009-02-05 18:20:01

+1

這是煩人的 - 我剛剛同樣的問題什麼是PITA什麼是「乾淨」應該做什麼??? – 2009-04-10 16:06:19

+1

我想它刪除了帶有項目名稱的文件,不是所有的DLL。 – 2009-05-06 20:00:00

8

您需要在您的MVC Web項目中檢查您的/ bin文件夾,並且刪除那裏的所有內容並執行新的構建,或刪除舊的DLL(MyProjectName.dll)。

ASP.Net MVC運行時使用反射來確定哪個控制器必須根據路由信息傳遞一個請求,並且它找到兩個符合標準(具有相同名稱)的控制器,並且每個控制器都處於不同的組裝。這就是爲什麼你會得到例外。

做一個乾淨似乎沒有清除bin文件夾。所以你必須手動刪除文件。

2

雙擊或右鍵單擊MyProject並打開。在應用程序設置中更改程序集名稱和根名稱空間以匹配重命名的項目名稱。

0

右鍵點擊該項目,選擇「打開文件夾在Windows資源管理器。

刪除‘位於/ bin OLDPROJECTNAME’對象和/ OBJ

5

至於我自己,我在web.config中的引用了查看文件夾,一旦它被改變了一切工作正常!