2011-04-06 90 views
229

我有一個使用Visual Studio 2010構建的WCF數據服務項目,該項目工作正常。突然間,它不再編譯了。這是給我的消息,如:類型或名稱空間名稱不存在

Error 7 The type or namespace name 'Services' does not exist in the namespace 'System.Data' (are you missing an assembly reference?) C:\U...s\Visual Studio 2010\Projects...\DataService.cs ...

Error 8 The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) DependencyResolver.cs 3 14

Error 10 The type or namespace name 'Web' does not exist in the namespace 'System.ServiceModel' (are you missing an assembly reference?)

Error 12 The type or namespace name 'DataService' could not be found (are you missing a using directive or an assembly reference?)

我該如何解決它?

+0

是否有可能刪除了一些引用?或者頂部的一些Using語句被刪除了? – 2011-04-06 14:26:24

+0

我不記得刪除了任何參考。 – Attilah 2011-04-06 14:29:03

+0

無論你是否刪除它們,它們都不見了。嘗試將它們添加回來。你需要'System.Data'和'System.Linq'。 – 2011-04-06 14:31:02

回答

509

我有同樣的問題,我必須將所有項目的「目標框架」設置爲相同。然後它建立好。在項目菜單上,單擊ProjectName屬性。點擊編譯選項卡。點擊高級編譯選項。在目標框架中,選擇你想要的框架。

+7

我通過在解決方案資源管理器中右鍵單擊項目並選擇屬性來設置「目標框架」。目標框架應該在默認應用程序選項卡中可見。 – Cookie 2012-01-02 06:26:22

+4

@jaminator這是某些情況下的解決方案。至少在我的。出於某種原因,我的項目拒絕接受來自同一解決方案的名稱空間。問題在於控制檯應用程序的目標是客戶端配置文件。 – Amadiere 2012-03-02 13:48:22

+0

我對我正在處理的用戶控件有這個相同的錯誤。我將它添加到表單中,並可以在我的測試項目中看到它。我還可以在對象瀏覽器中看到名稱空間,並單擊其中的鏈接來瀏覽,而不會出現問題。當我構建但是我得到這個命名空間錯誤。我確信所有的框架都被設置爲相同的,並且肯定usercontrol項目有客戶端配置文件,而其他的配置文件有完整的。讓他們同樣爲我解決了這個問題。命名空間錯誤中的描述完全關閉。謝謝你的回覆彌敦道。 – 2012-04-04 18:22:38

18

我在嘗試使用LINQ to SQL時遇到了與ASP.NET MVC網站相同的問題。我的解決了這一問題:

解決方案管理器 - >參考 - >右鍵單擊System.Data.Linq程序 - >複製本地(真)

28

我曾與System.Linq的的問題不被認可。聲明中有一個紅色的波浪曲線等。我解決它的方式是將我的網站更改爲目標dotnet 3.5,然後切換回原始目標框架(在我的情況下爲4.0)。

+1

也爲我工作!但我必須做兩次...去圖! – nicholeous 2013-07-12 16:38:51

+0

手動合併同一應用程序的不同目標框架的一些web.config文件後,web.config停止工作,並且出現500內部服務器錯誤。如上所述重置後,Visual Studio 2012會自動從web.config中刪除一些舊設置,然後應用程序再次運行。 – humbads 2014-02-24 16:49:14

+0

有類似的問題,我認爲某些框架版本不認可'System.Linq'作爲一個有效的庫 – Callat 2017-06-19 19:45:28

17

檢查您的目標框架是否具有相同的.NET版本。我遇到了同樣的問題,我的.NET類是3.5,而Web解決方案的版本是4.5。我同步這些,然後它的工作:)

+8

