c# metadatendatei - Metadaten-Datei '.dll' konnte nicht gefunden werden




wurde cs0006 (25)

In meinem Fall habe ich mein installiertes Verzeichnis in falscher Weise.

Wenn Ihr Lösungspfad etwas wie "Mein Projekt% 2c Sehr beliebt% 2c Unit Testing% 2c Software und Hardware.zip" ist, kann die Metadaten-Datei nicht aufgelöst werden, vielleicht sollten wir einige ungültige Wörter wie% 2c verhindern.

Das Umbenennen des Pfades in einen normalen Namen hat mein Problem gelöst.

Ich arbeite an einem WPF, C # 3.0-Projekt, und ich bekomme diesen Fehler:

Error 1 Metadata file
'WORK=- \Tools\VersionManagementSystem\BusinessLogicLayer\bin\Debug
\BusinessLogicLayer.dll' could not be found C:\-=WORK=- \Tools
\VersionManagementSystem\VersionManagementSystem\CSC VersionManagementSystem

So referenziere ich meine usercontrols:

xmlns:vms="clr-namespace:VersionManagementSystem"
<vms:SignOffProjectListing Margin="5"/>

Es passiert nach jedem fehlgeschlagenen Build. Die einzige Möglichkeit, die Lösung zum Kompilieren zu bringen, besteht darin, alle meine Benutzersteuerelemente zu kommentieren und das Projekt neu zu erstellen, und dann entmarke ich die Benutzersteuerelemente und alles ist in Ordnung.

Ich habe Build-Aufträge und Abhängigkeiten Konfigurationen überprüft.

Wie Sie sehen können, scheint es den absoluten Pfad der DLL-Datei abgeschnitten zu haben ... Ich habe gelesen, dass es einen Fehler mit der Länge gibt. Ist das ein mögliches Problem?

Es ist sehr nervig und muss kommentieren, bauen und kommentieren, der Build wird extrem ermüdend.


In meinem Fall war das Problem, dass ich manuell eine Nicht-Kompilierungsdatei gelöscht hatte, die als "fehlend" gekennzeichnet war. Sobald ich den Verweis auf die jetzt fehlende Datei löschte und neu kompilierte - alles war gut.


Nun, meine Antwort ist nicht nur die Zusammenfassung aller Lösungen, aber sie bietet mehr als das.

Abschnitt 1):

In allgemeinen Lösungen:

Ich hatte vier Fehler dieser Art ("Metadaten-Datei konnte nicht gefunden werden") zusammen mit einem Fehler, der besagt, dass die Quelldatei nicht geöffnet werden konnte ("Nicht spezifizierter Fehler").

Ich habe versucht, den Fehler "Metadaten-Datei konnte nicht gefunden werden" zu entfernen. Dafür habe ich viele Posts, Blogs usw. gelesen und festgestellt, dass diese Lösungen effektiv sein können (zusammenfassen):

  1. Starten Sie Visual Studio neu und versuchen Sie es erneut.

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

  3. Wenn die oben genannten Lösungen nicht funktionieren, dann folge der in Schritt 2 erwähnten Reihenfolge, und selbst wenn alle Kontrollkästchen aktiviert sind, deaktiviere sie, überprüfe erneut und versuche erneut zu bauen.

  4. Erstellen Sie Auftrags- und Projektabhängigkeiten:

    Gehen Sie zu 'Lösungs-Explorer' . Klicken Sie mit der rechten Maustaste auf Lösung. Gehe zu 'Projektabhängigkeiten ...' . Sie sehen zwei Registerkarten: 'Abhängigkeiten' und 'Auftrag erstellen' . Diese Build-Reihenfolge 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. "projekt1"), das von anderen (z. B. "project2") abhängig ist, versucht, vor diesem Projekt zu erstellen (project2). 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 Leerzeichen oder andere ungültige Pfadzeichen enthält, entfernen Sie ihn und versuchen Sie es erneut.

    Wenn dies der Grund ist, passen Sie die Build-Reihenfolge an.

Sektion 2):

Mein besonderer Fall:

Ich habe alle oben genannten Schritte mit verschiedenen Permutationen und Kombinationen mit dem Neustart von Visual Studio ein paar Mal versucht. Aber es hat mir nicht geholfen.

Also entschied ich mich, andere Fehler loszuwerden, die mir auffielen ('Quelldatei konnte nicht geöffnet werden (' Nicht spezifizierter Fehler ')').

