NuGet - verwalten und entfernen von multi-version-Pakete in eine einzige Lösung
SZENARIO
Einer VS-Lösung mit n Projekte. Projekt-Referenzen-Paket, Y v1, Projekt B Referenzen-Paket Y v2. Es ist nun nicht möglich, aktualisieren Sie alle Verweise auf Paket Y für alle Projekte in der Projektmappe mit der NuGet-Paket-verwalten-dialog auf die Lösung von level, es ist nur möglich, wenn alle Projekte auf die gleiche version des Paket-Y. Nicht eine große Sache für nur zwei Projekte, aber ich beschäftige mich mit vielen Projekten, die durch schlechte Paketverwaltung verweisen viele Paket-Versionen, wenn Sie sollten alle auf die gleiche version.
Bevor ich den Nachmittag verbringen schreiben Sie eine Konsole app. zu auto-update-Pakets.config-Dateien für eine Lösung, so dass jedes angesprochene Paket ist nur verwiesen wird, mit der neuesten version (neueste verwiesen wird, nicht die neuesten, mit Ausnahmen/Einschränkungen etc)....gibt es ein tool/eine Methode für die dies bereits tun? Oder einige andere Ansatz, den ich bin nicht bewusst?
- Freitag Nachmittag ist tolle Zeit !
- Haben Sie versucht, mit sed oder awk?
- oder powershell!!
- Ich dachte, ich Tat dies heute.... der rechten Maustaste auf die Lösung, die Verwaltung von Paketen, aktualisieren? Ich schwöre, ich wusste nur, dass?
- du hast Recht, es funktioniert, obwohl ich immer noch zu tun haben, ein Paket an eine Zeit (der Befehl von daryal funktioniert nicht in meinem Fall), war ich zu der Annahme verleiten, es nicht also ich habe ein schreckliches Gefühl, etwas läuft schief zu gehen :S
- Ich bin froh, dass ich nicht vorstellen, es hätte sich sorgen zu machen.
- Yep, es ging alles sehr, sehr falsch. Meine Lösung würde nicht bauen, wenn ich aktualisiert alle Paket-ref über den dialog, und ich hatte für den ein rollback ausgeführt. Ich denke, dass NuGet bekommt verwirrt, wenn es refs zu Unterschied-Versionen des gleichen Pakets mit einer einzigen Lösung. Ich werde versuchen, die "repariert", alle die das Paket.config-Dateien der ref gemeinsame version, dann versuchen Sie es erneut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies in den Nuget-Paket-Manager für die Lösung (Zu finden im Menü mit der rechten Maustaste auf die Lösung, oder gehen Sie in Extras->Bibliotheks-Paket-Manager). Die Registerkarte "Update" in diesem dialog wird vorschlagen update für mehrere Projekte, bei denen das update anwendbar ist. Das gleiche gilt mit der deinstallation von Installierten tab.
Oder mit der Lösung geöffnet, öffnen Sie die NuGet-Konsole, führen Sie "Update-Paket" alle Pakete aktualisieren, die für alle Projekte. Es kann auch zum aktualisieren bestimmter Pakete/Projekte :
Findet es die gleichen updates als in den dialog, stellen Sie einfach sicher, die richtige feed (oder "Alle") ausgewählt ist, in "Quellpaket:" - dropdown.
Beispiel:
Erstens, nur das ändern der xml-Dateien ist nicht genug für NuGet zum ändern der Referenzen. In der Tat, manchmal findet man Fehler, wenn Sie Pakete geändert.config-Dateien von hand. Paket-manager-Konsole ist die Fähigkeit zu aktualisieren aller Pakete in der Lösung; Sie können rufen Sie einfach die "Get-Projekt -Alle | "Update-Package" - Befehl.
- Und zweitens, vor dem Aufruf dieses Befehls stellen Sie sicher, dass Sie die richtige Paket-Quellen zur Verfügung.