2012-08-07 11 views
5

Tak, mam włączony pakiet odtworzyć na moich rozwiązań - Install-Package NuGetEnablePackageRestoreSztuczki TFS NuGet, których jeszcze nie znam?

mam zainstalowane i zaktualizowane Nuget na TFS Buduj Server

Utworzyłem zmienną środowiskową na TFS Budowanie Serwer - http://www.centrolutions.com/blog/post/2012/07/05/NuGet-and-TFS-2010-Automated-Build.aspx

Usunąłem wszystkie moje pliki packages.config i zacząłem od nowa w każdym projekcie.

Dodałem .nuget ścieżkę folderu do pracy tworzenia, wraz z definicją Budowanie agencie Folder

Mam prawie skończyłem pętlę i plan na powieszenie się o świcie ... jest tam coś, co "brakuje?

Zapomniałeś umieścić TFS zbudować błędy

C: \ Buduje \ 10 \ ....... nuget.targets Nuget (76): Pakiet przywrócić jest domyślnie wyłączona. Aby wyrazić zgodę, otwórz okno dialogowe Opcje Visual Studio, kliknij węzeł Menedżer pakietów i zaznacz opcję "Pozwól NuGet pobierać brakujące pakiety podczas kompilacji". Możesz również wyrazić zgodę, ustawiając zmienną środowiskową "EnableNuGetPackageRestore" na "true".

i

C: \ buduje \ 10 ....... nuget.targets Nuget \ (76): Rozkaz "" C: \ buduje \ 10 ....... Nuget \ nuget.exe "zainstaluj" C: \ Builds \ 10 ...... \ packages.config "-source" "-o" C: \ Builds \ 10 ...... \ packages "" zakończone kodem - 1.

Usunięto pełną ścieżkę bezpieczeństwa.

DISCOVERY:

Mój administrator TFS ustawić zmienną środowiskową jako zmienna użytkownika! Po prostu pomyślałem, że poprosiłbym ją, żeby pokazała mi dokładnie, jak to skonfigurowała i jak tylko to zrobiła, zdałam sobie sprawę, że to było złe.

Nie otrzymuję już błędu przywracania pakietu ... wooo! Pojawiają się jednak błędy "Nie mogę znaleźć wersji", co powoduje, że myślę, że pole TFS nie zna właściwych źródeł pakietów. Sprawdziłem, że źródło pakietu jest dostępne z pola budowania TFS, również skonfigurowałem NuGet na tym polu, aby mieć odniesienie do udziałów pakietu.

Czy można to zrobić bez serwera paczek? Używam udziałów plików dla wszystkich moich lokalnych kompilacji, ale zastanawiam się, czy reguły zmieniają się, gdy trafi w pole TFS. Czy muszę zdefiniować źródła pakietów w pliku Nuget.config?

+1

Jaki jest problem? Jakikolwiek komunikat o błędzie? –

Odpowiedz

2

Problem polegał na tym, że administrator TFS użył "zmiennej użytkownika" dla zmiennej środowiskowej EnableNuGetPackageRestore. Nigdy bym się nie domyślił to tuż nietoperza :(.

poszedłem i patrzył skonfigurować go ponownie, i zauważyłem, że to było złe ... miała go poprawić, a teraz działa poprawnie.

Dziękuję za radę!

+2

i kontroler/usługa budowy TFS e/agent musi zostać zrestartowany, chyba że sam serwer został zrestartowany. – talisker

2

Począwszy od NuGet 2.0, musisz wyrazić zgodę na pobieranie pakietów podczas kompilacji (ochrona prywatności). Więcej informacji: http://blog.nuget.org/20120518/package-restore-and-consent.html

Dodano opcję wyrażenia zgody w interfejsie za pomocą programu NuGet Package Manager 1.8. Jest to trzecia pozycja w menu Narzędzia-> Opcje-> Menedżer pakietów-> Ogólne: "Przywracanie pakietu: Pozwól NuGet pobierać brakujące pakiety podczas kompilacji".

Alternatywnie można wyrazić zgodę, ustawiając zmienną środowiskową EnableNuGetPackageRestore na wartość true.

+0

Dzięki za sugestię, ale jak powiedziałem w swoim poście, stworzyłem zmienną środowiskową, a ponadto nie mogę sobie wyobrazić, że chciałbym muszą otworzyć każde rozwiązanie na serwerze kompilacji i ponownie włączyć przywracanie pakietów.Budowa serwera ma być bezgłowym systemem, który wymaga minimalnej interakcji. – farina

1

Jeśli przywrócić włączony pakiet, a następnie można skonfigurować źródła pakietów używając <PackageSources> elementem w NuGet.targets plik znajdziesz w katalogu $ (SolutionDir) .nuget folderu.

Czy można zweryfikować te punkty w poprawnej lokalizacji i czy ta ścieżka jest dostępna z serwera kompilacji?

Powiązane problemy