it-swarm.com.de

Metadatendatei ... konnte beim Erstellen von Projekten nicht gefunden werden

Bei jedem Start von Visual Studio 2008 wird beim ersten Versuch, das Projekt auszuführen, der Fehler CS0006 angezeigt. Die Metadatendatei ... wurde nicht gefunden. Wenn ich die komplette Lösung neu erstelle, funktioniert es.

Einige Informationen zur Lösung:

  • Ich baue im Debug-Modus und Visual Studio beschwert sich darüber, dass keine DLLs im Release-Ordner gefunden wurden.

  • Die Projekte, über die sich Visual Studio beschwert, werden von vielen anderen Projekten in der Lösung verwendet.

  • Ich habe den Standardausgabepfad aller Projekte in ......\build\debug\ProjectName bzw. ......\build\release\ProjectName geändert. (Nur um alle Build-Dateien in einem Verzeichnis zu bekommen)

  • Ich habe das gleiche Problem mit einer anderen Lösung.

  • Die Lösung wurde von Grund auf neu erstellt.

  • Es gibt 9 Projekte in der Lösung. Eine WPF und 8 Klassenbibliotheken mit dotnet 3.5.

Irgendwelche Ideen, was dieses Problem verursacht?

97
Robert Höglund

ich hatte das ähnliche Problem, bei dem "Metadaten nicht gefunden werden konnten". Stellen Sie in der Lösungseigenschaft sicher, dass das Kontrollkästchen "Build" für jedes Projekt in Build/Configuration Manager markiert ist.

132
Uprock7

Dies wird normalerweise durch ein Projekt verursacht, auf das in einer anderen Lösung als der verwiesen wird, die den Fehler auslöst. Wenn Sie die andere Lösung bereinigen oder den Code verzweigen, wird dieser Fehler höchstwahrscheinlich angezeigt. Die Lösung besteht darin, in der Liste der Fehler "Metadaten nicht gefunden" nach unten zu scrollen und die Verweise auf die Projekte zu überprüfen. 9/10 Mal wird ein fehlerhafter Verweis auf ein Projekt angezeigt, das nicht in dieser Lösung enthalten ist. Fügen Sie die Projekte hinzu, um die Referenzfehler zu beheben, und erstellen Sie sie neu. Das sollte es beheben.

(Ich bin heute darauf gestoßen und habe es in der Vergangenheit getan, und das hat IMMER funktioniert.)

26
Chris T.

Ich hatte dieses Problem, nicht sicher, ob es helfen wird, aber mein Problem wurde dadurch verursacht, dass zwei verschiedene Versionen desselben Projekts von zwei verschiedenen Lösungen referenziert wurden. Wenn ich die Lösung mit dem Verweis auf das richtige Projekt zuerst erstellte, wurde die zweite Lösung einwandfrei erstellt. Wenn ich jedoch die erste Lösung bereinigte und versuchte, die zweite Lösung zu erstellen, schlug dies mit diesen DLL-Referenzfehlermeldungen fehl.

Die Lösung für mich war, herauszufinden, dass ich zwei Projekte mit demselben Namen hatte, die versehentlich dupliziert wurden, und den Verweis auf das alte falsche Projekt zu entfernen und einen Verweis auf das neue hinzuzufügen.

In jedem Fall scheint es so, als wären diese Meldungen ein roter Faden. Ich würde Ihre Build-Ausgabe überprüfen und das erste Projekt finden, das nicht erstellt werden kann, und die Verweise auf dieses Projekt sehr sorgfältig überprüfen.

7
Shaun DAmico

Eine andere zu überprüfende Sache ist die Pfadlänge ... die auch dazu führt, dass die Metadatendatei nicht gefunden wird und Kompilierungsfehler ... Ich habe meine Ordner nur in kürzere Pfade und Voilá umbenannt, Klassen, die nicht erkannt wurden und schwarz blieben, wurden nur durch Umbenennen blau die Mappe.

6
Paul Ehmig

Für mich hatte ich ein Projekt in einem anderen Projekt verwiesen. Es wurde nicht angezeigt, dass es in der Referenzliste im Fenster des Projektmappen-Explorers fehlerhaft war, aber ich habe es trotzdem entfernt und neu eingelesen. Es baut jetzt ganz gut!

5
Josh P

Ich habe all diese Schritte in VS2012 durchlaufen, bin aber beim Erstellen der gesamten Lösung immer wieder auf dieses Problem gestoßen (die einzelnen Projekte wurden einwandfrei und fehlerfrei erstellt).

