Ich habe ein WCF Data Service-Projekt mit Visual Studio 2010 erstellt, das einwandfrei funktioniert hat. Plötzlich wurde es nicht mehr kompiliert. Es gab mir Nachrichten wie:
Fehler 7 Der Typ- oder Namespace-Name 'Services' ist im Namespace 'System.Data' nicht vorhanden (fehlt eine Assemblyreferenz?) C: \ U ... s \ Visual Studio 2010 \ Projects ... \ DataService. cs ...
Fehler 8 Der Typ- oder Namespace-Name 'Linq' ist im Namespace 'System' nicht vorhanden (fehlt eine Assembly-Referenz?) DependencyResolver.cs 3 14
Fehler 10 Der Typ- oder Namespace-Name 'Web' ist im Namespace 'System.ServiceModel' nicht vorhanden (fehlt eine Assemblyreferenz?)
Fehler 12 Der Typ- oder Namespace-Name 'DataService' wurde nicht gefunden (fehlt Ihnen eine using-Direktive oder eine Assembly-Referenz?)
Wie kann ich es reparieren?
quelle
Antworten:
Ich hatte das gleiche Problem und musste das "Ziel-Framework" aller Projekte so einstellen, dass es gleich ist. Dann baute es gut. Klicken Sie im Menü Projekt auf Eigenschaften des Projektnamens. Klicken Sie auf die Registerkarte Kompilieren. Klicken Sie auf Erweiterte Kompilierungsoptionen. Wählen Sie im Ziel-Framework das gewünschte Framework aus.
quelle
Ich hatte ein Problem damit, dass System.Linq nicht erkannt wurde. Die
using
Aussage hatte einen roten Schnörkel usw. Die Art und Weise, wie ich sie löste, bestand darin, meine Website auf Ziel-Dotnet 3.5 zu ändern und dann wieder zum ursprünglichen Ziel-Framework (in meinem Fall 4.0) zu wechseln.quelle
System.Linq
als gültige BibliothekIch habe festgestellt, dass dies darauf zurückzuführen ist, dass ich denselben Namespace-Namen wie der Klassenname habe (
MyWorld.MyWorld = Namespace.ClassName
) habe.Ändern Sie Ihren Namespace in einen Namen, der nicht mit Ihrer Klasse identisch ist, und dieser wird kompiliert.
Quelle
quelle
Windows.Whatever
withglobal::
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 -> Verweise -> Klicken Sie mit der rechten Maustaste auf System.Data.Linq -> Lokal kopieren (True)
quelle
Überprüfen Sie, ob Ihr Zielframework über dieselben .NET-Versionen verfügt. Ich hatte das gleiche Problem und meine Klasse .NET war 3.5 und die Weblösung hatte 4.5. Ich habe diese synchronisiert und dann hat es funktioniert :)
quelle
Ich hatte das gleiche Problem und versuchte alles oben ohne Erfolg, dann fand ich heraus, was es war:
Ich hatte in einem meiner Projekte einen Ordner namens "System" erstellt und dann eine Klasse darin erstellt. Das Problem scheint darauf zurückzuführen zu sein, dass beim Erstellen der CS-Datei ein Namespace namens "System" vorhanden ist, selbst wenn er sich in einem Namespace von "MyProject.System" befindet.
Rückblickend kann ich verstehen, warum dies Probleme verursachen würde. Es hat mich zunächst wirklich verblüfft, da die Fehlermeldungen zunächst nicht mit dem Problem in Zusammenhang zu stehen scheinen.
quelle
Ich habe das gleiche Problem mit System.Data.SQLite festgestellt. Die Ursache des Problems ist, dass die von Ihnen verwendete DLL dieselbe .NET-Version für Ihr Projekt haben sollte.
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.
quelle
In meinem Fall trat das Problem auf, weil die von mir erstellte Klasse einen Namespace hatte, der vorhandene Klassen störte. 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 hätte sein sollen, und es hat funktioniert.
quelle
FÜR JEDEN MIT VERBUNDENEN 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 war NICHT in diesem Projekt, sondern in dem Projekt, das die verknüpfte Datei enthielt. Diesem Projekt fehlte eine Referenz.
quelle
Ich habe dieses Problem bei der Verwendung von Visual Studios Git festgestellt Integration zum Verwalten des Projekts verwendete. Aus irgendeinem Grund wurde das Windows Phone 8-Projekt beim Targeting von x86 problemlos kompiliert. Wenn ich es jedoch auf ARM-Targeting festlegte, schlug die Kompilierung mit einem Fehler fehl, der darauf hinwies, dass "Werbung" im Microsoft-Namespace nicht vorhanden war.
Am Ende habe ich das Problem behoben, indem ich die Microsoft.Advertising. *. DLL-Referenz entfernt und erneut hinzugefügt habe.
quelle
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 Intellisense für diesen XXX-Namespace / diese XXX-Klasse einwandfrei. Das Problem war in der Tat in Referenzen!
Schritte zum Reproduzieren:
Die Lösung hat ProjectA, ProjectB. ProjectA verweist auf log4net von Drittanbietern und ist markiert
Copy local: true
. ProjectB verweist auf ProjectA und hat keinen Verweis auf log4net. Lösung kompiliert gut.Änderung in ProjectA: Referenzeigenschaft für log4net an
Copy local: false
.This is because ProjectB
Im Ordner bin fehlt die Bibliothek eines Drittanbieters(log4net in my case)!
In diesem Fall wäre die Lösung -
Copy local: true
oder gesetzt sindquelle
Ich verweise auf Microsoft.CommerceServer.Runtime.Orders und habe diesen Fehler festgestellt. Dieses Projekt ist alt und hat Target Framework .NET 2.0. In der Ausgabe hatte ich diesen Fehler:
Ich habe einfach das Zielframework in .NET 4 geändert und jetzt wird es erstellt.
quelle
Wenn alles andere fehlschlägt, z. B. um sicherzustellen, dass die Zielframeworks identisch sind und Sie mit einer WPF-Klassenbibliothek in VS2010 arbeiten, starten Sie Visual Studio einfach neu. Das hat es für mich getan.
quelle
type namespace error
auf. Und ich starte Visual Studio neu, nachdem ich neu gestartet habe, wird die ursprüngliche DLL-Fehleranzeige erneut angezeigt, und ich habe sie erneut gelesen und den Erfolg erneut erstellt.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 etwas verwirrt) und es wieder geändert, wurde das Projekt gut kompiliert.
quelle
Ich habe eine sehr ähnliche Fehlermeldung erhalten, die dadurch verursacht wurde, dass ich versehentlich ein Duplikat einer Klasse in einem anderen Projekt meiner Lösung erstellt habe. Das Löschen des Duplikats hat das Problem behoben
quelle
Ich musste kürzlich eine Systemwiederherstellung durchführen, die dazu führte, dass sich einige meiner Dateien änderten / verschwanden, an denen ich seit der Wiederherstellung gearbeitet hatte. Einige davon waren DLL-Dateien. Ich habe die Quellcodeverwaltung verwendet, um das gesamte Projekt abzurufen, aber ich hatte immer noch ein ähnliches Problem wie oben. Ich habe diese Antwort gefunden , die beschreibt, dass Sie möglicherweise eine DLL entfernen und lesen müssen, um Ihre Fehler zu beheben. Dies war in meinem Szenario der Fall.
Das Entfernen
WebMatrix.WebData
und Lesen sowie das Hinzufügen von habenWebMatrix.Data
meinen Fehler behobenThe type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ...
.quelle
Löschen Sie die Datei .refresh.dll, wenn Sie sich in der Quellcodeverwaltung befinden. Dann wieder aufbauen. Es sollte funktionieren. Das hat bei mir funktioniert
quelle