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.

703voto

Nathan Koop Punkte 23863

Ich hatte das gleiche Problem und musste das "Ziel Framework" aller Projekte auf dasselbe einstellen. Dann hat es gut funktioniert. Im Projektmenü klicken Sie auf Projektname Eigenschaften. Klicken Sie auf die Registerkarte Kompilieren. Klicken Sie auf Erweiterte Kompilierungsoptionen. Wählen Sie unter Ziel Framework Ihr gewünschtes Framework aus.

14 Stimmen

Ich habe das "Ziel-Framework" festgelegt, indem ich mit der rechten Maustaste auf das Projekt im Lösungs-Explorer geklickt und Eigenschaften ausgewählt habe. Das Ziel-Framework sollte im Standardanwendungstab sichtbar sein.

4 Stimmen

@jaminator Das ist in einigen Fällen eine Lösung. Zumindest in meinem Fall. Aus irgendeinem Grund weigerte sich mein Projekt, einen Namespace aus derselben Lösung zu akzeptieren. Das Problem war, dass die Konsolenanwendung das Clientprofil anvisierte.

0 Stimmen

Meine Konfiguration: exe - Framework 4.0 Client Profil verweist auf dll (Framework 2.0) Lösung: Einstellen der exe auf Framework 4.0 (nicht Client Profil) Ich musste die dll nicht anfassen, sie ist immer noch Framework 2.0. Dies ist nicht das erste Mal, dass das "Client Profil" Probleme für mich macht...

52voto

john west Punkte 616

Ich hatte ein Problem damit, dass System.Linq nicht erkannt wurde. Die using-Anweisung hatte eine rote Linie usw. Ich löste das Problem, indem ich meine Website so einstellte, dass sie auf dotnet 3.5 abzielt und dann wieder zum ursprünglich angezielten Framework wechselte (in meinem Fall 4.0).

2 Stimmen

Hat auch bei mir funktioniert! Aber ich musste es zweimal machen... wer hätte das gedacht!

0 Stimmen

Nachdem ich manuell einige web.config-Dateien verschiedener Ziel-Frameworks für die gleiche App zusammengeführt hatte, funktionierte die web.config nicht mehr und ich erhielt einen 500 Internal Server Error. Nach dem Zurücksetzen, wie oben beschrieben, wurden einige alte Einstellungen automatisch von Visual Studio 2012 aus der web.config entfernt und die App funktionierte wieder.

0 Stimmen

Hatte ein ähnliches Problem, ich glaube bestimmte Framework-Versionen erkennen einfach nicht System.Linq als gültige Bibliothek an

39voto

KiwiNige Punkte 1086

Ich habe festgestellt, dass dies daran liegt, dass ich denselben Namespace-Namen wie Klassenname habe (MyWorld.MyWorld = Namespace.ClassName).

Ändern Sie Ihren Namespace in einen Namen, der nicht mit dem Namen Ihrer Klasse übereinstimmt, und dies wird kompilieren.

Quelle

8 Stimmen

Um es zu lösen, fügen Sie einfach dem Windows.Whatever das Präfix global:: hinzu.

22voto

ModChowdhury Punkte 451

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

Lösung Explorer -> Verweise -> Klicken Sie mit der rechten Maustaste auf System.Data.Linq -> Lokal kopieren (True)

1 Stimmen

Für mich war es nicht nötig, "Copy Local" auf "True" zu setzen, sondern tatsächlich "Specific Version" auf "False". Das hat es geklärt.

16voto

hakanali_md Punkte 141

Ich habe dasselbe Problem mit System.Data.SQLite erlebt. Die Ursache des Problems ist die DLL, die du verwendet hast, sollte die gleiche .NET-Version wie dein Projekt haben.

Zum Beispiel, wenn du (in meinem Fall) SQLite für .NET 4.5 verwendet hast, sollte dein Plattformziel auch .NET 4.5 sein.

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

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