Wenn Sie im Projektmappen-Explorer mit der rechten Maustaste auf Ihre Projektmappe klicken und "Erstellungsreihenfolge" auswählen, wird die Reihenfolge angezeigt, in der VS Ihre Projektmappe neu erstellt. Es ist wahrscheinlich aus dem Ruder gelaufen.

Sie können die Erstellungsreihenfolge korrigieren, indem Sie auf die Registerkarte Abhängigkeiten klicken, die Projekte auswählen, die von anderen Projekten in der Projektmappe abhängen, und die Projekte überprüfen, von denen sie abhängen. Sobald Sie auf OK geklickt und die Lösung neu erstellt haben, sollten Sie einsatzbereit sein.

3
Dan

Ich habe jedes Mal ein ähnliches Problem, wenn ich das Projekt von SVN aus aktualisiere.
Eine andere Lösung für ASP.NET:

  1. Schließen Sie die IDE.
  2. Löschen Sie die Dateien in C:\WINDOWS\Microsoft.net\framework\v…\Temporary ASP.NET File\.
2
maksim09

Die Art und Weise, wie ich dies in der Vergangenheit in VS2005 und jetzt auch in VS2008 umgangen habe, besteht darin, sicherzustellen, dass alle Abhängigkeiten korrekt sind und die Verweise auf die Projekte und nicht auf die DLLs verweisen. Gehen Sie dann durch und erstellen Sie jedes Projekt manuell in Abhängigkeitsreihenfolge. Sobald der letzte Build erstellt wurde, können Sie einen vollständigen Lösungsbuild ausführen, und es ist in Ordnung.

Diese Antwort ist als zukünftige Referenz für andere gedacht, da ich weiß, dass die Frage älter als 15 Monate ist.

Prost

2
WestDiscGolf

Ich möchte einige Punkte ansprechen.

Wenn Sie sich unter MSBuild auf die Lösungsdatei als Erstellungsdatei verlassen, stellen Sie sicher, dass Sie der Lösungsdatei Projekte in der Reihenfolge hinzufügen, in der sie erstellt werden sollen, d. H. Basierend auf der gegenseitigen Abhängigkeitsreihenfolge der Projekte. Dies ist sehr wichtig, wenn Sie Projekte in der Lösung haben, von denen andere Projekte abhängen. Die Referenzen wurden jedoch als "Referenzen" und nicht als "Projektreferenzen" hinzugefügt.

Sie sollten dies wie die Pest vermeiden. In diesem Fall müssen Sie jedoch sicherstellen, dass die abhängigen Projekte früher in der Lösungsdatei angezeigt werden.

Beachten Sie, dass die Art und Weise, in der Visual Studio die Erstellungsreihenfolge generiert, nicht genau der von MSBuild entspricht. Dies liegt daran, dass MSBuild in erster Linie von der Projektdatei abhängt, um die Abhängigkeiten zu ermitteln, während Visual Studio sie auch in der Lösungsdatei speichern kann. Daher können manchmal Situationen auftreten, in denen Visual Studio die Lösung perfekt erstellt, MSBuild dies jedoch nicht kann.

In einigen Fällen musste ich die Reihenfolge ändern, in der die Projekte in der Lösungsdatei angezeigt werden, sowie die Reihenfolge, in der die Projekte im ProjectReferences-Element in einem Websiteprojekt in der Lösungsdatei aufgelistet wurden.

Ich hoffe die obigen Informationen helfen.

2

Wenn Sie beispielsweise LinqtoSQL-Datenkontexte verwenden und die Datei .designer.cs fehlt, wird der Fehler angezeigt, dass die Metadatendatei nicht gefunden wurde.

Das Neuerstellen der designer.cs-Datei ist einfach.

Öffnen Sie die Datenbank in der XML-Ansicht. Fügen Sie eine leere Zeile hinzu, entfernen Sie sie und speichern Sie sie. Das sollte Ihre designer.cs-Datei neu generieren.

Unter bestimmten Umständen funktioniert diese Problemumgehung nicht, wenn sich Code im Code-Behind Ihres Datenkontexts befindet. Nehmen Sie in diesem Fall den Code aus dem Code dahinter und speichern Sie ihn in einem Notizblock oder so. Führen Sie den Trick aus, indem Sie eine Zeile aus DC entfernen und speichern. Setzen Sie nun den Code zurück und speichern Sie.

2
lithium6941