Ich bin auf einen Blogeintrag gestoßen: TFS Error-Source File konnte nicht geöffnet werden ('Unspezifizierter Fehler')

Ich habe die in diesem Blogpost erwähnten Schritte ausprobiert und den Fehler 'Quelldatei konnte nicht geöffnet werden (' Unbekannter Fehler ') los und überraschenderweise bin ich andere Fehler losgeworden (' Metadaten-Datei konnte nicht gefunden werden ') Gut.

Sektion 3):

Moral der Geschichte:

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


Ich hatte diesen Fehler, als ich versuchte, eine Webanwendung zu veröffentlichen. Es stellte sich heraus, dass eine der Klasseneigenschaften eingepackt wurde

#if DEBUG
    public int SomeProperty { get; set; }
#endif

aber die Nutzung der Immobilie war nicht. Die Veröffentlichung wurde offensichtlich in der Release-Konfiguration ohne das DEBUG Symbol durchgeführt.


Das Entfernen des packages Ordners mit NuGet im Lösungsordner funktionierte für mich. Nach dem Wiederaufbau funktionierte alles wieder. Überprüfen Sie die References in der Lösung und suchen Sie nach Referenzen mit einem gelben Dreieck.

Beispielbild:


Ich verwende Visual Studio 2013.

Es scheint, dass die Buildabhängigkeiten falsch waren. Durch das Löschen der * .suo-Dateien wurden die Probleme behoben, die ich hatte.


Meine Instanz des Problems wurde von einem gemeinsamen Projekt verursacht, das einen doppelten Klassennamen (unter einem anderen Dateinamen) enthielt. Es ist seltsam, dass Visual Studio dies nicht erkennen konnte und stattdessen den Build-Prozess in die Luft jagte.


Für mich haben folgende Schritte funktioniert:

  • Suchen Sie das Projekt, das nicht erstellt wird
  • Entfernen Sie Referenzen zu Projekten innerhalb der Lösung.

In meinem Fall wurde das Problem durch einen einfachen Buildfehler verursacht,

Fehler CS0067: Das Ereignis 'XYZ' wird nie verwendet

das aus irgendeinem Grund nicht in dem Fehlerfenster angezeigt wurde.

Aus diesem Grund schien das Buildsystem von Visual Studio den Fehler zu übersehen und versuchte, abhängige Projekte zu erstellen, was wiederum mit der lästigen Metadaten-Nachricht fehlschlug.

Die Empfehlung ist - so dumm es klingen mag:

Schauen Sie sich zuerst Ihr Ausgabefenster an !

Es dauerte eine halbe Stunde, bis diese Idee mich traf ...


Das Schließen und Wiedereröffnen von Visual Studio 2013 funktionierte für mich!


Ich habe dieses Problem auch gelöst. Zunächst müssen Sie Ihr DLL-Projekt manuell erstellen, indem Sie mit der rechten Maustaste auf Build klicken. Dann wird es funktionieren.


In meinem persönlichen Fall hatte ich es versäumt, einen Verweis auf eines der Projekte in der Lösung hinzuzufügen, und das war es, was den Fehler für mich in die Höhe trieb.


Ich hatte den gleichen Fehler. Es verbirgt sich wie im folgenden Pfad. Der Pfad, den ich für die DLL-Datei angegeben habe, ist wie "D: \ Assemblies Folder \ Assembly1.dll".

Aber der ursprüngliche Pfad, auf den die Assembly verwiesen hat, war "D: \ Assemblies% 20Folder \ Assembly1.dll".

Aufgrund dieser Änderung des Pfadnamens konnte die Assembly nicht von ihrem ursprünglichen Pfad abgerufen werden und verursacht daher den Fehler "Metadaten nicht gefunden".

Die Lösung befindet sich in Stapelüberlauf Frage Wie ersetze ich alle Leerzeichen mit% 20 in C #? .


Ich habe mir auch bei diesem Problem die Haare ausgezogen, aber nachdem ich die vorherigen Antworten ausprobiert hatte, war das einzige, was mir funktionierte, jedes Projekt in meiner Lösung 1 zu 1 zu öffnen und sie einzeln zu bauen.

Dann habe ich Visual Studio 2013 geschlossen, meine Lösung wieder geöffnet und es kompiliert.

Es ist seltsam, denn wenn ich jedes Projekt in meinem Projektmappen-Explorer angeklickt habe und versucht habe, sie so zu erstellen, sind alle fehlgeschlagen. Ich musste sie alleine in ihren eigenen Lösungen öffnen.


