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.

6voto

Code_Worm Punkte 3393

Ich stand vor demselben Problem. In meinem Fall hatte ich auf ein Klassenbibliotheksprojekt mit höherer Auflösung verwiesen. .Net-Version als mein Projekt und VS konnte das Projekt nicht erstellen und löste den gleichen Fehler aus, den Sie gepostet haben.

Ich stelle einfach .Net-Version meines Klassenbibliotheksprojekts (dasjenige, das den Build beschädigt hatte) identisch mit der .Net-Version des referenzierten Projekts und das Problem ist gelöst.

6voto

Arun Prasad Punkte 340

Auch ich hatte den gleichen Fehler. Er versteckt sich wie im unten stehenden Pfad. Der Pfad, auf den ich mich für die DLL-Datei bezogen habe, lautet wie " D:\Assemblies Mappe \Assembly1.dll ".

Der ursprüngliche Pfad, auf den sich die Versammlung bezog, lautete jedoch " D:\Assemblies %20Ordner \Assembly1.dll ".

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

Die Lösung ist in Stack Overflow Frage Wie kann ich in C# alle Leerzeichen durch %20 ersetzen? .

5voto

JaredPar Punkte 699699

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

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

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

4voto

Antonin GAVREL Punkte 7751

Ich hatte eine Klasse in 4.6.1, die auf eine Schnittstelle verwies, die in 4.6.2 enthalten war... ein Upgrade der Klasse auf 462 hat das Problem behoben.

4voto

DrBB Punkte 93

Ich verwende Visual Studio 2013.

Es scheint, dass die Build-Abhängigkeiten falsch waren. Das Löschen der *.suo-Dateien hat die Probleme, die ich hatte, behoben.

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