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.

39voto

Andrew Punkte 15913

Visual Studio 2019 Das hat bei mir funktioniert:

  1. Visual Studio schließen
  2. Löschen Sie die versteckten .vs Ordner
  3. Öffnen Sie Visual Studio erneut und erstellen Sie die Projektmappe neu.

34voto

Roffers Punkte 671

Das Schließen und erneute Öffnen von Visual Studio 2013 hat bei mir funktioniert!

31voto

Alex Stephens Punkte 2771

Nun, nichts von den vorherigen Antworten hat bei mir funktioniert, also habe ich darüber nachgedacht, warum ich klicke und hoffe, dass wir als Entwickler wirklich versuchen sollten zu verstehen, was hier vor sich geht.

Es schien mir offensichtlich, dass dieser falsche Metadaten-Dateiverweis irgendwo gespeichert sein musste.

Eine schnelle Suche in der .csproj-Datei ergab die schuldigen Zeilen. Ich hatte einen Abschnitt namens <itemGroup>, der an dem alten, falschen Dateipfad festzuhalten schien.

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

Also eigentlich 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 eine Sicherungskopie Ihrer alten .csproj-Datei erstellen, bevor Sie daran herumfummeln .

30voto

alfi Punkte 301

In meinem Fall habe ich mein installiertes Verzeichnis auf die falsche Weise.

Wenn Ihr Lösungspfad so etwas wie "My Project%2c Very Popular%2c Unit Testing%2c Software and Hardware.zip" lautet, kann die Metadaten-Datei nicht aufgelöst werden. Vielleicht sollten wir einige ungültige Wörter wie %2c verhindern.

Die Umbenennung des Pfads in einen normalen Namen hat mein Problem gelöst.

26voto

Ich bin auch auf dieses Problem gestoßen. Erstens müssen Sie Ihr DLL-Projekt manuell erstellen, indem Sie mit der rechten Maustaste auf Build klicken. Dann wird es funktionieren.

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