2010-10-16 18 views
52

Zastanawiam się, czy możliwe jest użycie nuget do przechowywania odniesień do wymaganych pakietów w kontroli wersji (tylko package.config i zignorowanie folderu pakietów).NuGet i kontrola wersji rozproszonej (DVCS)

Czy istnieje sposób na powiadomienie nuget, aby (ponownie) pobrał wszystkie przywoływane pakiety w różnych plikach package.config? Lub coś podobnego, co można umieścić w skrypcie kompilacji.

Aktualizacja:

Wydaje się, że nie jestem jedyną osobą, która o tej funkcji: See this work item (dzięki PHeiberg za podpowiedź)

Aktualizacja 2:

Nuget teraz ma wbudowaną tę funkcję. Szczegółowe informacje można znaleźć na stronie Using NuGet without committing packages to source control. Pozostało tylko dodać katalog pakietów do .gitignore lub jakiegoś odpowiednika twojego VCS (/packages/ zrobi lewę, jeśli masz go w katalogu głównym repozytorium i używasz git).

+0

@ Robert-ros odpowiada to z wpisu na blogu Davida Ebbo . :-) http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html – klabranche

Odpowiedz

8

Nie wiem o twoim pierwszym pytaniu.

Co do tego, że serwer CI automatycznie aktualizuje pakiety, jest to wykonalne w teorii. Można połączyć polecenia "List-Package -Installed" i "Update-Package" i zaktualizować każdy pakiet do najnowszej wersji. Więcej szczegółów można znaleźć w command reference.

Scott Guthrie says this na temat:

„można zintegrować z opcji wiersza polecenia z roztworem CI i wykonać polecenie update-pakiet wyraźnie jak część procesu kompilacji/CI, aby ciągnąć dół aktualizacji. Szczerze mówiąc nie jestem pewien że sens dla scenariuszy my mówisz, choć, jak zazwyczaj chcesz jakiś dev zdecydować przed aktualizacją Runtime rdzeniową zależność do nowej wersji. NuPack użytkownika domyślny model miałby programistę używać NuPack do zainstalowania biblioteki - i NuPack automatycznie sprawdziłby pakiet i zależności od źródła kontroli. W ten sposób inny dev (lub serwer CI) nie musiałby ponownie używać NuPack - mogliby po prostu zsynchronizować swoje źródło i kompilację . Ale jak już wspomniano wcześniej - jeśli chciał wyraźnie zrobić aktualizację jako część procesu CI mogłeś „

Edit.

Po komentarzu widzę jaki jesteś próbuję osiągnąć.Znalazłem this long thread na liście dyskusyjnej NuPack na temat problemu.Najlepsze rozwiązanie nie będzie częścią v1.Opcjonalne zadanie budowania w wybranym CI i konfiguracji w repo dla niego jest jedynym rozwiązaniem, które widzę Proszę złożyć raport wraz ze swoimi odkryciami Zainteresował mnie

+0

Cóż, nie chcę najnowszej wersji, chcę podanej - Po prostu nie chcę plików binarnych w repozytorium (jako że zwiększa to rozmiar repozytorium DCVS z każdą nową wersją). – Fionn

+0

OK, ten rodzaj ma sens. Możesz umieścić listę nazw pakietów i wersji w repozytorium, a następnie przekonwertować je za pomocą komendy "Add-Package -Version". – PHeiberg

+0

Znaleziono ostatnią dyskusję na ten temat. Zobacz moją edycję. – PHeiberg

5

Istnieje aktualna dyskusja na temat tego pytania pod numerem Phil Haack's blog, w którym prosi o opinie na temat rozwiązania tego problemu.