2013-02-21 14 views
54

Ok. Naprawdę szybkie pytanie, prawdopodobnie jestem po prostu gruby.Najlepszy sposób dodawania pakietów NuGet jako odniesień do projektów w VS2012?

Po kliknięciu prawym przyciskiem myszy folderu referencji projektów, a następnie "Zarządzania pakietami NuGet" można następnie zainstalować pakiety i są one automatycznie przywoływane przez projekt, który kliknięto. Ale potem chcę dodać to samo odniesienie do innych projektów w tym samym rozwiązaniu. Jeśli powtórzysz poprzedni, ale klikniesz na inny projekt, jedyną opcją jest odinstalowanie pakietu (ponieważ jest już zainstalowany), jaki jest właściwy sposób dodania istniejącego (już zainstalowanego) pakietu NuGet jako odniesienia do projektu? Czy mogę dodać odwołanie za pomocą normalnego okna dialogowego i "przeglądać" do biblioteki dll w folderze paczek? Użyj jednej metody, aby dodać pierwsze odniesienie, a następnie kolejne dla kolejnych odniesień? To nie wydaje się właściwe.

Odpowiedz

80

Można użyć Manage NuGet packages for Solution... przez:

  • prawym przyciskiem myszy na rozwiązanie
  • Tools > Library Package Manager > Manage NuGet packages for Solution

Następnie można wybrać w którym wystaje zainstalować pakiet jak na screenie poniżej: enter image description here Dodatkowo wy można dodać zainstalowany pakiet do innych projektów w roztworze, używając tego samego Manage NuGet packages for Solution.... enter image description here

+0

Aby zainstalować/usunąć pakiety z systemu, należy użyć menu kontekstowego poziomu projektu, a także dodać/usunąć referencje z projektu, używając menu kontekstowego poziomu rozwiązania. Dobrze. Dzięki za odpowiedź. Każdy pomysł, co powoduje, że projekt jest sprawdzany w oknie dialogowym "Wybierz projekty", Mam projekt, który jest sprawdzany, ale nie ma odniesienia do pakietu, a kiedy go odznaczam, po prostu wraca. –

+0

Got it: packages.config. –

17

Inna odpowiedź tutaj nie pomogła mi. Oto co zrobiłem, nie znam innego sposobu, aby to zrobić. Używam VS 2013.

  • Zainstalowałem pakiet w konsoli programu Package Manager, na przykład PM> Install-Package Newtonsoft.Json
  • W Solution Explorer, kliknij prawym przyciskiem odniesień, wybierz Add Reference
  • Kliknij przycisk Przeglądaj i przejdź do biblioteki dll w katalogu pakietów w folderze roztworu.

Dodaje względną ścieżkę do odnośnika do projektu, więc powinna działać z innymi osobami, pobierającymi kod z kontroli kodu źródłowego do różnych katalogów.

+1

Jest jeden problem z tym podejściem: kiedy w przyszłości będziesz chciał zaktualizować ten pakiet, Nuget nie obsłuży go automatycznie w twoim projekcie. W rezultacie otrzymasz różne projekty odnoszące się do różnych wersji tego samego pakietu. A to doprowadzi do wyjątków w środowisku wykonawczym.Najlepiej więc dodać referencje za pomocą menedżera pakietów Nuget, a nie ręcznie. – steavy

1

Miałem ten sam problem. Rozwiązanie opublikowane przez kristianp działa zgodnie z oczekiwaniami, ale może być nieco uciążliwe, gdy mamy do czynienia z dużą ilością pakietów. Rozwiązaniem, że pracował dla mnie było po prostu edytować myProjectName.csproj plik w Notatniku, a po prostu skopiować i wkleić referencje z innego projektu tak:

... 

<ItemGroup> 
    <Reference Include="Microsoft.AspNet.SignalR.Core"> 
     <HintPath>..\packages\Microsoft.AspNet.SignalR.Core.2.1.2\lib\net45\Microsoft.AspNet.SignalR.Core.dll</HintPath> 
    </Reference> 
    <Reference Include="Microsoft.AspNet.SignalR.SystemWeb"> 
     <HintPath>..\packages\Microsoft.AspNet.SignalR.SystemWeb.2.1.2\lib\net45\Microsoft.AspNet.SignalR.SystemWeb.dll</HintPath> 
    </Reference> 

    ... 

Hope this helps kogoś. Oszczędziło mi to dużo klikania :)

Powiązane problemy