Die vorgeschlagene Antwort hat nicht für mich funktioniert. Der Fehler ist ein Köder für ein anderes Problem.

Ich fand heraus, dass ich auf eine etwas andere Version von .NET abzielte, und dies wurde vom Compiler als Warnung gekennzeichnet, aber es führte zum Fehlschlagen des Aufbaus. Dies sollte als Fehler und nicht als Warnung gekennzeichnet sein.


Ich habe dieses Problem in Visual Studio 2012 in einer Lösung, die viele Projekte hatte. Wenn Sie jedes Projekt in der Projektmappe manuell in derselben Reihenfolge wie die Projekt-Build-Reihenfolge (Rechtsklick und Neuerstellung im Projektmappen-Explorer) erstellen, wurde es für mich repariert.

Irgendwann kam ich zu einem, der mir einen Kompilierfehler gab. Ich habe den Fehler behoben und die Lösung würde danach korrekt erstellt.


Ich habe den gleichen Fehler "Metadatendatei '.dll' konnte nicht gefunden werden", und ich habe mehrere oben beschriebene Dinge versucht, aber der Grund für den Fehler war, dass ich Verweis DLL-Datei von Drittanbietern, die auf eine höhere .NET-Version ausgerichtet war dass mein Projekt auf .NET-Version abzielt. Die Lösung bestand also darin, den Zielrahmen meines Projekts zu ändern.


Ich fügte meiner Lösung ein neues Projekt hinzu und begann damit.

Der Grund? Das Projekt, das ich einbrachte, zielte auf ein anderes .NET-Framework ab (4.6 und meine anderen beiden waren 4.5.2).



Dies kann immer noch in neueren Versionen von Visual Studio passieren (ich hatte es gerade in Visual Studio 2013 passiert):

Eine andere Sache, die versucht wird, ist, Visual Studio zu schließen und die .suo Datei zu löschen, die sich neben der .sln Datei befindet. (Es wird beim nächsten Save all erneut generiert (oder Visual Studio beenden)).

Ich hatte dieses Problem, wenn ich der Lösung auf einem anderen Rechner neue Projekte hinzufügte und dann die Revisionen .suo , aber die .suo Datei konnte auch in anderen Fällen beschädigt werden und zu sehr merkwürdigem Visual Studio-Verhalten führen von den Dingen, die ich immer versuche.

Beachten Sie, dass das Löschen der .suo Datei das Startprojekt (die Startprojekte) der Lösung zurücksetzt.

Mehr über die. .suo Datei ist here .


In meinem Fall wurden diese Fehler durch eine Beschädigung des NuGet-Paketmanagers verursacht. Teilprojekte der Lösung wurden nicht erstellt, aber aufgrund der Metadatenfehler wurden keine Fehler angezeigt.

Sobald alle NuGet-Pakete korrigiert wurden, konnte das Projekt wieder ordnungsgemäß erstellt werden.


Wenn in Ihrem Lösungsnamen ein Leerzeichen enthalten ist, wird dadurch auch das Problem verursacht. Entfernen des Speicherplatzes von Ihrem Lösungsnamen, so dass der Pfad% 20 nicht enthält, löst dies.


Für mich war es versucht, eine DLL in einem Pfad zu finden, der das Projekt enthielt, aber wir hatten es in ein neues Verzeichnis verschoben. Die Lösung hatte den richtigen Pfad zum Projekt, aber Visual Studio suchte irgendwie am alten Speicherort weiter.

Lösung: Benennen Sie jedes Problemprojekt um - fügen Sie einfach ein Zeichen oder was auch immer hinzu - benennen Sie es dann wieder in seinen ursprünglichen Namen um.

Das muss einige globale Cache einiger Art in Visual Studio zurücksetzen, da dies sowohl dieses Problem als auch mehrere ähnliche Probleme löscht, während Dinge wie Clean nicht tun.


Für mich ist es passiert, als ich ein neues Projekt zu einer Lösung hinzugefügt habe.

Visual Studio wählt automatisch .NET Framework 4.5.

Ich habe die Version 4.5.2 wie die anderen Bibliotheken geändert, und es hat funktioniert.


DateTime dt1 = DateTime.Now.Date;
DateTime dt2 = Convert.ToDateTime(TextBox4.Text.Trim()).Date;
if (dt1 >= dt2)
{
    MessageBox.Show("Valid Date");
}
else
{
    MessageBox.Show("Invalid Date... Please Give Correct Date....");
}




c# .net wpf visual-studio-2008 c#-3.0