Die Metadatendatei '.dll' wurde nicht gefunden

723

Ich arbeite an einem WPF, C # 3.0-Projekt und erhalte folgende Fehlermeldung:

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

So verweise ich auf meine Benutzersteuerungen:

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 erhalten, besteht darin, alle meine Benutzersteuerelemente zu kommentieren und das Projekt neu zu erstellen. Dann kommentiere ich die Benutzersteuerelemente aus und alles ist in Ordnung.

Ich habe Konfigurationen für Build-Aufträge und Abhängigkeiten ü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 lästig.

Oliver
quelle
5
Ich hatte ein ähnliches Problem (es wurde derselbe Fehler angezeigt, der im Titel angegeben ist) und habe es behoben, indem ich das Projekt bereinigt und neu erstellt habe. Um andere Projekte richtig zu referenzieren, habe ich keine Ahnung ..
Phoad
Hat diese Frage eine Antwort, die als akzeptiert gelten würde? Ich finde die von @Matt_Bro ziemlich gut.
Demongolem
4
Ich habe Matts Antwort markiert, da sie für die meisten Menschen funktioniert zu haben scheint, aber dies hat mein ursprüngliches Problem nicht gelöst. Ich denke immer noch, dass es mit dem maximalen Pfadlimit von Windows zusammenhängt. Siehe meine Antwort unten.
Oliver
Ich habe alle obigen Antworten ausprobiert und leider hat in meinem Fall nichts funktioniert. Ich bin auf 2 Fehler gestoßen 1. Fehlende DLL-Datei 2. Methode, die bereits an einer anderen Stelle mit denselben Parametern definiert wurde Ich habe den zweiten Fehler zuerst behoben, indem ich die Funktion entfernt habe, die an einer anderen Stelle dupliziert wurde. Mein erster Fehler - das heißt, die fehlende DLL-Datei wurde von selbst behoben. Ich möchte sagen, wenn Sie mehr als einen Fehler zusammen mit .dll fehlender Dateifehler haben! Bitte versuchen Sie zuerst, die anderen Fehler zu beheben. Möglicherweise löst sich ein DLL-Fehler von selbst!
Ein Benutzer

Antworten:

907

Ich hatte gerade das gleiche Problem. Visual Studio erstellt nicht das Projekt, auf das verwiesen wird.

Schriftliche Anweisungen:

  1. Klicken Sie mit der rechten Maustaste auf die Lösung und klicken Sie auf Eigenschaften.
  2. Klicken Sie links auf Konfiguration.
  3. Stellen Sie sicher, dass das Kontrollkästchen unter "Erstellen" für das Projekt, das nicht gefunden werden kann, aktiviert ist. Wenn es bereits aktiviert ist, deaktivieren Sie es, klicken Sie auf Übernehmen und aktivieren Sie die Kontrollkästchen erneut.
  4. (Optional) Sie mussten dies sowohl für den Release- als auch für den Debug-Modus für die Lösungseigenschaften tun.

Anleitung zur Bildschirmaufnahme:

  • Man sagt, ein Bild sagt mehr als tausend Worte. Klicken Sie auf das GIF, um es zu vergrößern. Hoffentlich ist es einfach zu folgen:

Gif Anweisungen

Matt_Bro
quelle
177
Und in meinem Fall wurde das Problem behoben, obwohl das Kontrollkästchen aktiviert war, indem das Kontrollkästchen deaktiviert und erneut aktiviert wurde.
ngm
13
Dies hat mein Problem behoben - ich musste es sowohl für den Release- als auch für den Debug-Modus für die Lösungseigenschaften tun. Vielen Dank!
theJerm
133
Einfaches Deaktivieren / Überprüfen hat das Problem nicht gelöst, daher musste ich die nächsten Schritte ausführen: - Saubere Lösung - Deaktivieren Sie alle Build-Kontrollkästchen - Starten Sie VS neu - Aktivieren Sie alle Build-Kontrollkästchen - Build-Lösung
Frankie
27
Die andere Sache, die zu tun ist, ist, jede der Projektabhängigkeiten zu überprüfen, aus irgendeinem Grund wurde dies nicht automatisch eingestellt. Lösungseigenschaften -> Allgemeine Eigenschaften -> Projektabhängigkeiten.
Anicho
9
Deaktivieren Sie -> Check hat bei mir kurz funktioniert, dann ist das Problem zurückgekehrt. Dann habe ich Visual Studio neu gestartet und das Problem ist behoben.
DeveloperDan
224

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

