it-swarm.com.de

VS 2017-Metadatendatei '.dll konnte nicht gefunden werden

Ich weiß, dass es eine andere Frage mit genau demselben Problem gibt, aber ich habe all diese Antworten durchgesehen und keine hat mir geholfen. :( ( Dies war die Frage. )

Ich habe gerade ein neues ASP.NET MVC-Projekt erstellt und ein paar .dlls in die Lösung aufgenommen. Wenn ich jetzt versuche, das Projekt zu erstellen, erhalte ich die Fehlermeldung, die in 3 der 5 Bibliotheken angezeigt wird.

Error   CS0006  Metadata file 'C:\Users\...\source\Database\bin\Debug\DataAccessLayer.dll' could not be found   Logic   C:\Users\...\source\Logic\CSC   1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\Logic\bin\Debug\Logic.dll' could not be found    PTS2-MVC    C:\Users\...\source\PTS2-MVC\CSC    1   Active

Error   CS0006  Metadata file 'C:\Users\...\source\PTS2-MVC\bin\PTS2-MVC.dll' could not be found    PTS2-MVC.Tests  C:\Users\...\source\PTS2-MVC.Tests\CSC  1   Active

Wenn ich in den bin\debug-Ordner dieser .dll gehe, sehe ich, dass sie leer ist und die andere .dll, in der ich keine Fehlermeldung bekomme, nicht leer ist. Aber ich weiß nicht, wie ich das beheben soll oder was ich getan habe, um dies zu erreichen.

Die häufigste Antwort ist, zu den properties der solution zu gehen und zu configuration und deaktivieren -> zutreffend -> check und apply wieder, aber das hat nicht funktioniert

32
Svenmarim

Okay, ich habe es jetzt behoben, das Problem war, dass ich einige andere normale Fehlermeldungen in meinem Projekt hatte und anscheinend nachdem ich diese behoben habe und als ich mein Projekt Bereinigt und wieder aufgebaut habe, dann alle

Für andere Personen mit diesem Problem in der Zukunft: Stellen Sie sicher, dass Sie keine anderen Fehlermeldungen in Ihrem Projekt haben, und beheben Sie diese zuerst!

Ich danke Ihnen allen, dass Sie mir geholfen haben!

37
Svenmarim

Schritte zur Behebung dieses Fehlers: MetaData File .dll konnte nicht gefunden werden.

  1. Alle Projekte reinigen.

  2. Alle Projekte entladen.

  3. Alle Projekte neu laden.

  4. Lösung neu aufbauen.

Dann Problem gelöst.

13
rjay dadula

In meinem Fall ist ein Fehler aufgetreten, der von VS jedoch nicht ordnungsgemäß analysiert und im Fenster "Fehlerliste" angezeigt wurde. Um es zu finden, sehen Sie die alte Ausgabe im Build-Fenster und analysieren die Meldungen von oben nach unten und beheben den tatsächlichen Fehler. M $, bitte korrigieren! Dies ist eine enorme Zeitverschwendung der kollektiven Entwickler der Welt. 

6
ebol2000

Ich hatte dieses Problem mit einer Lösung, die mehrere Projekte enthielt.

Ich denke, es kam vom Duplizieren eines .csproj und dem Hinzufügen der Kopie zur Lösung. Eine .csproj -Datei enthält ein <ProjectGuid>-Element. Ich habe die GUID des kopierten Projekts auf ein neues gesetzt.

Ich habe auch folgende Schritte ausgeführt:

  1. Schließen Sie die Lösung
  2. Löschen Sie den Ordner
  3. Löschen Sie alle Obj-Ordner
  4. Lösung öffnen und bauen
6
j00hi

In meinem Fall musste ich die .csproj-Datei öffnen und die Referenz von Hand hinzufügen, wie folgt (Microsoft.Extensions.Identity.Stores.dll fehlte):

<Reference Include="Microsoft.Extensions.Identity.Stores">
  <HintPath>..\..\..\..\Program Files\dotnet\sdk\NuGetFallbackFolder\Microsoft.extensions.identity.stores\2.0.1\lib\netstandard2.0\Microsoft.Extensions.Identity.Stores.dll</HintPath>
</Reference>
2
toutecrimson

Überprüfen Sie den Namen Ihres Projektordners. In meinem Fall wurde mein Projektordner mit Leerzeichen benannt. Beim Klonen des Projekts aus Team Foundation Server mit git bash wurden die Leerzeichen im Ordnernamen in "% 20" umgewandelt. Das Zurückstellen in Leerzeichen löste das Problem für mich.

2
roscoelee

Ich behebe dieses Problem mit diesen Schritten:

  1. Lösung reinigen
  2. Schließen Sie Visual Studio
  3. Löschen von/bin aus dem Projektverzeichnis
  4. Starten Sie Visual Studio neu
  5. Lösung neu erstellen
2
Lucas Prestes

Für mich hat das Putzen und Bauen nicht funktioniert. Das Entladen des Projekts hat nicht funktioniert. Der Neustart von Visual Studio oder sogar des PCs funktionierte nicht. Das hat funktioniert:

Wechseln Sie zu den Projekten, die den Fehler auslösen, und löschen Sie unter Verweise den Verweis auf das problematische Projekt, und fügen Sie ihn erneut hinzu. Das löst das Problem.

Das Problem scheint mit dem Verschieben eines Projekts zu zusammenhängen (z. B. innerhalb eines Ordners verschieben). Anschließend wird ein anderes Projekt verwendet, das auf es verweist, den Pfad falsch angegeben hat und es nicht finden kann.

2
David Perez

Schließen Sie Visual Studio, suchen Sie die .suo-Datei der Projektmappe, löschen Sie sie und öffnen Sie Visual Studio erneut.

1
Graham Laight

Dieses Problem tritt auf, wenn Sie Ihre Lösung umbenannt haben und das .net-Framework die alte Lösung nicht finden kann. 

Um dieses Problem zu beheben, müssen Sie den alten Namen der Lösung und alle Abhängigkeiten davon suchen und durch den neuen Namen ersetzen. Wenn Sie die physische Datei durch den Datei-Explorer durchsuchen müssen, tun Sie dies. 

Die Dateien, die normalerweise betroffen sind, sind AssemblyInfo.cs, .sln und Properties> Application> Assemblyname und Default-Namespace. Stellen Sie sicher, dass Sie sie mit dem neuen Namen aktualisieren.

Öffnen Sie den Datei-Explorer. Wenn der Ordner mit dem alten Namen noch vorhanden ist, müssen Sie ihn löschen. Reinigen Sie dann die Lösung, bis der Fehler behoben ist. (Falls nötig, bereinigen und erstellen Sie das Projekt einzeln, insbesondere das betroffene Projekt.)

Ich hoffe das hilft.

1

Eine andere Sache, die Sie überprüfen sollten, ist das Ziel-Framework aller referenzierten Projekte, um sicherzustellen, dass das aufrufende Projekt dieselbe oder eine spätere Version des Frameworks verwendet.

Ich hatte dieses Problem, ich habe alle zuvor vorgeschlagenen Antworten ausprobiert und dann die Frameworks auf einen Schlag überprüft. Eines der Projekte, auf das verwiesen wurde, zielte auf 4.6.1, als das aufrufende Projekt nur 4.5.2 war.

1
Rob

Diesen Befehl in bash ausführen, um alle für mich funktionierenden Ablagen zu löschen

$ find . -iname "bin" -o -iname "obj" | xargs rm -rf

Ich kann nicht garantieren, dass es für alle anderen funktioniert

Beachten Sie auch, dass alle bin-Dateien gelöscht werden. Sie müssen also alle Projekte neu erstellen. Offensichtlich am besten vor der Verwendung in das entsprechende Verzeichnis cd.

1

In meinem Fall war ich mit demselben Fehler konfrontiert. Eine meiner Projektlösungen bezog sich auf eine Assembly von einem anderen NuGet-Standort aus. Ich habe es gerade in den richtigen Ort geändert, um diesen Fehler zu beheben und neu zu erstellen. und wow das Projekt erfolgreich aufgebaut wird und alle anderen Fehler verschwunden sind.

1
Mukesh Kumar

Ich habe das gleiche Problem, das Problem war, dass der Lösungspfad Leerzeichen im Namen und vs aus irgendeinem Grund nicht das Paket auflösen sollte.

z.B:  

/Repo/Project Name/src

sollte sein  

/Repo/ProjectName/src
1
D__

Ich hatte 2 Dateien (und 2 Klassen) in demselben Projekt mit demselben Namen.

0
JohnB

Bei mir hat es geklappt:

Deinstallieren Sie das Nuget-Paket, auf das verwiesen wird, und installieren Sie es erneut.

0
Andrew

Ich hatte das gleiche Problem, auch wenn in der Ansicht "Fehlerliste" nach "Lösung neu erstellen" keine weiteren Fehler angezeigt wurden. In der Ansicht "Ausgabe" habe ich jedoch den Fehler gesehen, der hinter dem Problem stand:

Die primäre Referenz "C: ...\myproj.dll" konnte nicht aufgelöst werden, da sie für das Framework ".NETFramework, Version = v4.6.1" erstellt wurde. Dies ist eine höhere Version als das aktuell anvisierte Framework ".NETFramework, Version = v4.5".

Nachdem ich das korrigiert hatte, wurde das Problem behoben.

0
Ian

Ich hatte denselben Fehler. In meinem Fall hatte ich eine Bibliothek erstellt (CommsLibrary genannt), die auf andere Bibliotheken verwies, indem sie als Projekte in meine Lösung aufgenommen wurden. Wenn ich später ein Projekt erstellte und meine commsLibrary hinzufügte, bekam ich bei der Erstellung der Metadatendatei keinen Fehler. Also fügte ich die Bibliotheken hinzu, die meine Kommunikationsbibliothek auf das aktuelle Projekt verwies, und konnte dann erstellt werden.

0
Joseph Mawer

Was hat bei mir funktioniert:

Package Manager-Konsole (Visual Studio 2019 Comunity):

Install-Package NuGet.CommandLine
nuget locals all -clear

Lösung neu erstellen.

0
s3c

Das Bereinigen meiner Lösung hat dieses Problem mit Visual Studio 2017 verursacht. Das Entladen/Neuladen von Projekten oder mehr Bereinigen machte keinen Unterschied. Das einzige, was funktionierte, war das Schließen und Neustarten von Visual Studio.

0
John81

Ich hatte das gleiche Problem. Mein Problem war, dass ein anderer Mitarbeiter einen Klassenordner verschoben hat und das Projekt danach gesucht hat. 

Bei mir gab es 44 Fehler; 43 endete mit .dll (Suche nach einer Abhängigkeit) und der erste in der Fehlerliste endete mit .cs (Suche nach der tatsächlichen Klasse). Ich habe es mit Clean-Build versucht und sauber gemacht, entladen, neu laden, bauen, aber nichts funktioniert. Am Ende fand ich die Klasse im Projekt und löschte sie einfach, da sie sich sowieso als nicht verfügbar herausstellte, gefolgt von einem Clean-Build.

Das hat mir geholfen! Hoffe das hilft. 

0
Burke

Überprüfen Sie, ob alle Projekte geladen sind. In meinem Fall wurde eines der Projekte entladen und durch erneutes Laden des Projekts die Fehler behoben. 

0
Maryam

Ich hatte das gleiche Problem und versuchte Lösungen von Metadatendatei '.dll' konnte nicht gefunden werden

aber keines davon funktionierte.

Also habe ich nach dem Ausprobieren das Problem behoben, indem ich das Projekt entlud und erneut lud, wodurch die Konfigurationsdatei zurückgesetzt und das Problem behoben wurde.

0
Amad Malik

In meinem Fall habe ich eine Datei direkt aus dem Team Explorer-Git-Menü gelöscht, was dieses Problem verursacht hat. Als ich den Lösungs-Explorer überprüfte, zeigte er die gelöschte Datei immer noch als nicht referenzierte Datei an. Als ich diese Datei aus dem Projektmappen-Explorer entfernte, konnte ich das Projekt erfolgreich erstellen.

0
p4ulinux

In meinem Fall habe ich die Tests ausgeführt und den Fehler CS0006 erhalten. Es stellte sich heraus, dass ich Tests im Release-Modus durchführe. Wechseln Sie in den Debug-Modus, um diesen Fehler zu beheben.

0
izimiky

Nachdem ich so vielen Problemen begegnet bin, ist hier die Lösung, die ich gefunden habe.

  1. Öffnen Sie Ihren Projektordner.
  2. find Your_Project_Name.csproj [Visual C # -Projektdatei (.csproj)]
  3. Öffnen Sie diese Datei in einem beliebigen Texteditor und suchen Sie nach Ihrer fehlenden Datei ItemGroup.

    <ItemGroup> <None Include="..." /> </ItemGroup>

  4. entfernen Sie diese ItemGroup und öffnen Sie Ihr Projekt und Build erneut

  5. Wenn diese Referenz für Sie wichtig ist, fügen Sie sie erneut hinzu.
0