Dodałem ostatnią funkcję przywracania pakietu NuGet do rozwiązania przy użyciu opcji „Włącz przywracanie pakietu NuGet”: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Jednak zepsuło to mój serwer kompilacji i nie miałem czasu go naprawić, więc chciałem go usunąć. O ile wiem, nie ma takiej opcji, więc ręcznie usunąłem następujący wiersz ze wszystkich moich plików * .csproj:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
Problem polega na tym, że za każdym razem, gdy moje pliki * .csproj są wyewidencjonowywane lub otwierają moje rozwiązanie, wiersz jest automatycznie dodawany ponownie, co powoduje uszkodzenie kompilacji, jeśli przypadkowo ją sprawdzę :(
Jakieś pomysły, jak mogę to trwale usunąć?
AKTUALIZACJA: pomimo odpowiedzi poniżej, wciąż powraca przy otwieraniu rozwiązania, czy ktoś ma ten sam problem?
źródło
Odpowiedzi:
Nie wyglądałem zbyt dobrze, do plików projektu dodano kolejną właściwość:
Wystarczy ręcznie usunąć to, a także wszystkie te wiersze ze wszystkich plików * .csproj:
AKTUALIZACJA:
Okazuje się, że jest to trwały mały błąd, jeśli ręcznie edytujesz pliki projektu, pamiętaj, aby zamknąć rozwiązanie i usunąć wszystkie linie z projektu naraz , w przeciwnym razie zostaną one dodane ponownie po ponownym załadowaniu projektu ...
UPDATE2:
Usuń również folder .nuget z katalogu głównego rozwiązania
UPDATE3:
Późniejsza wersja NuGet dodaje kolejną sekcję, którą należy usunąć:
Aktualizacja4
Wewnątrz folderu
NuGet.Targets
znajdującego się w.nuget
folderze znajduje się kolejna sekcja, która jest dodawana do nowych projektów ... przełącz to na false.źródło
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
na końcu pliku .csproj znajduje się również plik .csproj, który należy ręcznie usunąć.Aby wyłączyć przywracanie pakietu Nuget:
Linie do usunięcia:
Uwaga: upewnij się, że dokonałeś wszystkich zmian za jednym razem, zanim ponownie załadujesz rozwiązanie, w przeciwnym razie doda je z powrotem.
Jest to oparte na następującym artykule: http://bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html
Możesz również sprawdzić, czy ta opcja jest wyłączona: http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
źródło
Czy to nie jest to ustawienie tutaj?
Opcje ... -> Menedżer pakietów Nuget -> [odznacz] Zezwalaj Nuget na pobieranie brakujących pakietów
Używam programu Visual Studio Professional + Resharper 8.2
źródło
Restoring NuGet packages... To prevent NuGet from restoring packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages during build.'
jest to tylko potwierdzenie, że tak powinno być..nuget/
folder i modyfikował go tak,.csproj
aby odnosił się do.targets
pliku. Miałeś oddaćnuget.exe
to swojemu VCS (eww, rozwiązywanie problemu nuget rozwiązuje!) I taką brzydotę. Obecniemsbuild /restore
istnieje i wbudowane przywracanie pakietów VS. OP pyta, jak usunąć stary, zły sposób robienia rzeczy - a nie jak wyłączyć poprawną wbudowaną obsługę przywracania pakietów w VS.Rozwiązania korzystające obecnie z przywracania pakietów zintegrowanych z programem MSBuild można migrować do funkcji automatycznego przywracania pakietów. Z tego, co rozumiem, powinno to pomóc tym, którzy napotykają problemy z kompilacją CI. (Proszę mnie poprawić, jeśli się mylę).
Zapoznaj się z dokumentem w witrynie internetowej NuGet: Migrowanie rozwiązań zintegrowanych z MSBuild w celu użycia funkcji automatycznego przywracania pakietów pod adresem http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Znajdują się tam informacje dotyczące konwersji z TFS i bez niego.
David Ebbo opublikował również informacje na http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html
źródło
Właściwie mamy wpis na blogu na ten temat, a na końcu wpisu wspomniano o skrypcie PowerShell, który ma pomóc w migracji.
http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
źródło
NuGet zawiera wpis w blogu dotyczący migracji do automatycznego przywracania pakietów: http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
W poście na blogu znajduje się odwołanie do skryptu PowerShell , który zajmie się automatycznym (i rekurencyjnym) usunięciem niezbędnych wierszy : https://github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1
Oferowanie opcji Wyłącz przywracanie pakietu NuGet bezpośrednio jest oznaczane jako nie zostanie naprawione: https://nuget.codeplex.com/workitem/1883
źródło
Zastosowałem przyjęte rozwiązanie bezskutecznie, korzystając z 2012 r. To jednak zadziałało,
<RestorePackages>true</RestorePackages>
do<RestorePackages>false</RestorePackages>
i usuń<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
linięnuget.exe
nanuget.exe.NotExe
źródło
Dla każdego, kto nadal potrzebuje oczyścić projekt przy użyciu przywracania pakietu NuGet w starym stylu, dostępne tutaj narzędzie IFix automatyzuje ten proces.
Po prostu uruchom instalator (
IFix
zostanie dodany doPATH
), a następnie uruchom:Możesz najpierw uruchomić go w trybie sprawdzania, aby zobaczyć, co wyczyści:
źródło
Miałem ten sam problem. Co ostatecznie zrobiłem: 1) wejdź do każdego pliku .csproj projektu w rozwiązaniu, otwórz go w notatniku, a następnie usunąłem część pliku xml i zapisałem.
2) Następnie usunąłem wszystkie pliki package.config w całym rozwiązaniu.
3) Następnie musiałem usunąć .nuget i foldery pakietów.
W tym momencie miałem całkowicie darmowe rozwiązanie NuGet.
4) Następnie ręcznie odwołałem się do potrzebnych bibliotek DLL i uruchomiłem kompilację, a rozwiązanie działało jak mistrz bez potrzebnych pakietów NuGet.
źródło
Przejdź do katalogu rozwiązania, w którym znajduje się
[$(SolutionDir)\.nuget\nuget.targets] .nuget
folder inuget.targets
plik, usuń folder i po raz ostatni zmień usuń linie z csproj .Problem nie wróci, aby Cię ponownie wkurzyć.
źródło
Usuń plik packages.config w swoim rozwiązaniu.
źródło
Przypadkowo włączyłem tę opcję "przywracania pakietu" podczas otwierania mojego projektu w VS2012 RC i zacząłem otrzymywać błędy, które wyglądały mniej więcej tak:
„Błąd 1 Nie można zlokalizować„ C: \ FolderX \ SomeProject.nuget \ nuget.exe ””
Aby naprawić błąd, postępowałem zgodnie z powyższymi instrukcjami, otworzyłem każdy plik projektu w notatniku i usunąłem tę linię RestorePackage.
źródło
Udało mi się rozwiązać ten problem, wykonując następujące czynności:
1) upewnij się, że wykonałeś kopię zapasową wszystkich aktualnie wyewidencjonowanych zmian plików.
2) Fizycznie usuń folder rozwiązania ze swojego C: \ (ścieżka zamapowana na TFS).
3) pobierz najnowsze informacje z programu TFS dla swojego rozwiązania.
4) skopiuj (jeśli istnieją) zmiany z kopii zapasowej wykonanej w kroku 1.
mam nadzieję, że to pomoże!
źródło
Natknąłem się na ten sam problem i próbowałem usunąć wszystkie tagi .nuget i RestorePackage z plików projektu, ale jeden projekt po prostu nie ładował się ponownie, bez względu na to, jak dokładnie go zbadałem pod kątem tagów .nuget i RestorePackages. Myślę, że gdzieś są jakieś ukryte odniesienia do tego.
Ostatecznie łatwiej było po prostu skopiować pliki i stworzyć nowy projekt i zaimportować go do rozwiązania.
źródło
Nuget jest do bani. Po prostu usuń nugets i usuń lub skomentuj elementy pakietu z packages.config w katalogu głównym projektów, w których jest to problem. Zamiast tego użyj bezpośrednich odwołań do jakiegoś folderu lib.
źródło