Ich habe gerade meine PCL-Bibliothek in eine neue .Net Standard-Bibliothek konvertiert und habe einige gelbe Warndreiecke für meine unten gezeigten Abhängigkeiten:
Während der Konvertierung wurden alle Nuget-Pakete einschließlich der Abhängigkeiten übertragen, sodass es sich um Dulikate handeln konnte.
Wie finde ich heraus, was die gelben Warndreiecke darstellen?
BEARBEITEN
Protokolle erstellen:
Um zu verhindern, dass NuGet Pakete während der Erstellung wiederherstellt, öffnen Sie das Dialogfeld "Visual Studio-Optionen", klicken Sie auf den Knoten "Paketmanager" und deaktivieren Sie "NuGet darf fehlende Pakete während der Erstellung herunterladen". NU1605: Downgrade des Pakets festgestellt: NUnit von 3.8.1 auf 2.6.4. Verweisen Sie direkt aus dem Projekt auf das Paket, um eine andere Version auszuwählen.
MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> = 3.8.1)
MyProj.UI.Tests -> NUnit (> = 2.6.4) NU1605: Downgrade des Pakets festgestellt: NUnit von 3.8.1 auf 2.6.4. Verweisen Sie direkt aus dem Projekt auf das Paket, um eine andere Version auszuwählen. MyProj.UI.Tests.iOS -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> = 3.8.1) MyProj.UI.Tests.iOS -> NUnit (> = 2.6.4) NU1605: Erkanntes Paket-Downgrade: NUnit von 3.8.1 auf 2.6.4. Verweisen Sie direkt aus dem Projekt auf das Paket, um eine andere Version auszuwählen.
MyProj.UI.Tests.Android -> MyProj.UI.Tests -> MyProj.Core.Tests -> NUnit (> = 3.8.1) MyProj.UI.Tests.Android -> NUnit (> = 2.6.4)
Antworten:
So banal es auch klingt, versuchen Sie es neu und starten Sie VS neu - und fahren Sie mit Ihrem Tag fort :)
quelle
Wenn
dotnet restore
Sie eine komplizierte Manipulation ausführen , erhalten Sie viel mehr Informationen als im Fehlerfenster oder im Lösungs-Explorer.Sie können diesen Befehl in der Package Manager-Konsole ausführen:
quelle
Im Build-Protokoll habe ich Folgendes bemerkt:
Ich habe daher alle Pakete deinstalliert, die als Abhängigkeiten für das
.Net Standard
hier aufgeführte Nuget aufgeführt waren:Und die gelben Warnungen verschwanden.
Von hier aus: https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-standard-2-0/
Ich habe auch festgestellt, dass Sie die NoWarn-Eigenschaft wie folgt verwenden können:
quelle
Versuchen Sie dies nur zu Dokumentationszwecken für neue Personen mit diesem Problem , und Sie werden sich daran erinnern: D.
Wenn Sie zu: Extras> NuGet Administrator> Konfigurationen gehen. und Sie haben "Nuget zulassen ...." und "automatisch prüfen ...." überprüft.
Das einzige, was Sie tun müssen, ist auf die Schaltfläche "Alle NuGet-Caches löschen" zu klicken.
Das war's, Sie müssen keine manuellen Gedanken bearbeiten, die gefährlich sein können. Glauben Sie mir, ich muss einige der Schritte ausführen, als hier viel Zeit zu beschreiben, und versuchen Sie mehr als 5 Schritte der offiziellen Microsoft-Dokumentation für Dieses Problem können Sie hier überprüfen: https://docs.microsoft.com/es-es/nuget/consume-packages/package-restore#restore-packages-automatically-using-visual-studio
Aber nur das Reinigen des Caches löst alle Probleme
quelle
Das gelbe Dreieck bedeutet, dass die physischen Paketdateien nicht mehr auf der Festplatte verfügbar sind.
Dies geschieht normalerweise, wenn Sie eine
get latest version
Anforderung zur Quellcodeverwaltung in TFS ausgeben , insbesondere wenn Sie einen neuen Computer verwenden und Ihren Projektcode vom TFS-Server abrufen möchten.low quality internet connection
Dies kann auch dazu führen, dass fast immer Daten verloren gehen oder heruntergeladene Dateien beschädigt werden.Wenn bei dem Problem einige Pakete fehlen, können Sie die
packages.config
Datei ändern und diese Pakete aus dem entfernenpackages.config
und die fehlenden Pakete über den Nuget-Paket-Manager erneut installieren.Wenn dem Problem jedoch mehr als ein paar Pakete fehlen, gehe ich am besten und schnellsten wie folgt vor, um fehlende Pakete abzurufen:
Packages
indem Sie alle auswählen. Hinweis: Kopieren Sie NICHT den Paketordner selbst, sondern nur den Inhalt des OrdnersPackages
Ordner ein , in dem vorhandene Elemente überschrieben werden.Beachten Sie, dass solche Probleme im Zusammenhang mit fehlenden Dateien in Projekten immer schwer zu beheben sind und von der Erfahrung der Entwickler abhängen. Erwarten Sie daher keine einfache Lösung für dieses Problem.
Microsoft gibt an, dass es sich um einen Fehler handelt, der jedoch in jeder Version von Visual Studio auftreten kann.
quelle
Wenn Sie das Warnsymbol haben, aber keine Warnungen und nichts tatsächlich falsch zu sein scheint, klicken Sie mit der rechten Maustaste auf das Projekt> Projekt entladen> klicken Sie erneut mit der rechten Maustaste auf das Projekt> Projekt neu laden. Das Symbol wurde für einen Moment angezeigt und dann in Visual Studio 2019 für mich gelöscht. Dadurch wird ein vollständiger Neustart von Visual Studio vermieden.
quelle
Seltsamerweise musste ich bei meinem .Net Core 3-Projekt einfach im Kontext des Projekts auf "Projektabhängigkeiten laden" klicken. Dann verschwand das Warnsymbol.
Hilfreicher Screenshot:
quelle
Ich habe gerade Visual Studio auf 16.4.4 aktualisiert und das Problem wurde behoben. Die Referenz ist fest und kein gelbes Dreieck mehr. Vielen Dank.
quelle
Es könnte 1 Paket geben, das dazu führen kann, dass alle anderen nicht geladen werden. Versuchen Sie, Pakete von .csproj einzeln zu kommentieren, und finden Sie heraus, welches Problem darin besteht, sie einzugrenzen.
quelle
Wenn ich versuche,
Microsoft.NETCore.Platforms
wie in der markierten Antwort angegeben zu deinstallieren , wird folgende Fehlermeldung angezeigt:Ich habe die anderen Pakete deinstalliert, erhalte aber trotzdem den
NETSDK1023
Fehler:Jetzt habe ich meine .csproj bearbeitet und den folgenden Teil gelöscht
<PackageReference Include="NETStandard.Library" Version="2.0.3" />
wie in https://aka.ms/sdkimplicitrefs unter Empfehlungen angegeben :
Jetzt ist die Warnung weg!
quelle
Ich habe diesen Fehler festgestellt, als ich das Projekt geklont habe. Der Hauptgrund war, dass die Nuget-Pakete nicht wiederhergestellt werden konnten und ich eine Lösung finde, indem ich nuget.org nur zur aktiven Ressource mache.
Stellen Sie sicher, dass Sie Nuget.org als einzige aktive Ressource auswählen.
Ich hoffe es hilft
quelle
Keines der oben genannten hat bei mir funktioniert. Ich hatte ein Projekt in der Lösung mit Warndreiecken von den Abhängigkeiten zu anderen Projekten in der Lösung, die viele rote Fehler in VS verursachten. Es würde jedoch gut funktionieren, laufen und debuggen. Ich habe das Projekt schließlich mit einem Rechtsklick auf den Projektnamen im Lösungsbaum entladen und dann das Projekt neu geladen, und jetzt ist alles zufrieden. Danke Visual Studio, smh. Ich benutze VS 2019 16.7.1
quelle
Das gelbe Ausrufezeichen ist normalerweise auf fehlende Referenz oder nicht unterstützte DLL zurückzuführen. Wenn Sie ein Repository klonen, besteht die Möglichkeit, dass viele der Nugget-Pakete einen gelben Ausruf anzeigen. Wenn Sie überprüft haben, ob die Projektversion korrekt ist und das Problem weiterhin besteht, können Sie die folgende Lösung ausprobieren.
Wählen Sie in der Paketmanagerkonsole das Projekt aus, in dem dieses Problem auftritt, und geben Sie den folgenden Befehl ein.
Dadurch werden alle Pakete neu installiert. Dieser Befehl aktualisiert nicht die Version von NuGet-Paketen, sondern erzwingt einfach eine Neuinstallation.
Diese Lösung hat in meinem Fall funktioniert. Ich benutze VS2019. Hoffe, das wird auch anderen helfen.
quelle
Wenn Sie kein Problem damit haben, alle NuGet-Pakete zu aktualisieren, die dieses Problem möglicherweise beheben.
Tools - Menü -> NuGet Package Manager -> Manage Nuget Packages für Lösung . Wenn dieses Menü angezeigt wird, klicken Sie auf die Registerkarte Aktualisieren und dann auf die Schaltfläche Alle aktualisieren.
quelle