Ich weiß, dass es eine andere Frage gibt, die genau das gleiche Problem hat, aber ich habe all diese Antworten durchgearbeitet, und keine hat mir geholfen. :( ( Dies war die Frage. )
Ich habe gerade ein neues ASP.NET MVC-Projekt erstellt und einige DLLs in die Lösung aufgenommen. Wenn ich jetzt versuche, das Projekt zu erstellen, erhalte ich die unten gezeigte Fehlermeldung für 3 der 5 Bibliotheken.
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 Ordner bin \ debug dieser DLL gehe, sehe ich, dass sie leer ist und die andere DLL, in der ich keine Fehlermeldung erhalte, 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 auf die gehen Eigenschaften der Lösung und gehen Sie zu Konfiguration und deaktivieren -> Anwendung -> Kontrolle und Anwendung wieder, aber das hat nicht funktioniert
quelle
Antworten:
Das Problem war, dass ich einige andere normale Fehlermeldungen in meinem Projekt hatte, und anscheinend waren alle DLLs erfolgreich, nachdem ich diese behoben und mein Projekt WIEDER bereinigt und erstellt hatte.
Stellen Sie sicher, dass Ihr Projekt keine weiteren Fehlermeldungen enthält, und beheben Sie diese zuerst, wenn Sie dies tun!
quelle
Schritte zur Behebung dieses Fehlers: Die MetaData-Datei .dll wurde nicht gefunden.
Reinigen Sie alle Projekte.
Entladen Sie alle Projekte.
Laden Sie alle Projekte neu.
Lösung neu erstellen.
Dann Problem gelöst.
quelle
In meinem Fall ist ein Fehler aufgetreten, der jedoch von VS nicht ordnungsgemäß analysiert und im Fenster "Fehlerliste" angezeigt wurde. Um es zu finden, sehen Sie sich häufig die alte "Ausgabe" aus dem Build-Fenster an und analysieren die Nachrichten von oben nach unten und beheben den eigentlichen Fehler. M $, bitte reparieren! Dies ist eine enorme Zeitverschwendung für die kollektiven Entwickler der Welt.
quelle
Überprüfen Sie den Namen Ihres Projektordners. In meinem Fall wurde mein Projektordner mit Leerzeichen benannt. Als ich das Projekt mit git bash von Team Foundation Server geklont habe, wurden die Leerzeichen im Ordnernamen in "% 20" konvertiert. Das Zurücksetzen in Leerzeichen hat das Problem für mich behoben.
quelle
Ich hatte dieses Problem mit einer Lösung, die mehrere Projekte enthielt.
Es kam vom Duplizieren einer .csproj und dem Hinzufügen der Kopie zur Lösung. Eine .csproj- Datei enthält a
<ProjectGuid>
Element. Ich habe die GUID des kopierten Projekts auf eine neue gesetzt.Update: Welche GUID Sie verwenden, spielt keine Rolle, sie muss sich nur von der GUID des anderen Projekts unterscheiden. Sie können eine neue GUID in Visual Studio erstellen:
Tools -> Create GUID
und den Teil zwischen die geschweiften Klammern kopieren, d{...}
. H. Verwenden Sie dies als neuen Wert für die<ProjectGuid>
Element.Ich habe auch die folgenden Schritte ausgeführt (nicht unbedingt erforderlich, aber sie tun nicht weh):
quelle
Ich behebe dieses Problem mit den folgenden Schritten:
quelle
Ich habe das gleiche Problem, das Problem war, dass der Lösungspfad Leerzeichen im Namen hat und aus irgendeinem Grund das Paket nicht auflöst ... lade mein Repository erneut herunter und benenne die Lösung einfach ohne Leerzeichen im Namen um.
z.B:
sollte sein
quelle
%20
im Ordner den Namen.Für mich hat das Putzen und Bauen nicht funktioniert. Das Entladen des Projekts hat nicht funktioniert. Das Neustarten von Visual Studio oder sogar des PCs hat nicht funktioniert. Das hat funktioniert:
Gehen Sie zu jedem der Projekte, die den Fehler auslösen, und löschen Sie unter Referenzen den Verweis auf das problematische Projekt und fügen Sie ihn erneut hinzu. Das löst das Problem.
Das Problem scheint damit zu tun zu haben, dass ein Projekt verschoben wird (z. B. in einen Ordner verschieben) und dann ein anderes Projekt, das darauf verweist, einen falschen Pfad hat und es nicht finden kann.
quelle
Ich hatte das gleiche Problem, auch wenn nach "Lösung neu erstellen" keine anderen Fehler in der Ansicht "Fehlerliste" angezeigt wurden. In der Ansicht "Ausgabe" habe ich jedoch den Fehler gesehen, der hinter dem Problem steckt:
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 derzeit angestrebte Framework ".NETFramework, Version = v4.5".
Nachdem ich dies korrigiert hatte, wurde das Problem behoben.
quelle
Eine andere Sache, die Sie überprüfen sollten, ist das Ziel-Framework aller Projekte, auf die verwiesen wird, um sicherzustellen, dass das aufrufende Projekt dieselbe oder eine spätere Version des Frameworks verwendet.
Ich hatte dieses Problem, habe alle zuvor vorgeschlagenen Antworten ausprobiert und dann ahnungslos die Frameworks überprüft. Eines der Projekte, auf die verwiesen wurde, zielte auf 4.6.1 ab, wenn das aufrufende Projekt nur 4.5.2 war.
quelle
Das Ausführen dieses Befehls in Bash zum Löschen aller für mich funktionierenden Bins
$ find . -iname "bin" -o -iname "obj" | xargs rm -rf
Ich kann jedoch nicht garantieren, dass es für andere funktioniert
Beachten Sie auch, dass alle Bin-Dateien gelöscht werden. Sie müssen also alle Projekte neu erstellen. Es ist natürlich am besten, vor der Verwendung in das entsprechende Verzeichnis zu wechseln.
quelle
Überprüfen Sie, ob alle Projekte geladen sind. In meinem Fall wurde eines der Projekte entladen und durch erneutes Laden des Projekts werden die Fehler behoben.
quelle
In meinem Fall musste ich die .csproj-Datei öffnen und die Referenz wie folgt von Hand hinzufügen (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>
quelle
Schließen Sie Visual Studio, suchen Sie die .suo-Datei der Lösung, löschen Sie sie und öffnen Sie Visual Studio erneut.
quelle
Was hat bei mir funktioniert:
Paketmanager-Konsole (Visual Studio 2019 Comunity):
Lösung neu erstellen.
quelle
In meinem Fall hatte ich den gleichen Fehler. Eine meiner Projektlösungen bestand darin, eine Baugruppe von einem anderen NuGet-Standort zu verweisen. Ich habe es nur in den richtigen Speicherort geändert, um diesen Fehler zu beheben und neu zu erstellen. und wow, das Projekt wird erfolgreich erstellt und alle anderen Fehler sind verschwunden.
quelle
Das Bereinigen meiner Lösung verursachte dieses Problem mit Visual Studio 2017. Das Entladen / Neuladen von Projekten oder mehr Bereinigung machte keinen Unterschied. Das einzige, was funktionierte, war das Schließen und Neustarten von Visual Studio.
quelle
Ich hatte den gleichen Fehler. In meinem Fall hatte ich eine Bibliothek erstellt (nennen wir sie commsLibrary), die auf andere Bibliotheken verwies, indem sie als Projekte in meine Lösung aufgenommen wurden. Später, als ich ein Projekt baute und meins hinzufügte commsLibrary hinzufügte , konnte ich beim Erstellen der Metadatendatei keinen Fehler finden. Also habe ich die Bibliotheken hinzugefügt, auf die meine Kommunikationsbibliothek verwiesen hat, und konnte sie dann erstellen.
quelle
Nach so vielen Problemen ist hier die Lösung, die ich gefunden habe.
Öffnen Sie diese Datei in einem beliebigen Texteditor und suchen Sie Ihre fehlende Datei ItemGroup.
<ItemGroup> <None Include="..." /> </ItemGroup>
Entfernen Sie diese ItemGroup und öffnen Sie Ihr Projekt erneut und erstellen Sie es
quelle
Ich hatte das gleiche Problem und habe versucht, Lösungen aus der Metadatendatei '.dll' nicht zu finden
aber keines davon funktionierte.
Nach Versuch und Irrtum habe ich es behoben, indem ich das Projekt entladen und neu geladen habe. Dabei habe ich die Konfigurationsdatei zurückgesetzt und das Problem behoben.
quelle
Ich habe 10 Projekte aus 25 Projekten in Lösung einzeln erstellt, basierend auf Abhängigkeiten. Dann bauen Sie die Lösung. Es wurde für mich behoben
quelle
Ich hatte das gleiche Problem. Mein Problem war, dass jemand anderes im Team einen Klassenordner verschoben hat und das Projekt danach gesucht hat.
Für mich 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 versucht, sauber zu bauen und zu reinigen, zu entladen, neu zu laden, zu bauen, aber nichts funktioniert. Am Ende habe ich die Klasse im Projekt gefunden und sie einfach gelöscht, da sie sowieso als nicht verfügbar angezeigt wurde, gefolgt von einem Clean-Build.
Das hat den Trick für mich getan! Hoffe das hilft.
quelle
Ich hatte 2 Dateien (und 2 Klassen) im selben Projekt mit demselben Namen.
quelle
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, wurde die gelöschte Datei immer noch als nicht referenzierte Datei angezeigt. Als ich diese Datei aus dem Solution Explorer entfernte, konnte ich das Projekt erfolgreich erstellen.
quelle
Für mich hat funktioniert:
Deinstallieren Sie das referenzierte Nuget-Paket mit dem Fehler und installieren Sie es erneut.
quelle
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. Der Wechsel in den Debug-Modus hat diesen Fehler behoben.
quelle
Dieses Problem tritt auf, wenn Sie Ihre Lösung umbenannt haben und das .net-Framework die alte Lösung nicht finden kann.
Um dies 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 über den Datei-Explorer durchsuchen müssen, tun Sie dies.
Die Dateien, die normalerweise betroffen sind
AssemblyInfo.cs
, sind.sln
einProperties > Application > Assembly
Name und ein Standard-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 und erstellen Sie dann die Lösung, bis der Fehler behoben ist. (Bei Bedarf bereinigen und erstellen Sie das Projekt nacheinander, insbesondere das betroffene Projekt.)
quelle
In meinem Fall war das Problem, dass ich auf ein Projekt verwies, in dem ich alle
.cs
Dateien auskommentierte.Beispielsweise verweist ProjectApp auf ProjectUtility. In ProjectUtility hatte ich nur 1
.cs
Datei. Ich habe es nicht mehr benutzt, also habe ich die ganze Datei auskommentiert. In ProjectApp habe ich keinen Code von ProjectUtility aufgerufen, aberusing ProjectUtility;
in einer der ProjectApp-.cs
Dateien. Der einzige Fehler, den ich vom Compiler bekam, war der CS0006 Fehler.Ich habe die
.cs
Datei in ProjectUtility auskommentiert und der Fehler ist verschwunden. Ich bin mir also nicht sicher, ob der Compiler ohne Code in einem Projekt eine ungültige Assembly erstellt oder die DLL überhaupt nicht generiert. Die Lösung für mich bestand darin, nur den Verweis auf ProjectUtility zu entfernen, anstatt den gesamten Code zu kommentieren.Falls Sie sich gefragt haben, warum ich den gesamten Code aus dem referenzierten Projekt kommentiert habe, anstatt die Referenz zu entfernen, habe ich dies getan, weil ich etwas getestet habe und die
ProjectApp.csproj
Datei nicht ändern wollte .quelle