Ich habe diesen Fehler auch erlebt und die Ursache war, dass das Projekt auf sich selbst verweist. Ich habe keine Ahnung, wie es passiert ist, aber ich habe nur die Referenz und den Voila entfernt

1
JessiePilor

In meinem Fall habe ich herausgefunden, dass eine meiner Lösungen auf etwas verweist, das nicht auf dem Computer vorhanden ist (VBIDE). Sobald ich den beleidigenden Verweis entfernt hatte, wurden die restlichen Projekte korrekt erstellt. Hoffe das hilft jemandem.

In einer anderen Situation habe ich Code von einem Projekt in ein anderes verschoben, und dieser Code hat auf Json.net verwiesen. Ich habe manuell einen Verweis auf Json.net hinzugefügt, aber dadurch ist das Problem entstanden. Ich habe es durch die Installation von Json.net über NuGet gelöst und das hat das Problem behoben. Hoffe das hilft jemandem.

1
Eddie Edwards

Stellen Sie zunächst sicher, dass das Kontrollkästchen "Erstellen" in Build -> Configuration Manager für jedes Projekt markiert ist.

Falls Sie bereits alle Projekte im Menü Build -> Configuration Manager ausgewählt haben und der VS-Trick nicht neu gestartet werden kann, müssen Sie den Verweis der Datei (en) (möglicherweise DLL oder CS) in finden Ihr Projekt und löschen Sie diese Referenzen manuell. Diese Dateien/Referenzen sollten mit einem gelben Symbol angezeigt werden. Der Fehler führt Sie definitiv dazu, welches Lösungsprojekt Sie untersuchen sollten.

Der Grund für diesen Fehler ist, dass Sie die Datei (en) in Windows Explorer manuell gelöscht haben und VS die Referenz nicht aktualisiert hat und versucht, die nicht mehr vorhandene Datei zu finden!

1
Haseeb Sd

Das Löschen der Einträge aller Quelldateien, die nicht mehr in der Quellcodeverwaltung und im Dateisystem vorhanden sind, aus Ihrer .csproj-Datei hat bei mir funktioniert.


Detaillierter Ansatz:

Nun, meine folgende Antwort ist nicht nur eine Zusammenfassung aller Lösungen, sondern bietet noch mehr.

Abschnitt (1):

In allgemeinen Lösungen:

Ich hatte 4 Fehler dieser Art ("Metadatendatei konnte nicht gefunden werden") und 1 Fehler mit der Meldung "Quelldatei konnte nicht geöffnet werden (" Nicht angegebener Fehler ").

Ich habe versucht, den Fehler zu beseitigen, dass die Metadatendatei nicht gefunden wurde. Dafür habe ich viele Posts, Blogs usw. gelesen und festgestellt, dass diese Lösungen möglicherweise effektiv sind (hier zusammengefasst):

  1. Starten Sie VS neu und versuchen Sie es erneut.

  2. Gehen Sie zu 'Solution Explorer' . Klicken Sie mit der rechten Maustaste auf Lösung. Gehen Sie zu Eigenschaften . Wechseln Sie zu 'Configuration Manager' . Überprüfen Sie, ob die Kontrollkästchen unter 'Build' aktiviert sind oder nicht. Wenn einige oder alle deaktiviert sind, überprüfen Sie sie und versuchen Sie es erneut.

  3. Wenn die oben genannten Lösungen nicht funktionieren, befolgen Sie die in Schritt 2 beschriebene Reihenfolge. Deaktivieren Sie die Kontrollkästchen, und versuchen Sie erneut, die Erstellung fortzusetzen, auch wenn alle Kontrollkästchen aktiviert sind.

  4. Auftragserstellung und Projektabhängigkeiten:

    Gehen Sie zu 'Solution Explorer' . Klicken Sie mit der rechten Maustaste auf Lösung. Gehen Sie zu 'Projektabhängigkeiten ...' . Sie sehen 2 Registerkarten: 'Abhängigkeiten' und 'Erstellungsreihenfolge' . Diese Erstellungsreihenfolge ist diejenige, in der die Lösung erstellt wird. Überprüfen Sie die Projektabhängigkeiten und die Erstellungsreihenfolge, um zu überprüfen, ob ein Projekt (z. B. 'project1'), das von einem anderen abhängig ist (z. B. 'project2'), versucht, vor diesem Projekt (project2) zu erstellen. Dies könnte die Ursache für den Fehler sein.

  5. Überprüfen Sie den Pfad der fehlenden DLL:

    Überprüfen Sie den Pfad der fehlenden DLL. Wenn der Pfad ein Leerzeichen oder ein anderes ungültiges Pfadzeichen enthält, entfernen Sie es und versuchen Sie es erneut.

    Wenn dies die Ursache ist, passen Sie die Erstellungsreihenfolge an.