Sie können auch versuchen, Visual Studio zu schließen und die .suoDatei neben der .slnDatei zu löschen . (Es wird beim nächsten Mal Save all(oder beim Beenden von Visual Studio) neu generiert .)

Ich hatte dieses Problem beim Hinzufügen neuer Projekte zur Lösung auf einem anderen Computer und beim anschließenden Abrufen der Revisionen, aber die .suoDatei kann auch in anderen Fällen beschädigt werden und zu einem sehr seltsamen Verhalten von Visual Studio führen. Daher ist das Löschen eine der folgenden Dinge, die ich immer versuche.

Beachten Sie, dass durch das Löschen der .suoDatei die Startprojekte der Lösung zurückgesetzt werden.

Mehr zur .suoDatei finden Sie hier .

Corvuscorax
quelle
24
Dies hat das Problem für mich behoben. Erwähnenswert ist auch, dass .suoDateien versteckt sind. Sie müssen also Ihren Explorer so einrichten, dass versteckte Dateien angezeigt werden.
George Howarth
6
Ich arbeite mit einem Xamarin-Projekt und die .suo-Datei befindet sich im Ordner .vs /. Ich habe versucht, es zu löschen und es hat mein Problem nicht gelöst
VS2013 - Ich musste meinen TFS-Arbeitsbereich an einen anderen Speicherort verschieben. Nachdem ich dies abgeschlossen hatte, bekam ich diesen Fehler. Das Löschen der Sou-Datei hat bei mir funktioniert.
Vin
40
Das hat auch bei mir funktioniert. In Visual Studio 2015 ist die .suoDatei jedoch sowohl ausgeblendet als auch befindet sich in einem ausgeblendeten .vsVerzeichnis neben dem .sln. Beispiel: Wenn die Lösungsdatei c:\foo\mysolution.slndann gesucht wirdc:\foo\mysolution\.vs\mysolution\v14\.suo
Wyck
6
Für VS2017 habe ich der Einfachheit halber .vsstattdessen nur den versteckten Ordner gelöscht, wodurch auch die .suoDatei gelöscht wurde . Ich habe die Lösung erneut geöffnet, einen weiteren Fehler behoben und das Problem behoben.
user3613932
183

Die vorgeschlagene Antwort hat bei mir nicht 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 dazu, dass das Erstellen fehlschlug. Dies sollte als Fehler und nicht als Warnung gekennzeichnet sein.

Jordan Koskei
quelle
9
Ich konnte das Problem beheben, indem ich das Framework für das Projekt an die in der Warnmeldung angegebene höhere Version anpasste, indem ich mit der rechten Maustaste auf Projekt> Eigenschaften> Anwendung> Ziel-Framework klickte.
Stark
1
Das gleiche gilt für mich mit vs2015.
bruno.bologna
ja. genau das ist mir auch passiert. VS 2015
KevinDeus
Vielen Dank! Dies löste mein Problem. VS 2015 nach dem Upgrade des Projekts auf .Net Framework 4.7.1.
DHoover
Wow, das hat es für mich behoben. Das neue Projekt zielte auf eine andere .net-Version ab. Ich kann nicht glauben, dass es auch in vs2017 keinen Check dafür gibt.
Douglas Gaskell
104

Meine Antwort ist nicht nur die Zusammenfassung aller Lösungen, sondern bietet auch mehr.

Abschnitt 1):

Allgemeine Lösungen:

Ich hatte vier Fehler dieser Art ('Metadatendatei konnte nicht gefunden werden') sowie einen Fehler mit der Meldung 'Quelldatei konnte nicht geöffnet werden (' Nicht angegebener Fehler ')'.

