it-swarm.com.de

Typ- oder Namespace-Name existiert nicht

Ich habe ein WCF Data Service-Projekt mit Visual Studio 2010 erstellt, das einwandfrei funktioniert hat. Plötzlich kompilierte es nicht mehr. Es gab mir Nachrichten wie:

Fehler 7 Der Typ- oder Namespace-Name "Services" ist im Namespace "System.Data" nicht vorhanden. (Fehlt ein Assemblyverweis?) C:\U ... s\Visual Studio 2010\Projects ...\DataService. cs ...

Fehler 8 Der Typ- oder Namespace-Name "Linq" ist im Namespace "System" nicht vorhanden. (Fehlt ein Assemblyverweis?) DependencyResolver.cs 3 14

Fehler 10 Der Typ- oder Namespace-Name "Web" ist im Namespace "System.ServiceModel" nicht vorhanden. (Fehlt ein Assemblyverweis?)

Fehler 12 Der Typ- oder Namespace-Name 'DataService' wurde nicht gefunden (fehlt eine using-Direktive oder eine Assembly-Referenz?)

Wie kann ich es reparieren?

293
Attilah

Ich hatte das gleiche Problem und musste das "Ziel-Framework" für alle Projekte gleich festlegen. Dann hat es gut gebaut. Klicken Sie in dem Menü Projekt auf ProjectName Properties. Klicken Sie auf die Registerkarte Kompilieren. Klicken Sie auf Erweiterte Kompilierungsoptionen. Wählen Sie im Ziel-Framework das gewünschte Framework aus.

583
Nathan Koop

Ich hatte ein Problem damit, dass System.Linq nicht erkannt wurde. Die using -Anweisung hatte eine rote Verzerrung usw. Die Art und Weise, wie ich sie löste, bestand darin, meine Website auf das Ziel-Dotnet 3.5 zu ändern und dann zum ursprünglichen Ziel-Framework zurückzukehren (in meinem Fall 4.0).

41
john west

Ich habe festgestellt, dass dies darauf zurückzuführen ist, dass ich denselben Namespace-Namen wie der Klassenname (MyWorld.MyWorld = Namespace.ClassName) habe.

Ändern Sie Ihren Namespace in einen Namen, der nicht mit Ihrem Klassennamen übereinstimmt, und dies wird kompiliert.

Quelle

24
KiwiNige

Ich hatte das gleiche Problem mit einer ASP.NET MVC Site, als ich versuchte LINQ to SQL zu verwenden. Ich habe das Problem behoben durch:

Projektmappen-Explorer -> Referenzen -> Klicken Sie mit der rechten Maustaste auf System.Data.Linq -> Lokal kopieren (True)

20
ModChowdhury

Überprüfen Sie, ob Ihr Zielframework dieselben .NET-Versionen aufweist. Ich hatte das gleiche Problem und meine Klasse .NET war 3.5 und Web-Lösung hatte 4.5. Ich habe diese synchronisiert und dann hat es funktioniert :)

18
Gorglar

Ich habe das gleiche Problem mit System.Data.SQLite erlebt. Die Ursache des Problems ist Die von Ihnen verwendete DLL sollte dieselbe .NET-Version wie Ihr Projekt haben.

Wenn Sie beispielsweise (in meinem Fall) SQLite für .NET 4.5 verwendet haben, sollte Ihr Plattformziel auch .NET 4.5 sein.

Sie finden das Plattformziel unter: Projekt> (Projektname) Eigenschaften> Erstellen.

12
hakanali_md

Ich hatte das selbe Problem und versuchte alles, ohne Erfolg, dann fand ich heraus, was es war:

Ich habe in einem meiner Projekte einen Ordner mit dem Namen "System" erstellt und darin eine Klasse erstellt. Das Problem scheint darauf zurückzuführen zu sein, dass beim Erstellen der CS-Datei ein Namespace mit dem Namen "System" erstellt wird, selbst wenn er sich in einem Namespace mit dem Namen "MyProject.System" befindet.

Rückblickend kann ich verstehen, warum dies Probleme verursachen würde. Zuerst hat es mich wirklich überrascht, da die Fehlermeldungen anfangs nicht mit dem Problem zu tun zu haben scheinen.

11

In meinem Fall trat das Problem auf, weil die von mir erstellte Klasse einen Namespace hatte, der sich auf vorhandene Klassen auswirkte. Die neue Klasse A hatte den Namespace zz.yy.xx (aus Versehen). Verweise auf Objekte in einem anderen Namespace yy.xx wurden in Klasse A oder anderen Klassen mit dem Namespace zz nicht kompiliert.

Ich habe den Namespace der Klasse A in yy.xx geändert, was eigentlich hätte sein sollen, und es hat funktioniert.