Abschnitt (2):

Mein besonderer Fall:

Ich habe alle oben genannten Schritte mit verschiedenen Permutationen und Kombinationen ausprobiert und VS einige Male neu gestartet. Aber es hat mir nicht geholfen.

Daher habe ich mich entschlossen, andere Fehler zu beseitigen, auf die ich gestoßen bin ("Quelldatei konnte nicht geöffnet werden (" Nicht spezifizierter Fehler ")").

Ich bin auf einen Blog gestoßen: http://www.anujvarma.com/tfs-errorsource-file-could-not-be-opened-unspecified-error/#comment-1539

Ich habe die in diesem Blog genannten Schritte ausprobiert und den Fehler 'Quelldatei konnte nicht geöffnet werden (' Nicht spezifizierter Fehler ')' und überraschenderweise auch ich beseitigt andere Fehler beseitigt ('Metadatendatei konnte nicht gefunden werden') .


Abschnitt (3):

Moral der Geschichte:

Probieren Sie alle in Abschnitt (1) oben genannten Lösungen (und alle anderen Lösungen) aus, um den Fehler zu beheben. Wenn nichts funktioniert, löschen Sie gemäß dem in Abschnitt (2) oben erwähnten Blog die Einträge aller Quelldateien, die nicht mehr in der Quellcodeverwaltung und im Dateisystem vorhanden sind aus Ihrer .csproj-Datei.


0
Vikram

Das Einzige, was ich behoben habe (da ich VS2010 nicht auf einem Administratorkonto ausführe), ist das manuelle Verschieben der Umgebungsvariablen VS120COMNTOOLS von Systemvariablen zu Benutzervariablen.

0
Ryan

EE - In meinem Fall war das Problem in dem Projekt, das das Entity-Framework hat, öffne das Diagramm, ziehe eine beliebige Tabelle 2 cm :) und speichere, der VS wird alle seine Links zur DB aktualisieren ... baue diese Projekte und baue die Lösung , Buildssss.

0
Bishoy Hanna

Wenn Sie der Projektmappe ein neues Projekt hinzufügen, überprüfen Sie, ob dieses in der Erstellungsliste enthalten ist (siehe Configuration Manager).

0
Richard S.

Ich hatte diesen Fehler, der durch eine meiner Projektabhängigkeiten verursacht wurde, in denen der Assemblyname im Projekt geändert wurde, der Verweis jedoch nicht aktualisiert wurde. Durch Aktualisieren der Referenz oder Umbenennen der Assembly wird dies behoben.

0
Darrell Cumming

Windows 7 Ultimate 32 Visual Studio 2008 SQL Server v2005

Ich habe den gleichen Fehler erhalten. Und ich habe beschlossen, die Projektreferenzen zu entfernen und wieder hinzuzufügen. Ich konnte sie nicht wieder hinzufügen, da der Datenbankverweis in jedem der Projekte, auf die verwiesen wird, leer war.

Nachdem ich den Datenbankverweis auf die richtige Einstellung zurückgesetzt hatte, konnte ich ohne weiteres Problem erstellen. Außerdem war dies mein erster Versuch, dieses Projekt neu zu erstellen, nachdem ich den Quellcode in VSS verzweigt hatte.

Viel Glück

0
EJ Ralston

Dasselbe ist passiert. Ich habe mehrere Lösungen, die auf dieselben Bibliotheksprojekte verweisen (.net 3.5). Ich bemerkte, dass dies passieren würde, wenn eine in Debug/Normal Config erstellt wurde und eine andere mit einer anderen Compiler-Direktive (SQLite/Local Mode). Lass einfach beide Projekte mit den gleichen Richtlinien bauen und es sollte dir gut gehen.

0
Ryan

Ich blieb beim Speichern hängen, als ich eine von Matlab generierte DLL-Datei einbinden wollte. Schließlich löste ich das Problem, indem ich eine .ctf-Datei kopierte, was vermutlich ein Zertifikat bedeutet, und ein .net-Modul, das für den ordnungsgemäßen Betrieb der .dll-Datei erforderlich ist, zusammen mit der .dll-Datei. Und das hat tatsächlich funktioniert! Also, mein Vorschlag ist zu überprüfen, ob die .dll irgendwelche anderen Dateien benötigt, um mit auszukommen.

0
Jingyu Lei