Ich habe versucht, den Fehler "Metadatendatei konnte nicht gefunden werden" zu entfernen. Dafür habe ich viele Beiträge, Blogs usw. gelesen und festgestellt, dass diese Lösungen möglicherweise effektiv sind (hier zusammengefasst):

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

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

  3. Wenn die oben genannten Lösungen nicht funktionieren, befolgen Sie die in Schritt 2 oben angegebene Reihenfolge. Deaktivieren Sie sie, aktivieren Sie sie erneut und versuchen Sie erneut, sie zu erstellen, auch wenn alle Kontrollkästchen aktiviert sind.

  4. Build Order- und Projektabhängigkeiten:

    Gehen Sie zu 'Projektmappen-Explorer' . Klicken Sie mit der rechten Maustaste auf Lösung. Gehen Sie zu 'Projektabhängigkeiten ...' . Sie sehen zwei Registerkarten: 'Abhängigkeiten' und "Build-Reihenfolge" . 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. 'Projekt1'), das von einem anderen abhängig ist (z. B. 'Projekt2'), versucht, vor diesem zu erstellen (Projekt2). 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 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.


Sektion 2):

Mein besonderer Fall:

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

Also habe ich beschlossen, andere Fehler zu beseitigen, auf die ich gestoßen bin ('Quelldatei konnte nicht geöffnet werden (' Nicht spezifizierter Fehler ')').

Ich bin auf einen Blog-Beitrag gestoßen : TFS-Fehler - Quelldatei konnte nicht geöffnet werden ('Nicht angegebener Fehler')

Ich habe die in diesem Blogbeitrag erwähnten Schritte ausprobiert und den Fehler 'Quelldatei konnte nicht geöffnet werden (' Nicht angegebener Fehler ')' entfernt. Überraschenderweise habe ich andere Fehler behoben ('Metadatendatei konnte nicht gefunden werden'). als Gut.


Sektion 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 gemäß dem in Abschnitt (2) oben genannten Blog nichts funktioniert, löschen Sie die Einträge aller Quelldateien, die nicht mehr in der Quellcodeverwaltung und im Dateisystem vorhanden sind, aus Ihrer .csproj-Datei .

Vikram
quelle
4
Mein Problem war Build Order / Project Dependencies. Das Entfernen und Hinzufügen von Verweisen aus anderen Projekten wird dies korrigieren (glaube ich), aber Sie können es auch selbst tun.
Nacht - Monica am
4
Ich habe mich diesem Problem gestellt, indem ich das .NET v4.5Projekt auf herabgestuft habe .NET v.4.
Guneysos
1
Das Entfernen von "%" aus dem referenzierten DLL-Pfad hat mir geholfen
Boogier
1
Die Lösung in Abschnitt 2 hat bei mir funktioniert! Ich hatte einen anderen Fehler und als ich feststellte, dass die anderen auf magische Weise verschwunden waren.
Martin Johansson
1
Ich hatte das gleiche Problem wie Boogier. Hatte% 20 in meinem Ordnernamen anstelle eines Leerzeichens und die DLL suchte nach einem Leerzeichen. Verbrachte so viel Zeit damit, alle anderen Korrekturen auszuprobieren, als die eigentliche die einfachste war.
Lenny K
38

In meinem Fall wurde dies durch eine Nichtübereinstimmung der .NET Framework-Version verursacht.

Ein Projekt war 3.5 und das andere Referenzprojekt 4.6.1.

Eric Schneider
quelle
2
Dies geschieht auch zwischen 4.5.2 Vs. 4.6
AzzamAziz
2
In der Tat hatte ich eine von 4.6.1 und der Rest war 4.5.2, danke!
Mason
7
Ja, dies scheint immer dann zu passieren, wenn eine Framework-Version anders ist. Großer Fehler Microsoft!
Eric Schneider
Jep! Ich habe versucht, eine .Net 4.7.1 .dll zu verwenden, als mein Projekt .Net 4.6.1 war. Die Warnung wurde von anderen Elementen ausgeblendet, aber es gab keinen Fehler. Mein Fehler war ein roter Hering
Esaith
29

Das Schließen und Wiedereröffnen von Visual Studio 2013 hat bei mir funktioniert!

Angebote
quelle
Ich habe dieses Problem nach dem Zurücksetzen von Git-Änderungen an Projektdateien. VS2015 neu gestartet und das Problem behoben
Ludovic C
Dies sollte als akzeptierte Antwort markiert werden. Das Aktivieren / Deaktivieren von Kontrollkästchen dauert länger.
Alex
1
Ich habe immer noch dieses Problem mit VS2019 und das hat es für mich behoben, danke
pcdev
20