這只是重複了[先前的答案]中提出和解釋(http://stackoverflow.com/a/7155510/1864167)之前幾個月發佈 – gnat 2014-12-09 09:18:02

5

任何人都有鏈接文件:我有這個問題,並使用silverlight和引發此錯誤的有問題的文件是一個鏈接的文件。

編譯器的錯誤告訴我錯誤發生在文件所在的項目中。它最終導致錯誤不在該項目中,它發生在包含鏈接文件的項目中。那個項目缺少一個參考。

+0

我在使用Windows 10上的Visual Studio 2013測試項目時使用System.Management.Automation與.NET 4項目發生此問題。將項目升級到.NET 4.5.1已修復的問題。 – 2015-06-02 00:29:35

6

在我的情況下,問題發生了,因爲我創建的類具有干擾現有類的名稱空間。新的A類名稱空間爲zz.yy.xx(錯誤)。對另一個命名空間yy.xx中的對象的引用不在類A或其命名空間爲zz的其他類中編譯。

我將A類的名稱空間更改爲yy.xx,它應該是這樣的,它開始工作。

-3

如果您在源代碼管理下,請刪除.refresh.dll文件。然後重建。它應該工作。 這工作對我來說

0

我遇到了同樣的錯誤。當我發現我的項目有錯誤的程序集名稱(我從一個不同的項目中複製了文件,並且名稱空間有點困惑)並將其更改後,該項目編譯得很好。

+0

Downvoted雖然它,這是我的問題!謝謝。 – SteveCav 2016-02-03 01:57:29

0

我得到了一個非常類似的錯誤消息,這是由於無意中在我的解決方案的另一個項目中複製了一個類。刪除重複的固定問題

10

我有same problem,並嘗試了上述所有的沒有任何成功,後來我發現這是什麼:

我會在一個創建了一個名爲「系統」的文件夾我的項目,然後在其中創建一個類。這個問題似乎源自創建.cs文件時稱爲「System」的名稱空間,即使它位於「MyProject.System」的名稱空間中。

回頭我可以理解爲什麼會造成問題。它起初真的讓我難住,因爲錯誤信息最初似乎並不涉及問題。

+1

我也有這個問題,以供參考。如果工具中有更多的解釋性錯誤信息,那將會很好,但是很好。 – Nick 2014-05-29 19:13:19

+2

我在MSDN上發佈了一些東西,但MS說它不是一個bug。我不會與此爭論,但我希望他們能理解它是如何引起問題的。 – GrandMasterFlush 2014-05-29 19:15:12

+1

這是騙人的...... – 2015-01-20 21:37:56

16

我發現這是由於我的名稱空間名稱與類名稱相同(MyWorld.MyWorld = Namespace.ClassName)。

將您的名稱空間更改爲與您的類名稱不同的名稱,這將編譯。

Source

+2

爲了解決這個問題,只是在'global ::' – joshcomley 2014-01-21 20:32:41

0

我最近需要做一個系統還原,就引起我的幾個文件就可以修改/消失,我一直以來的恢復工作。其中一些是DLL文件。我使用源代碼管理來檢索整個項目,但我仍然遇到類似的問題。我發現this answer,描述你可能需要刪除一個DLL並讀取它來修復你的錯誤。我的情況就是這種情況。

刪除WebMatrix.WebData並讀取它以及添加WebMatrix.Data固定我的錯誤The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ...

1

在我的情況下,項目沒有任何變化,它只是停下來編譯和「類型或名稱空間名稱XXX不存在」,並在抱怨類本身的智能感知該名稱空間/類工作正常。 問題在於參考!

重現步驟:

  1. 解決方案具有項目A,項目B。 ProjectA引用第三方log4net並標記爲Copy local: true。 ProjectB引用ProjectA並沒有引用log4net。 解決方案編譯得很好。

  2. 項目A中的更改:將log4net的參考屬​​性更改爲Copy local: false

  3. 清理bin和obj文件夾。
  4. 當您編譯時,ProjectA編譯但ProjectB抱怨沒有找到ProjectA名稱空間。

This is because ProjectBbin文件夾中缺少第三方庫(log4net in my case)!

在這種情況下,解決辦法是 -

  1. 確保第三方庫引用設置爲Copy local: true
  2. 在參考路徑下的項目屬性中添加此類庫的路徑。
1

我引用了Microsoft.CommerceServer.Runtime.Orders並遇到此錯誤。這個項目比較老,有Target framework .NET 2.0。在輸出我有這個錯誤:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: The primary reference "Microsoft.CommerceServer.Runtime" could not be resolved because it has an indirect dependency on the framework assembly "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "Microsoft.CommerceServer.Runtime" or retarget your application to a framework version which contains "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 

我只是改變目標框架。NET 4,現在它構建。

1

如果一切都失敗了,例如確保目標框架相同,並且您正在處理VS2010中的WPF類庫,那麼只需重新啓動Visual Studio。那爲我做了。

+0

前綴'Windows.Whatever'在我的情況下vs2010,dll引用有錯誤,我讀了dll引用,它看起來不錯,但是在構建發生「類型命名空間錯誤」。我重新啓動Visual Studio後,重新啓動後,原來的dll錯誤再次顯示,並且我再次讀取它,並重新構建,成功。 – 2016-12-29 08:23:12

10

我遇到過與System.Data.SQLite相同的問題。問題的根源是您使用的dll應該與您的項目具有相同的.NET版本。

例如,如果你已經使用(在我的情況下)SQLite for .NET 4.5,你的平臺目標也應該是.NET 4.5。

您可以通過以下方式找到平臺目標:項目>(項目名稱)屬性>構建。

+0

這解決了我剛纔的問題。除了告訴你哪個DLL是問題之外,錯誤消息並不是非常有用。 – PointlessSpike 2015-12-10 10:30:41

1

我在使用Visual Studio的Git集成來管理項目時遇到此問題。由於某些原因,Windows Phone 8項目在針對x86時編譯得很好,但是當我將其設置爲ARM目標時,它將無法編譯,並顯示「Microsoft」名稱空間中不存在「廣告」錯誤。

我最終通過刪除Microsoft.Advertising。*。dll引用並再次添加它來解決問題。

相關問題