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.

2voto

Ali Alizade Punkte 93

Ich stand vor dem gleichen Problem. Zuerst habe ich den gesamten Nuget-Cache unter Werkzeuge>Nuget-Paketmanager>Paketmanager-Einstellungen gelöscht und dann auf "Alle Nuget-Cache(s) löschen" geklickt. Danach habe ich die Powershell geöffnet und "dotnet restore" und dann "dotnet build" ausgeführt. In meinem Fall hat diese Lösung meine Fehler behoben.

2voto

In Visual Studio 2019:

  • Schließen Sie Visual Studio.
  • Löschen Sie die .vsccc-Datei, die sich im gleichen Ordner wie Ihre Lösungsdatei befindet.
  • Öffnen Sie die Lösung und bauen Sie sie neu auf.

2voto

RenniePet Punkte 10740

Wie der Nutzer @burzhuy anmerkt, kann es wichtig sein, sich die Output Fenster, und nicht nur das Error List Fenster.

In meinem Fall arbeitete ich an Änderungen an der Roslyn Compiler. Seine Build-Projekte führen eine zusätzliche Prüfung durch, um zu sehen, ob die öffentlichen Felder mit dem übereinstimmen, was als öffentliche Schnittstelle des Compilers definiert wurde, andernfalls wird ein RS0016- oder RS0017-Fehler erzeugt. Ich hatte ein paar öffentliche Felder hinzugefügt und den RS0016-Fehler behoben, indem ich mit der Maus über den Fehler fuhr und "Add to public API" wählte.

Später habe ich meine Meinung geändert und die öffentlichen Felder in eine andere Klasse verschoben. Aus irgendeinem Grund führte dies zu der Fehlermeldung "Metadaten-Datei konnte nicht gefunden werden", und je mehr ich damit herumspielte, desto mehr Fehler erhielt ich.

Sie müssen die richtige PublicAPI.Unshipped.txt Datei (in meinem Fall war es in E:\Roslyn\32414\src\Compilers\Core\Portable ) und bearbeiten Sie sie manuell, um die nicht mehr relevanten Zeilen zu entfernen.

2voto

Jon D Punkte 254

In meinem Fall hatte ich es versäumt, einen Verweis auf eines der Projekte in der Lösung hinzuzufügen, was den Fehler bei mir auslöste.

2voto

Hamit YILDIRIM Punkte 3566

Ich stimme mit allem überein, nur mit einem Unterschied. In meinem Fall: Ich verwende Visual Studio 2019. Ich schloss VS-2019 und öffnete mit VS-2017. und das Projekt neu zu erstellen alles funktioniert super! Für wen in meiner Position Datum ist: 4/19/2019

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