Nun, nichts in den vorherigen Antworten hat für mich funktioniert, also habe ich darüber nachgedacht, warum ich klicke und hoffe, wann wir als Entwickler wirklich versuchen sollten, zu verstehen, was hier vor sich geht.

Mir schien klar, dass diese falsche Referenz für Metadatendateien irgendwo gespeichert werden muss.

Eine schnelle Suche in der .csproj-Datei zeigte die Schuldlinien. Ich hatte einen Abschnitt namens <itemGroup>, der an dem alten falschen Dateipfad zu hängen schien.

<ItemGroup>
    <ProjectReference Include="..\..\..\MySiteOld\MySite.Entities\MySite.Entities.csproj">
        <Project>{5b0a347e-cd9a-4746-a3b6-99d6d010a6c2}</Project>
        <Name>Beeyp.Entities</Name>
    </ProjectReference>
...

Also wirklich eine einfache Lösung:

  1. Sichern Sie Ihre .csproj-Datei.
  2. Suchen Sie die falschen Pfade in der .csproj-Datei und benennen Sie sie entsprechend um.

Bitte stellen Sie sicher, dass Sie Ihre alte .csproj sichern, bevor Sie fummeln .

Alex Stephens
quelle
38
Bitte stellen Sie sicher, dass Sie die Versionskontrolle verwenden, bevor Sie etwas tun
svick
14

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

BlueRaja - Danny Pflughoeft
quelle
14
Dieser Fix funktioniert zwar, behebt das Problem jedoch nicht und kann zu weiteren zugrunde liegenden Problemen führen. Wenn Sie mit Code in einem Repository arbeiten, ist es zunächst einmal eine schlechte Form, von einem neuen Entwickler zu verlangen, dass er durch die Rahmen springt, um den Code an einen Punkt zu bringen, an dem er erstellt wird. Zweitens müssten Sie das Projekt jedes Mal manuell neu erstellen, um Änderungen im referenzierten Projekt zu sehen. In meiner Antwort finden Sie eine robustere Lösung für das Problem.
Matt_Bro
In meinem Fall wird das Projekt nicht einmal einzeln erstellt, es gibt mir den gleichen Fehler. Angenommen, mein Projektname ist "proj1", wenn ich ihn erstelle (manuell, wie Sie sagten), gibt er mir Metadata file ...proj1.dll could not be found!
A-Sharabiani
14

In meinem Fall habe ich mein Verzeichnis falsch installiert.

Wenn Ihr Lösungspfad etwa "Mein Projekt% 2c Sehr beliebt% 2c Unit Testing% 2c Software und Hardware.zip" lautet, kann die Metadatendatei nicht aufgelöst werden. Vielleicht sollten wir einige ungültige Wörter wie% 2c verhindern.

Das Umbenennen des Pfads in einen normalen Namen hat mein Problem behoben.

Masphei
quelle
1
Könnten Sie Ihre Antwort näher erläutern und etwas mehr Beschreibung der von Ihnen bereitgestellten Lösung hinzufügen?
Abarisone
Mein Git-Klon hat% zu meinem Ordnerpfad hinzugefügt, wodurch das Problem behoben wurde.
Erik Bergstedt
@abarisone Ich habe die Zeichenfolge "% 2c" aus dem Pfad entfernt, dann hat es funktioniert
masphei
1
Das war auch mein Problem, als ich das Projekt geklont habe, wurde es mit "% 20" anstelle eines einfachen Leerzeichens benannt. Danke @abarisone, dein Ansatz hat mein Problem gelöst.
MA Cordeiro
Als ich mein Projekt von TFS geklont habe, wurde aus irgendeinem Grund auch% 20 hinzugefügt. Das Löschen hat das Problem auch für mich behoben.
Selthien
13

Ich habe den gleichen Fehler "Metadatendatei '.dll' konnte nicht gefunden werden" erhalten und verschiedene oben beschriebene Versuche unternommen. Der Grund für den Fehler war jedoch, dass ich auf DLL-Dateien von Drittanbietern verwies, die auf eine höhere .NET-Version abzielten dass mein Projekt Ziel .NET-Version. Die Lösung bestand also darin, das Ziel-Framework meines Projekts zu ändern.

