2010-10-16 7 views
52

Ich frage mich, ob es möglich ist, nuget zu verwenden, um nur Verweise auf die erforderlichen Pakete in der Versionskontrolle zu speichern (nur die package.config und den Paketordner zu ignorieren).NuGet und verteilte Versionskontrolle (DVCS)

Gibt es eine Möglichkeit, nugget anzuweisen, alle referenzierten Pakete in den verschiedenen package.config-Dateien (erneut) herunterzuladen? Oder etwas Ähnliches, das in ein Build-Skript eingefügt werden könnte.

Update:

Es scheint, dass ich nicht der einzige bin, der diese Funktion angefordert: See this work item (dank PHeiberg für den Hinweis)

Update 2:

NuGet jetzt hat diese Funktion eingebaut. Einzelheiten finden Sie unter Using NuGet without committing packages to source control. Alles, was übrig bleibt, ist, das Packages-Verzeichnis zu .gitignore oder einem Äquivalent zu Ihrem VCS hinzuzufügen (/packages/ wird den Trick machen, wenn Sie es im Stamm Ihres Repositorys haben und git verwenden).

+0

@ Robert-ros beantwortet dies mit dem Blog-Eintrag von David Ebbo . :-) http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html – klabranche

Antwort

8

Ich weiß nicht über Ihre erste Frage.

Wenn ein CI-Server die Pakete automatisch aktualisiert, ist dies in der Theorie machbar. Sie könnten die Befehle "List-Package -Installed" und "Update-Package" verketten und jedes Paket auf die neueste Version aktualisieren. Weitere Details finden Sie unter command reference.

Scott Guthrie says this zum Thema:

„Sie können die Befehlszeilen Option mit einer CI-Lösung integrieren und machen einen Update-Paket Befehl explizit als Teil Ihres Build/CI Prozess ziehen nach unten Updates. Ehrlich gesagt nicht sicher ich bin das Gefühl für die Szenarien machen wir reden, obwohl, wie typischerweise einige Entwickler wollen entscheiden vor einem Core Runtime Abhängigkeit auf eine neue Version aktualisieren. NuPack des Standardmodell würde einen Entwickler verwenden NuPack, um eine Bibliothek zu installieren - und NuPack würde automatisch in das Paket und Abhängigkeiten zu Quelle Kontrolle einchecken. Auf diese Weise würde ein anderer Entwickler (oder der CI-Server ) nicht erneut NuPack verwenden müssen - sie könnten einfach ihre Quelle synchronisieren und erstellen. Aber wie ich bereits erwähnt früher - wenn Sie explizit tun ein Update als Teil Ihres CI Prozess wollte man kann „

Edit:.

Nachdem Sie Ihren Kommentar Ich sehe, was du bist versuchen zu erreichen. Ich fand this long thread in der NuPack Diskussionen Liste über das Problem.Eine Lösung wird offenbar nicht Teil von v1 sein.Eine benutzerdefinierte Build-Aufgabe in der CI Ihrer Wahl und eine Konfiguration in Ihrem Repo für sie ist die einzige Lösung, die ich sehe Bitte melde dich mit deinen Befunden zurück Du hast mich interessiert

+0

Nun, ich will nicht die neueste Version, ich möchte die angegebene - Ich will nur nicht die Binärdateien im Repository (wie es die Repository-Größe eines DCVS-Repository mit jeder neuen Version erheblich aufgebläht) – Fionn

+0

Ok, macht diese Art von Sinn. Sie können eine Liste mit Paketnamen und -versionen im Repository speichern und dann vom CI jedes mit einem Befehl "Add-Package -Version" abrufen. – PHeiberg

+0

Eine aktuelle Diskussion dazu gefunden. Siehe meine Bearbeitung. – PHeiberg

5

Es gibt eine aktuelle Diskussion über diese Frage unter Phil Haack's blog, in der er um Feedback zu dieser Frage bittet.