2012-02-14 15 views
7

Włączono opcję Przywracanie pakietu w moim rozwiązaniu, więc po załadowaniu kodu do serwera CI aktualizuje on wszystkie pakiety, które musi poprawnie zbudować i działa doskonale. Problem polega na tym, że na moim komputerze lokalnym kompilacja trwa długo, ponieważ "aktualizuje pakiety". Czy istnieje sposób na włączenie Pakietu przywracania tylko w wersji wydania?Zapobieganie pakietowi NuGet Restore w kompilacjach debugowania Tylko

Próbowałem przenieść własność <RestorePackage> w plikach .csproj do sekcji release/debug z false i true, ale Nuget aktualizuje atrybut gdy otwarta konsola Nuget i resetuje zarówno true; Próbowałem również włączyć tę właściwość tylko w sekcji wydania, ale potem NuGet dodaje ją do sekcji globalnej ... więc nie miałem szczęścia, aby pozostało tak, jak chcę ...

Jakaś rada?

Odpowiedz

15

Prawdopodobnie udało się odpowiedzieć na to teraz, ale jeśli nie, to są kroki trzeba wykonać

Prawy gdzie plik rozwiązanie jest w systemie Windows nie powinno być folder o nazwie .nuget. Zmień nazwę lub usuń ten folder.

teraz otworzyć każdy .csproj lub .vbproj plik w Notatniku lub innym edytorze tekstu i usunąć te linie

<RestorePackages>true</RestorePackages> 
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" /> 

Ważną częścią jest usuwanie/zmiana nazwy folderu .nuget. To powinno całkowicie wyłączyć przywracanie pakietów.

Edycja: Aby przywrócić pakiet selektywnie wyłączyć do debugowania buduje edytować plik Nuget.settings.targets i zmodyfikować następujący wiersz

<RestorePackages Condition="$(RestorePackages) == ''">false</RestorePackages> 

Aby

<RestorePackages Condition="$(RestorePackages) == '' AND '$(Configuration)' == 'Debug'">false</RestorePackages> 

Plik Nuget.settings.targets jest w folderze .nuget, który powinien znajdować się w tym samym folderze co plik rozwiązania.

+0

Cóż, nie chcę całkowicie usunąć Przywracania pakietów, chcę go wyłączyć w przypadku wersji Debug .... Nie chcę, aby działał, gdy znajduję się w moim lokalnym/dev komputerze, ale ja chcę, aby pobierał pakiety i wszystkie, gdy przesyłam je do serwera CI. – Jaime

+0

Dziękuję za sugestię edycji. – Jaime

+0

Myślę, że powinno to być OR w ostatecznym przykładzie, a nie AND - czyli $ (RestorePackages) == '' OR $ (konfiguracja) == 'Debugowanie'. –

Powiązane problemy