Mladen Nikolov
quelle
Nun, ich wollte das Gleiche beantworten. In meinem Fall habe ich ein neues Projekt für .Net 4.5.x hinzugefügt. Es begann, als ich aus diesem Projekt einen Verweis auf ein Projekt hinzufügte, das .Net 4.6 verwendete.
Juan
12

Visual Studio 2019 das hat bei mir funktioniert:

  1. Schließen Sie Visual Studio
  2. Löschen Sie den versteckten .vsOrdner
  3. Öffnen Sie Visual Studio erneut und erstellen Sie die Lösung neu.
Andrew
quelle
Vielen Dank, das hat auch bei mir funktioniert, nachdem ich einen weiteren fehlgeschlagenen Build gemacht habe.
Iamsodarncool
Danke, das hat es für mich getan.
iaacp
10

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

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

Dies muss einen globalen Cache in Visual Studio zurücksetzen, da dies sowohl dieses als auch einige ähnliche Probleme behebt, während Dinge wie "Clean" dies nicht tun.

Chris Moschini
quelle
10

Ich habe meiner Lösung ein neues Projekt hinzugefügt und damit begonnen.

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

Todd Vance
quelle
1
Ich weiß nicht warum, aber ich habe meine Projekte ein Jahr lang so durchgeführt. Mein Unterprojekt war 4.6.1 und das Hauptprojekt war 4.5.2. es hat problemlos funktioniert. Plötzlich erhalte ich diesen Fehler, aber ich möchte das Unterprojekt nicht herabstufen, da es eine Funktion hat, die in 4.6.1 vorhanden ist. Ich glaube nicht, dass dies das Problem ist. Microsoft erklärt, dass es noch funktionieren sollte
Batmaci
TLDR: Überprüfen Sie die Kompilierungswarnungen. Das ist mir passiert, aber mit einer Wendung. projs waren am 4.5.2. Neue Projekte bei 4.6 hinzugefügt. Installierte Nuget-Pakete in 4.6-Projekten. 4.6 Projekte auf 4.5.2 herabgestuft. Nugets erwarteten 4.6. Downgrades von Nugets gelöst.
w00ngy
9

Für mich ist es passiert, als ich ein neues Projekt in eine Lösung aufgenommen habe.

Visual Studio wählt automatisch .NET Framework 4.5 aus.

Ich habe wie die anderen Bibliotheken auf Version .NET 4.5.2 umgestellt und es hat funktioniert.

Andre Mesquita
quelle
8

Bei mir haben folgende Schritte funktioniert:

  • Suchen Sie das Projekt, das nicht erstellt wird
  • Entfernen / Hinzufügen von Verweisen auf Projekte in der Lösung.
Baglay Vyacheslav
quelle
Klicken Sie im Lösungs-Explorer mit der rechten Maustaste auf den Verweis "Ordner", "Nicht verwendete Verweise entfernen". Ich habe dies bei allen meinen Projekten in dieser Lösung getan, es hat den Trick getan
Mathieu VIALES
8

Ich habe mir auch mit diesem Problem die Haare ausgezogen, aber nachdem ich die vorherigen Antworten ausprobiert hatte, war das einzige, was für mich funktioniert hat, jedes Projekt in meiner Lösung 1 nach 1 zu öffnen und sie einzeln zu erstellen.

Dann habe ich Visual Studio 2013 geschlossen, meine Lösung erneut geöffnet und sie wurde gut kompiliert.

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

Prospektor
quelle
1
Ugh, das hier. So viele Dinge Microsoft erfordert einen Neustart, um wieder zu funktionieren.
Yatrix
8

Es sieht nach solchen Fehlern aus, die damit zusammenhängen, dass Visual Studio keine korrekten Informationen zu einem Fehler liefert. Der Entwickler versteht nicht einmal den Grund für den fehlgeschlagenen Build. Es kann ein Syntaxfehler oder etwas anderes sein. Um solche Probleme zu lösen, sollten Sie häufig die Wurzel des Problems finden (siehe beispielsweise das Build-Protokoll).

