365 Stimmen

Typ oder Namespace-Name existiert nicht

Ich habe ein WCF Data Service-Projekt mit Visual Studio 2010 erstellt, das einwandfrei funktionierte. Plötzlich ließ es sich nicht mehr kompilieren. Es gab mir Nachrichten wie:

Fehler 7 Der Typ oder Namespacename 'Services' ist nicht im Namespacenamen 'System.Data' vorhanden (fehlt Ihnen eine Assembly-Referenz?) C:\U...s\Visual Studio 2010\Projects...\DataService.cs ...

Fehler 8 Der Typ oder Namespacename 'Linq' ist nicht im Namespacenamen 'System' vorhanden (fehlt Ihnen eine Assembly-Referenz?) DependencyResolver.cs 3 14

Fehler 10 Der Typ oder Namespacename 'Web' ist nicht im Namespacenamen 'System.ServiceModel' vorhanden (fehlt Ihnen eine Assembly-Referenz?)

Fehler 12 Der Typ oder Namespacename 'DataService' konnte nicht gefunden werden (fehlt Ihnen eine using-Anweisung oder eine Assembly-Referenz?)

Wie kann ich es beheben?

0 Stimmen

Ist es möglich, dass einige Referenzen entfernt wurden? Oder wurden einige Using-Anweisungen oben entfernt?

0 Stimmen

Ich erinnere mich nicht daran, irgendwelche Referenzen entfernt zu haben.

0 Stimmen

Ob du sie entfernt hast oder nicht, sie sind weg. Versuche, sie wieder hinzuzufügen. Du brauchst System.Data und System.Linq.

2voto

Chris Halcrow Punkte 25120

Ich habe eine sehr ähnliche Fehlermeldung erhalten, die durch das versehentliche Erstellen eines Duplikats einer Klasse in einem anderen Projekt meiner Lösung verursacht wurde. Das Löschen des Duplikats hat das Problem behoben

2voto

Sasha Bond Punkte 798

In meinem Fall gab es keine Änderung an den Projekten, es hat einfach aufgehört zu kompilieren und mit "Typ oder Namespacename XXX existiert nicht" und im beschwerenden Klassen selbst funktioniert Intellisense für diesen XXX-Namespacenamen/Klasse einwandfrei. Das Problem lag tatsächlich an den Referenzen!

Schritte zur Reproduktion:

  1. Die Lösung hat ProjektA, ProjektB. ProjektA verweist auf das Drittanbieter-Log4net und ist als Copy local: true markiert. ProjektB verweist auf ProjektA und hat keinen Verweis auf Log4net. Die Lösung kompiliert gut.

  2. Änderung in ProjektA: Verweis-Eigenschaft für Log4net auf Copy local: false ändern.

  3. Bin- und Objektordner bereinigen.

  4. Beim Kompilieren kompiliert ProjektA, aber ProjektB beschwert sich darüber, dass der Namensraum von ProjektA nicht gefunden werden kann.

Dies liegt daran, dass im Bin-Ordner von ProjektB die Drittanbieterbibliothek fehlt (in meinem Fall Log4net)!

In diesem Fall wäre die Lösung -

  1. Stellen Sie sicher, dass die Verweise auf die Drittanbieterbibliotheken auf Copy local: true gesetzt sind oder
  2. Fügen Sie den Pfad zu solchen Bibliotheken in den Projekteigenschaften unter Verzeichnispfad hinzu.

2voto

Klaus Nji Punkte 16797

Und wenn alles andere fehlschlägt, wie zum Beispiel die Sicherstellung, dass die Ziel-Frameworks gleich sind, und Sie es mit einer WPF-Klassenbibliothek in VS2010 zu tun haben, starten Sie einfach Visual Studio neu. Das hat bei mir funktioniert.

0 Stimmen

Im in meinem Fall vs2010, hat eine DLL-Referenz Fehler, ich habe die DLL-Referenz erneut hinzugefügt und es scheint großartig zu sein, aber nach dem Build tritt der Typ-Namespace-Fehler auf. Ich starte Visual Studio neu, nachdem ich neu gestartet habe, wird der ursprüngliche DLL-Fehler erneut angezeigt, und ich füge ihn erneut hinzu, und baue erneut, erfolgreich.

2voto

Fred Punkte 51

Ich habe die gleichen Fehler erlebt. Nachdem ich festgestellt habe, dass mein Projekt den falschen Assembly-Namen hatte (ich habe Dateien von einem anderen Projekt kopiert und die Namensräume wurden ein wenig durcheinandergebracht) und ihn zurückgeändert habe, wurde das Projekt problemlos kompiliert.

0 Stimmen

Ja, für mich war dies auch die richtige Antwort. Außerdem: In meinem Fall versuchte ich, den gleichen Namen für die Klasse und den Namespace zu verwenden. Mindestens ist das verwirrend und kann auch Fehler verursachen. Ich musste alles vollständig qualifizieren, z.B. unsereNamespace.UnsereKlasse.UnsereStatischeMethode. Diese Antwort war sehr hilfreich, es tut mir leid, dass sie anfangs negativ bewertet wurde, aber jetzt hat sie 2 nett-positive Stimmen!

1 Stimmen

@JosephDoggie Ich hatte ein ähnliches Problem, bei dem ich alles vollständig qualifizieren musste, was eine Klasse verwendete. Dies passierte, nachdem ich ein .net-Framework-Projekt in den neuen SDK-Stil konvertiert hatte. Ich habe das dank dies schließlich verstanden, indem ich die using-Anweisungen innerhalb des Namensraums verschoben habe.

1voto

Skystrider Punkte 349

Ich verweise auf Microsoft.CommerceServer.Runtime.Orders und habe diesen Fehler erlebt. Dieses Projekt ist alt und hat das Zielframework .NET 2.0. Im Output hatte ich diesen Fehler:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): Warnung MSB3268: Die primäre Referenz "Microsoft.CommerceServer.Runtime" konnte nicht aufgelöst werden, da sie eine indirekte Abhängigkeit von der Framework Assembly "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" hat, die im derzeit ausgerichteten Framework nicht aufgelöst werden konnte. ".NETFramework,Version=v2.0". Um dieses Problem zu lösen, entfernen Sie entweder die Referenz "Microsoft.CommerceServer.Runtime" oder richten Sie Ihre Anwendung auf eine Framework-Version um, die "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" enthält.

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X