2017-02-27 4 views
1

Ich habe eine große Lösung mit ca. 30 Teilprojekten. Jedes Unterprojekt hängt von einem nugget-Paket ab, das regelmäßig aktualisiert wird. So beende ich zum Beispiel die Eingabe einer bisKann das Nuget Update-Paket parallel ausgeführt werden?

Update-Package AcmeWunderLib

alle paar Tage. Das Problem ist, dieser Vorgang dauert etwa 10 Minuten mit dem Ergebnis, eine sehr kleine Änderung in jedem package.config und $ $ namen CSPROJ Datei auszuführen. Ist es möglich, diese Operation parallel durchzuführen, um die Leistung zu verbessern, oder wird sich irgendein Versuch ergeben, dass sich Nugget selbst beschädigt?

+0

https://github.com/NuGet/Home/issues/1909#issuecomment-282645449 – bradgonesurfing

Antwort

2

Hier ist die echte Lösung.

DONT RUN UPDATE-PAKET in Visual Studio

  • Schließen Visual Studio
  • Öffnen Sie Power vom Desktop oder Startmenü
  • Stellen Sie sicher, nuget auf Ihrem Weg
  • Ausführen der folgende Befehl devdept.eyeshot Substituieren für Ihr Paket und WeinCAd.Net.sln für Ihre Lösungsdatei.

nuget update -Verbosity detailed -Id devdept.eyeshot .\WeinCad.Net.sln

Der gesamte Vorgang dauerte weniger als 10 Sekunden.

EDIT

ich gewarnt worden, dass dies nicht alle die gleichen Dinge tut, die von nuget Update läuft in Visual Studio tut. All das ändert den Basispfad für die DLLs. Es kann keine Referenzen hinzufügen und entfernen. Das reicht jedoch für meinen Anwendungsfall.

+0

ich kann Kenne es noch nicht als Antwort. Es gibt eine Zeitüberschreitung, wenn Sie Ihre eigene Frage beantworten. Aber Sie können es upvote :) – bradgonesurfing

+0

Gut zu wissen, dass Sie dieses Problem gelöst haben. Bitte markieren Sie Ihre Antwort, die für andere Gemeinschaften von Vorteil ist, die das gleiche Problem haben, wenn Sie frei sind. –

2

Die Paketaktualisierungszeit besteht aus dem Herunterladen des Pakets und dem Deinstallieren/Installieren des Pakets. Die Download-Aktion wird nur einmal ausgeführt, wenn sie zum ersten Mal heruntergeladen wird, so dass die Deinstallation/Installation fast die gesamte Aktualisierungszeit beansprucht.

Nach Ihrer Log nimmt NuGet unter einem zweiten Abhängigkeits Informationen zu sammeln, aber zu lange dauern Zeit zu deinstallieren/installiert Paket. Es dauert nur 2-5 Sekunden, um ein Paket für ein Projekt in meinem Test zu aktualisieren. Überprüfen Sie daher zuerst die Leistung Ihrer Maschine, wenn Sie auf dieses Problem stoßen.

Für diese Ausgabe, würde Ich mag Ihnen einige troubleshootings bieten:

  1. Aktualisieren Sie Ihre NuGet, NuGet Team mehr Verbesserungen in der Leitung für 3.5rc und 3.4.5 haben.

  2. Reinigen Sie die alte Version Pakete in Ihrem Paket Futtermittel- und NuGet cache.

  3. Disable andere NuGet Repositorys außer nuget.org, vielleicht einer von ihnen ist das Timing aus.

  4. -Test dieses Problem auf anderen Workstations oder Servern aufbauen, und Sie können einige Projekte in einer neuen Lösung erstellen um dieses Problem zu überprüfen.

Hoffe, dass Ihnen helfen kann.

+0

In meinem Buch 2 bis 5 Sekunden sind ziemlich lange noch für das, was ein einfaches Schreiben auf Festplatte sein sollte ... – Crono

Verwandte Themen