In meinem Fall war das Problem tatsächlich, dass das Error ListFenster keine Fehler zeigte. Aber es gab wirklich Syntaxfehler; Ich habe diese Fehler im OutputFenster gefunden und nachdem ich sie behoben hatte, wurde das Problem behoben.

burzhuy
quelle
Ich habe dieses Problem auch erlebt. Es gab keinen Fehler in der Fehlerliste, aber die fehlgeschlagenen Build-Ergebnisse in DevOps zeigten den Fehler
amartin
7

Meine Instanz des Problems wurde durch ein allgemeines Projekt verursacht, das einen doppelten Klassennamen enthielt (unter einem anderen Dateinamen). Es ist seltsam, dass Visual Studio dies nicht erkennen konnte und stattdessen nur den Erstellungsprozess in die Luft jagte.

Eric
quelle
Ist das ein Kommentar, eine Antwort oder eine neue Frage? Beachten Sie auch, dass OP von 2009 ist
gmo
8
Es ist eine zusätzliche Lösung für das gleiche Problem. Ich weiß, dass das OP alt ist, aber basierend auf den letzten Beiträgen finden die Leute immer noch andere Ursachen. Ich habe nur versucht, dem nächsten Mann etwas Frust zu ersparen, da auch keine der anderen Lösungen für mich funktioniert hat.
Eric
4
Ich kritisiere nicht die Antwort von irgendjemandem, sondern biete nur eine alternative Lösung für dasselbe Symptom an.
Eric
7

Ich habe dieses Problem in Visual Studio 2012 in einer Lösung mit vielen Projekten erhalten. Das manuelle Neuerstellen jedes Projekts in der Lösung in derselben Reihenfolge wie die Projekterstellungsreihenfolge (Rechtsklick und Neuerstellung im Projektmappen-Explorer) hat es für mich behoben.

Schließlich kam ich zu einem, der mir einen Kompilierungsfehler gab. Ich habe den Fehler behoben und die Lösung wurde danach korrekt erstellt.

dan-gph
quelle
In meinem Fall wurde der Fehler ausgeblendet, bis ich Visual Studio 2015 im Adminstrator-Modus öffnete. Erst dann wurde der Kompilierungsfehler angezeigt. Nachdem ich das behoben hatte, konnte ich fortfahren.
SL Barth - Stellen Sie Monica
6

In meinem Fall bestand das Problem darin, dass ich eine Nicht-Kompilierungsdatei, die als "fehlend" markiert war, manuell gelöscht hatte. Nachdem ich den Verweis auf die jetzt fehlende Datei gelöscht und neu kompiliert hatte, war alles in Ordnung.

David Ford
quelle
6

Wenn Ihr Lösungsname ein Leerzeichen enthält, verursacht dies ebenfalls das Problem. Wenn Sie den Speicherplatz aus Ihrem Lösungsnamen entfernen, damit der Pfad nicht% 20 enthält, wird dies behoben.

Ajaco
quelle
du bist ein Genie!!
Itamar
Ich habe Ihren Kommentar nicht gesehen, bevor ich ihn herausgefunden habe. Aber das war mein Problem.
L Johnson
6

In meinem Fall wurde das Problem durch einen einfachen Erstellungsfehler verursacht.

Fehler CS0067: Das Ereignis 'XYZ' wird niemals verwendet

das wurde aus irgendeinem Grund nicht im Fehlerfenster angezeigt.

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

Die Empfehlung ist - so dumm es auch klingen mag -:

Schauen Sie sich zuerst Ihr Ausgabefenster an !

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

Heinz Kessler
quelle
Ich denke, jeder sollte auf diese Antwort schauen. Überprüfen Sie im Build-Ausgabefenster, ob dort Fehler oder Warnungen vorhanden sind, und beheben Sie diese. Problem gelöst. Danke Heinz Kessler für deine Antwort.
Captain America
5

Ich hatte auch den gleichen Fehler. Es versteckt sich wie im folgenden Pfad. Der Pfad, auf den ich für die DLL-Datei verwiesen habe, lautet "D: \ Assemblies Folder \ Assembly1.dll".

