1001 Stimmen

Metadaten-Datei '.dll' konnte nicht gefunden werden

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 Benutzerkontrollen:

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

Das passiert nach jedem fehlgeschlagenen Build. Die einzige Möglichkeit, wie ich die Lösung kompilieren kann, ist, alle meine Benutzersteuerelemente auszukommentieren und das Projekt neu zu erstellen, und dann deaktiviere ich die Benutzersteuerelemente und alles ist in Ordnung.

Ich habe die Build-Aufträge und die Konfigurationen der 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 dies ein mögliches Problem?

Es ist sehr ärgerlich, und das Kommentieren, Erstellen und Entkommentieren der Erstellung wird extrem lästig.

19voto

Heinz Kessler Punkte 1500

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

Fehler CS0067: Das Ereignis 'XYZ' wird nie verwendet

die aus irgendeinem Grund nicht im Fehlerfenster angezeigt wurden.

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

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

Schauen Sie sich zuerst Ihre Ausgabefenster !

Es dauerte eine halbe Stunde, bis mir die Idee kam...

14voto

Mladen Nikolov Punkte 181

Ich bekam die gleiche Fehlermeldung "Metadaten-Datei '.dll' konnte nicht gefunden werden", und ich versuchte mehrere Dinge oben beschrieben, aber der Grund für den Fehler war, dass ich DLL-Datei eines Drittanbieters, die eine .NET-Version höher, dass mein Projekt Ziel war referenziert .NET-Version. Die Lösung war also, das Ziel-Framework meines Projekts zu ändern.

13voto

Chris Moschini Punkte 34996

Bei mir war es der Versuch, eine DLL in einem Pfad zu finden, der früher das Projekt enthielt, aber wir hatten es in ein neues Verzeichnis verschoben. In der Projektmappe war der richtige Pfad zum Projekt angegeben, aber Visual Studio suchte irgendwie weiter am alten Ort.

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

Dies muss eine Art globalen Cache in Visual Studio zurücksetzen, da dies sowohl dieses Problem und mehrere ähnliche Probleme behebt, während Dinge wie Clean dies nicht tun.

12voto

Oliver Punkte 33151

Wenn ich ein paar Jahre später darauf zurückkomme, hängt dieses Problem höchstwahrscheinlich mit der maximalen Pfadbegrenzung von Windows zusammen:

Benennung von Dateien, Pfaden und Namensräumen , Begrenzung der maximalen Trassenlänge

12voto

Todd Vance Punkte 4501

Ich fügte ein neues Projekt zu meiner Lösung hinzu und erhielt diese Meldung.

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

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