2011-07-06 12 views
15

Próbuję odinstalować niektóre pakiety zainstalowane przez NuGet. Zgodnie z dokumentem opisanym pod numerem here powinienem zobaczyć przycisk Odinstaluj (pierwszy zrzut ekranu poniżej) po wybraniu zainstalowanego pakietu. Jednak widzę tylko przycisk Zarządzaj (drugi zrzut ekranu poniżej). Czy ktoś może mi powiedzieć, jak odinstalować pakiety?Problem z odinstalowaniem pakietów NuGet

NuGet Doc Screenshot

My Screenshot

Odpowiedz

12

Wreszcie znalazłem musiałem ręcznie edytować plik rozwiązania .sln i usunąć te linie:

GlobalSection(ExtensibilityGlobals) = postSolution 
     EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.Interception.2.1.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35 
EndGlobalSection 

Po usunięciu powyższych linii w pliku rozwiązania, te pakiety zniknął w Nuget Pakiety Window „Zainstalowane pakiet ". Został tylko jeden pakiet i widzę teraz przycisk "Odinstaluj".

enter image description here

EDIT: miałem też usunąć folder Pakiety w moim katalogu rozwiązań.

+1

W moim przypadku nie było żadnych odniesień w pliku rozwiązania, ale usunięcie folderu pakietu z katalogu pakowanego załatwiło sprawę. –

+1

+1 W moim przypadku miałem referencje w moim pliku rozwiązania, ale wystarczy usunąć folder pakietu w katalogu pakietów. – fiberOptics

+0

Możesz to zrobić za pomocą konsoli menedżera pakietów, co wyjaśnię w mojej odpowiedzi. I nie możesz być absolutnie pewny, że robisz wszystko, co musisz. Używanie konsoli programu Package Manager jest bezpieczniejsze pod tym względem. – JotaBe

13

Jeśli przewinąć w dół do sekcji Managing Installed Packages strony dokumentacji Nuget jesteś związany z was będzie widoczny przycisk i wyjaśnienie Zarządzaj.

Wprowadzono nową funkcję umożliwiającą wybór rozwiązania w eksploratorze rozwiązań i dodawanie/usuwanie pakietów z wielu projektów w jednym kroku. Poprzednio trzeba było wybrać każdy projekt w Eksploratorze rozwiązań i dodawać/usuwać pakiet z każdego projektu pojedynczo.

Po kliknięciu przycisku Zarządzaj zostanie wyświetlone okno dialogowe Wybierz projekty, w którym można odznaczyć projekty, z których ma zostać odinstalowany pakiet NuGet.

enter image description here

przypadku wybrania projektu zamiast roztworu w Solution Explorer można dodawać/usuwać pakiety z tego wybranego projektu. W takim przypadku zobaczysz tylko przyciski Zainstaluj i Odinstaluj.

+2

ale nie usuwa pakietów z mojego rozwiązania. Pakiety są nadal wyświetlane na stronie "Zainstalowane pakiety" z przyciskami "Zarządzaj" obok nich. W moim katalogu rozwiązań znajduje się także folder "packages". Czy wiesz, jak usunąć pakiety ze strony "Zainstalowane pakiety"? Dziękuję Ci. – StarCub

+1

Pakiety są usuwane z rozwiązania tylko wtedy, gdy nie jest ono zainstalowane w żadnych projektach. Więc jeśli nie odkażesz wszystkiego, nadal będzie on zainstalowany w rozwiązaniu. Możesz zobaczyć, jaki projekt ma pakiet, jeśli spojrzysz na panel szczegółów w oknie dialogowym poziomu rozwiązania. – davidfowl

0

Miałem problem z usunięciem Code first lib CTP5, który miał zależności, deinstalator nie zwrócił żadnej wiadomości i nie usunął niczego. Usuń referencje z pliku packages.config, które należy usunąć. Po tym czasie nie będzie już wyświetlany w nuget i można go ponownie zainstalować lub kontynuować bez.

8

Czasami istnieją zależności, które uniemożliwiają odinstalowanie pakietu, ale mimo to należy to zrobić (np. Jeśli przypadkowo zainstalujesz dwie różne wersje pakietu z zależnościami).

W takim przypadku jedynym sposobem na odinstalowanie pakietów jest wymuszenie deinstalacji, a można tego dokonać tylko za pomocą konsoli programu Package Manager.

Przed przejściem do Konsoli należy otworzyć okno Zarządzaj pakietami NuGet i zanotować identyfikator i wersję pakietu, która pojawi się na prawym panelu po kliknięciu na pakiet.

Następnie można zamknąć okno Zarządzanie i otwórz konsolę (menedżer pakietów Console) i uruchom polecenie:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion 

Uwaga Parametr -Force. Na przykład

uninstall-package -Id Unity -Force -Version 3.0.1304.0 

Komenda ta pozwala odinstalować wersję 3, gdy jest zainstalowany równolegle z wersji 2, które nie mogą być wykonane throgh oknie Manage.

0

Po użyciu okna dialogowego Zarządzanie pakietami NuS programu VS IDE lub konsoli menedżera pakietów konieczne może być ręczne usunięcie plików rozwiązania lub innych plików w systemie plików, które są częścią pakietu, a nie w folderze paczek.

Przeglądałem pakiet Microsoft.AspNet.FriendlyUrls, który dodał stronę wzorcową, kontrolkę użytkownika, plik kodu klasy i plik packages.config do mojego projektu/rozwiązania aplikacji WWW ASP.NET. Popełniłem błąd, aby ręcznie cofnąć/usunąć te pliki z rozwiązania przed użyciem okna dialogowego Pakiety NuGet, aby usunąć pakiet. W tym momencie wszystko się zmieszało.

Jak powiedzieli inni, usunięcie folderu paczek było rozwiązaniem. Ale potem musiałem ręcznie wymyślić inne pliki poza tym folderem, które również powinny zostać usunięte.

2

Ostatnio miałem podobne problemy. Mój projekt działał dobrze, ale nie mogłem już dodawać ani usuwać żadnych pakietów za pośrednictwem Menedżera pakietów NuGet, ponieważ biblioteka EnterpriseLibrary 5.0.505 została pokazana jako brakująca w źródle. Ale próba przywrócenia lub usunięcia nie powiodła się z błędem "nie można znaleźć wersji" 5.0.505 pakietu "EnterpriseLibrary" ".

Wywiodłem to do konieczności następujące odniesienie w pliku packages.config:

<package id="EnterpriseLibrary" version="5.0.505" targetFramework="net4" /> 

Porównując to z innymi rozwiązaniami, do którego dodałem pakiet ostatnio zmieniłem go dodaje, która stała problem:

<package id="EnterpriseLibrary.Common" version="5.0.505.0" targetFramework="net4" /> 

Nigdy nie edytowałem ręcznie żadnych plików packages.config, więc nie wiem, jak doszło do niezgodności. Może odniesienie zmieniło się, ponieważ pierwotnie zawierało pakiet bez aktualizacji pliku konfiguracyjnego ...?