Der ursprüngliche Pfad, auf den sich die Assembly bezog, war "D: \ Assemblies% 20Folder \ Assembly1.dll".

Aufgrund dieser Variation des Pfadnamens konnte die Assembly nicht aus ihrem ursprünglichen Pfad abgerufen werden und löst daher den Fehler "Metadaten nicht gefunden" aus.

Die Lösung finden Sie in der Frage zum Stapelüberlauf. Wie ersetze ich alle Leerzeichen in C # durch% 20? .

Arun Prasad
quelle
5

Ich hatte das gleiche Problem. In meinem Fall habe ich auf ein Klassenbibliotheksprojekt mit einer höheren .NET-Version als mein Projekt verwiesen, und VS konnte das Projekt nicht erstellen und hat denselben Fehler ausgelöst, den Sie veröffentlicht haben.

Ich habe einfach die .Net-Version meines Klassenbibliotheksprojekts (die, die den Build beschädigt hat) identisch mit der .Net-Version des referenzierten Projekts festgelegt und das Problem gelöst.

Code_Worm
quelle
1
Diese!!! Während die obige Antwort gut war, war dies etwas, das ich einfach völlig übersehen habe. Vielen Dank, mein Herr.
Rhys Johns
@ RhysJohns glückliche Codierung :)))
Code_Worm
4

Ich möchte nur auf das Offensichtliche hinweisen: Wenn Sie das Kontrollkästchen "Ausgabefenster beim Start des Builds anzeigen" nicht aktiviert haben, stellen Sie sicher, dass Sie feststellen, ob Ihr Build fehlschlägt (kleiner Fehler "Build fehlgeschlagen" unten links).

Knochen
quelle
Ich hatte kürzlich etwas Ähnliches - aus heiterem Himmel Hunderte von cs0006-Fehlern im Fehlerprotokoll, aber sonst nichts (und ich habe es mit einem sehr feinen Kamm durchkämmt). Schließlich (!) Dachte ich daran, das Ausgabefenster zu betrachten, und es wurde ein Compilerfehler gemeldet, und sicher genug im Code hatte der Fehler ein rotes Kringel darunter. Ich habe keine Ahnung, warum der Fehler nicht im Fehlerfenster gemeldet wurde. VS2017 Enterprise.
Hochmütiger
4

Ich hatte diesen Fehler, als ich versuchte, eine Webanwendung zu veröffentlichen. Es stellte sich heraus, dass eine der Eigenschaften einer Klasse eingeschlossen war

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

aber die Eigentumsnutzung war nicht. Die Veröffentlichung erfolgte DEBUGoffensichtlich in der Release-Konfiguration ohne das Symbol.

Dmitri Trofimov
quelle
4

Aufgrund der Fehlermeldung glaube ich nicht, dass der Dateipfad abgeschnitten wird. Es scheint einfach falsch zu sein. Wenn ich die Nachricht richtig lese, scheint sie nach der DLL-Datei zu suchen unter ...

WORK = - \ Tools \ VersionManagementSystem \ BusinessLogicLayer \ bin \ Debug \ BusinessLogicLayer.dll

Dies ist kein gültiger Pfad. Ist es möglich, dass Sie im Erstellungsprozess eine Makrodefinition auf einen ungültigen Wert gesetzt haben?

JaredPar
quelle
Ich weiß nicht wie, da ich nichts geändert habe und keine benutzerdefinierten Build-Ereignisse oder Konfigurationen habe
Oliver
4

Ich hatte dieses Problem, weil .nuget\NuGet.exees nicht in meinem Repository enthalten war. Obwohl ich DownloadNuGetExein NuGet.targets aktiviert habe, wurde beim Herunterladen ein Proxy-Fehler gemeldet. Dies führte dazu, dass der Rest der Projektbuilds fehlschlug.

wtjones
quelle
4

Dieser Fehler wird möglicherweise angezeigt, wenn Sie gefälschte Baugruppen verwenden. Das Entfernen von Fälschungen führt zu einem erfolgreichen Aufbau des Projekts.

FLCL
quelle
Was ist eine "gefälschte Versammlung"? Können Sie das näher erläutern? (Antworten Sie, indem Sie Ihre Antwort erweitern.)
Peter Mortensen