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.

3voto

In meinem Fall trat dieser Fehler auf, weil eines meiner Projekte eine andere .NET-Framework-Version verwendete als die anderen Projekte der Lösung. Ich habe den NuGet-Paketmanager verwendet, um NLog zu installieren, also denke ich, dass es für die .Net-Version dieses Projekts installiert wurde.

Ich habe alle Lösungen aus diesem Beitrag ausprobiert, aber keine hat funktioniert. Ich habe NLog entfernt, die Lösung bereinigt und versucht zu kompilieren: Das Gleiche, CS006-Fehler.

Es war, als ich alle Dateien in obj\Debug aus diesem Projekt, das die Lösung kompiliert hat.

3voto

drfaka Punkte 31

Ich hatte ein ähnliches Problem, als ich eine sehr alte Bibliothek dekompilierte, die in einer Produktionsumgebung eingesetzt wurde, aber der Quellcode war verloren.

Ich nahm die .dll, dekompilierte und generierte Projekte und Lösungen. Ich war nicht in der Lage, die Lösung aufgrund von mehreren Fehlern dieser Art zu bauen.

Die Tipps in den vorherigen Antworten haben nicht geholfen, aber nach einer Weile habe ich in einigen Projekten fehlende Verweise auf verschiedene Assemblies wie System.dll festgestellt.

Angenommen, Projekt A ist von Projekt B abhängig. In Projekt B gab es keinen Verweis auf System.dll, aber die Fehlermeldung nach dem Build lautete: "Metadaten-Datei 'B.dll' konnte nicht gefunden werden".

Es gab keine Fehlermeldung über eine fehlende System.dll in Projekt B.

Das Hinzufügen von Verweisen auf Bibliotheken wie System.dll in Projekt B löste das Problem. (System.Data, System.DirectoryServices, etc.)

3voto

Jack Fairfield Punkte 1688

Ich hatte das gleiche Problem. In meinem Fall würde das Projekt noch im Release-Modus zu bauen und es war nur, wenn ich versuchte, in Debug zu bauen, dass es fehlgeschlagen.

Um das Problem zu beheben, habe ich einfach alle Dlls (und andere Dateien aus meinem Release-Ordner) in meinen Debug-Ordner kopiert. Nachdem ich dies für jedes Projekt getan hatte, verschwanden die Fehler.

3voto

CoderRoller Punkte 1189

Ich erhielt diese Fehlermeldung, nachdem ich ein Projekt geöffnet hatte, in dem Entity Framework referenziert wurde. Daraufhin löschte ich diese Referenzen und installierte Entity Framework Version 6.0.0.0 über den Acket Manager auf diese Weise neu:

install-package entityframework -version 6.0.0.0

Der Fehler wurde immer noch angezeigt, so dass ich dachte, dass diese Verweise dort waren, weil es eine ältere Version von Entity Framework angeblich "vorinstalliert" auf das Projekt, aber es war nicht wirklich funktioniert.

Also ging ich zu der Akte packages.config und stellte fest, dass es einen weiteren Hinweis gab:

<packages>
  **<package id="EntityFramework" version="5.0.0" targetFramework="net45" />**
  <package id="EntityFramework" version="6.0.0" targetFramework="net45" />
</packages>

Dann habe ich die Zeile gelöscht, das Projekt und die Containerlösung gesäubert und neu erstellt, und es hat endlich funktioniert.

3voto

Nick Punkte 2465

In meinem Fall wurden diese Fehler durch eine Störung im NuGet-Paketmanager verursacht. Die Unterprojekte der Lösung wurden nicht erstellt, aber es wurden keine Fehler aufgrund der Metadatenfehler angezeigt.

Nachdem alle NuGet-Pakete korrigiert worden waren, konnte das Projekt wieder ordnungsgemäß erstellt werden.

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