7
zDan

Für alle mit verknüpften Dateien: Ich hatte dieses Problem und verwendete Silverlight. Die fehlerhafte Datei, die diesen Fehler auslöste, war eine verknüpfte Datei.

Der Fehler des Compilers hat mir mitgeteilt, dass der Fehler in dem Projekt aufgetreten ist, in dem sich die Datei befand. Der Fehler befand sich NICHT in diesem Projekt, sondern in dem Projekt, das die verknüpfte Datei enthielt. In diesem Projekt fehlte eine Referenz.

5
Mario

Ich beziehe mich auf Microsoft.CommerceServer.Runtime.Orders und habe diesen Fehler festgestellt. Dieses Projekt ist alt und hat das Zielframework .NET 2.0. In der Ausgabe hatte ich diesen Fehler:

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"

Ich habe einfach das Zielframework auf .NET 4 geändert und jetzt wird es erstellt.

1
Skychan

Ich bin auf dieses Problem gestoßen, als ich die Git - Integration von Visual Studio zum Verwalten des Projekts verwendet habe. Aus irgendeinem Grund lässt sich das Windows Phone 8-Projekt beim Targeting auf x86 problemlos kompilieren. Wenn ich es jedoch auf Targeting auf ARM setze, schlägt die Kompilierung mit einem Fehler fehl, der darauf hinweist, dass "Werbung" im Microsoft-Namespace nicht vorhanden ist.

Das Problem wurde behoben, indem die Microsoft.Advertising. *. Dll-Referenz entfernt und erneut hinzugefügt wurde.

1
Tom Stu

Wenn alles andere fehlschlägt, z. B. um sicherzustellen, dass die Ziel-Frameworks identisch sind und Sie mit einer WPF-Klassenbibliothek in VS2010 arbeiten, starten Sie Visual Studio einfach neu. Das hat es für mich getan.

1
Klaus Nji

In meinem Fall gab es keine Änderung in Projekten, es wurde nur zum Kompilieren angehalten und mit "Typ- oder Namespace-Name XXX existiert nicht" und in der klagenden Klasse selbst funktioniert die Intellisense für diesen XXX-Namespace/diese Klasse einwandfrei. Das Problem war in der Tat in Referenzen!

Schritte zum Reproduzieren:

  1. Die Lösung hat ProjectA, ProjectB. ProjectA verweist auf log4net von Drittanbietern und ist mit Copy local: true gekennzeichnet. ProjectB verweist auf ProjectA und nicht auf log4net. Lösung kompiliert gut.

  2. Ändern Sie in ProjectA: die Referenzeigenschaft für log4net in Copy local: false.

  3. Bereinigen Sie die Ordner bin und obj.
  4. Beim Kompilieren wird ProjectA kompiliert, aber ProjectB beschwert sich darüber, dass ProjectA-Namespace nicht gefunden wurde.

This is because ProjectBim bin-Ordner fehlt die Bibliothek eines Drittanbieters(log4net in my case)!

In diesem Fall wäre die Lösung:

  1. stellen Sie sicher, dass die Verweise auf Bibliotheken von Drittanbietern auf Copy local: true oder festgelegt sind
  2. fügen Sie diesen Bibliotheken in den Projekteigenschaften unter Referenzpfad den Pfad hinzu.
1
Sasha Bond

Ich habe die gleichen Fehler erlebt. Nachdem ich festgestellt hatte, dass mein Projekt den falschen Assembly-Namen hatte (ich habe Dateien aus einem anderen Projekt kopiert und die Namespaces wurden ein wenig verwirrt), und es zurückgeändert, wurde das Projekt gut kompiliert.

0
Fred

Es wurde eine sehr ähnliche Fehlermeldung angezeigt, die darauf zurückzuführen war, dass in einem anderen Projekt meiner Lösung versehentlich ein Duplikat einer Klasse erstellt wurde. Das Löschen des Duplikats behebt das Problem

0
Chris Halcrow

Ich musste kürzlich eine Systemwiederherstellung durchführen und es verursachte, dass einige meiner Dateien, an denen ich seit der Wiederherstellung gearbeitet hatte, geändert wurden bzw. verschwanden. Einige davon waren DLL Dateien. Ich habe die Quellcodeverwaltung verwendet, um das gesamte Projekt abzurufen, hatte aber immer noch ein ähnliches Problem wie oben. Ich fand diese Antwort das beschriebene müssen Sie möglicherweise ein DLL entfernen und es lesen, um Ihre Fehler zu beheben. Dies war in meinem Szenario der Fall.

Das Entfernen von WebMatrix.WebData und das Einlesen sowie das Hinzufügen von WebMatrix.Data haben meinen Fehler von The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ... behoben.