簡體   English   中英

命名空間中不存在類型或命名空間名稱 - 但命名空間確實存在

[英]Type or namespace name does not exist in the namespace - yet the namespaces do exist

我已經工作了很長時間沒有任何問題的項目突然開始拋出錯誤,例如

The type or namespace name 'xxx' does not exist in the namespace 'yyy' (are you missing an assembly reference)?

在這種情況下,命名空間都是核心 .Net 庫,例如System.DataLinqIO ,我一直在使用,沒有任何問題。

我已經通過所有的問題,工作這個問題,如確保工作區中的所有項目都使用的目標框架設置相同版本的.NET的。

我刪除了所有有問題的庫並重新添加了它們,但問題仍然存在。 我懷疑他們的庫本身已損壞,因為我在解決方案中的其他項目中引用了它們。

在使用 TFS 回滾我的工作后,我設法弄清楚了我所做的導致此錯誤的操作:我在我的項目中添加了一個名為“System”的文件夾,並在其中放置了一個類文件。

這是一個很容易重現的問題:創建一個項目,向其中添加一個名為 system 的文件夾(此時它仍然會編譯),然后在其中創建一個 .cs 文件,屆時所有有趣的錯誤都會發生。

問題源於“System”文件夾的名稱,這導致在其中創建的任何文件都位於命名空間“.System”下。

我可以理解為什么現在擁有一個名為“System”的文件夾/命名空間會導致問題,但我認為如果 Visual Studio 在創建此類名稱的文件夾/命名空間時發出警告以首先阻止此問題的發生,這會有所幫助。 我已經用 MS 記錄了一個錯誤,至少記錄這個錯誤可能會幫助任何其他和我犯過同樣錯誤的人!

我的系統意外關閉后,我遇到了同樣的問題,即使 VS 嘗試恢復,問題還是出現了。

我的解決方案資源管理器中有兩個項目。 為了解決這個問題,我右鍵單擊了與錯誤消息關聯的項目並選擇了“構建”。

之后,問題就解決了。

只是補充一點,在我從另一個“項目”中添加了對“項目”的引用后,問題已永久解決。

我將我從myproject.shared.constants引用的文件的命名空間重命名為myproject.SOMETHING.shared.constants

之后它建議“使用myproject.SOMETHING.shared.constants”作為建議。 我將它重命名回myproject.shared.constants然后它起作用了。

嘗試清理然后重建 dll 文件。我遇到了同樣的問題,嘗試了來自互聯網的不同建議,但沒有一個工作。但它會。 如果您不知道如何執行以下步驟:

  1. 打開你的dll項目文件。 2.單擊解決方案資源管理器右鍵單擊您的 Dll 項目名稱,您將找到清理和重建選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM