2010-12-17 44 views
1

我在Visual Studio 2008中遇到了一個問題,其中重新編譯庫項目時Visual Studio無法解析名稱空間。問題在於Visual Studio不必要地擴展名稱空間。例如,我有一個類似Visual Studio擴展名稱空間以產生錯誤

... = (MyCompany.Dashboard.Data.BaseObjects.ZonesStruct) value; 

哪些在過去編譯好的時候在重新編譯時突然開始失敗。 Visual Studio無法解決它並給出錯誤消息「名稱空間'MyCompany.MyCompany.Dashboard'中不存在類型或名稱空間名'Data'...」。啓動這項功能的變化是向圖書館添加一個新類。失敗的類是現有的和未觸及的類。

我以前遇到過類似的事情,但那是UI設計者生產的代碼,明確地被限定爲「MyCompany.MyCompany ...」。我希望兩種情況下的根本原因都是一樣的。

不確定它是否有用,但庫項目的默認名稱空間是「MyCompany」。我試過修改,但我沒有注意到任何改變。

感謝。

回答

3

改成這樣

global::MyCompany.Dashboard.Data.BaseObjects.ZonesStruct

全球::逃脫的命名空間的所有出路根命名空間。這不是Visual Studio問題,它是一個衝突的命名空間問題。

+0

解決方法是有效的,但對任何解釋爲什麼第一個限定符被重複?這只是無處不在,現在看起來好像我隨機添加全球::限定符時,Visual Studio抱怨沒有一個很好的理解爲什麼。我沒有看到這種衝突是如何發生的,因爲這在以前是有效的。 – doobop 2010-12-17 15:44:38

+2

如果存在稱爲MyCompany.MyCompany或類型MyCompany.MyCompany的名稱空間,則會出現錯誤(但不是100%肯定),這會引入歧義並導致錯誤。當指定global ::時,告訴編譯器,之後的第一個限定符必須是非內置的名稱空間,編譯器通過該信息解決含糊不清的問題。我建議檢查命名空間或(不太可能)類型的錯誤名稱,以避免需要重複指定global ::。 – JBSnorro 2010-12-18 01:48:02

+0

是的,不知何故,我的課是用「MyCompany.MyCompany」命名空間生成的。糾正這個問題。謝謝。 – doobop 2010-12-18 22:34:45

2

這並沒有解決問題,只是症狀。但你可以嘗試確保您擁有的命名空間是在全球範圍內通過在global關鍵字使用

... = (global::MyCompany.Dashboard.Data.BaseObjects.ZoneStruct) value; 

查看MSDN瞭解更多信息入手:http://msdn.microsoft.com/en-us/library/c3ay4x3d.aspx

相關問題