Beste manier om NuGet-pakketten toe te voegen als projectreferenties in VS2012?

Ok. Echt een snelle vraag, ik ben waarschijnlijk gewoon dik.

Als u met de rechtermuisknop op de ‘referenties’-map van een project klikt en vervolgens op ‘NuGet-pakketten beheren’, kunt u pakketten installeren en er wordt automatisch naar verwezen door het project waarop u hebt geklikt. Maar dan wil ik dezelfde verwijzing naar andere projecten in dezelfde oplossing toevoegen. Als u het vorige herhaalt maar op een ander project klikt, is de enige optie om het pakket te verwijderen (omdat het al is geïnstalleerd), wat is dan de juiste manier om een ​​bestaand (reeds geïnstalleerd) NuGet-pakket toe te voegen als projectreferentie? Moet ik de verwijzing toevoegen met behulp van de normale dialoog en ‘bladeren’ naar de dll in de pakkettenmap? Een methode gebruiken om de eerste referentie toe te voegen en vervolgens een andere voor volgende referenties? Dat lijkt niet juist.


Antwoord 1, autoriteit 100%

U kunt Manage NuGet packages for Solution...door:

  • rechts klikken op oplossing
  • Tools > Library Package Manager > Manage NuGet packages for Solution

Vervolgens kunt u kiezen in welke projecten het pakket wordt geïnstalleerd, zoals op onderstaande schermafbeelding:

Bovendien kunt u een geïnstalleerd pakket toevoegen aan andere projecten in de oplossing met dezelfde Manage NuGet packages for Solution....


Antwoord 2, autoriteit 23%

Het andere antwoord hier heeft me niet geholpen. Dit is wat ik deed, ik weet geen andere manier om het te doen. Ik gebruik VS 2013.

  • Ik heb het pakket geïnstalleerd in de Package Manager Console, b.v.
    PM> Install-Package Newtonsoft.Json
  • Klik in de Solution Explorer met de rechtermuisknop op referenties, selecteer Referentie toevoegen
  • Klik op Bladeren en navigeer naar de dll in de map packages onder de map van de oplossing.

Dit voegt een relatief pad toe voor de verwijzing naar het project, dus het zou moeten werken met andere mensen die de code van bronbeheer in verschillende mappen krijgen.


Antwoord 3, autoriteit 2%

Ik had hetzelfde probleem. De oplossing gepost door kristianpheeft gewerkt zoals verwacht, het kan echter een beetje omslachtig zijn bij het omgaan met veel pakketten. De oplossing die voor mij werkte, was om het bestand myProjectName.csprojin het kladblok te bewerken en om referenties van een ander project als volgt te kopiëren en plakken:

...
<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>
    ...

Ik hoop dat dit iemand helpt. Het heeft me veel klikken bespaard 🙂


Antwoord 4

Tegenwoordig gebruik ik de Package Manager Console(View->Other Windows->Package Manager Console).

De kans is groot dat je ooit de volgende twee commando’s nodig hebt:

install-package <package-name> [-version <version-number>] [-project <project-name]

en

update-package <package-name> [-reinstall] [-version <version-number>] [-project <project-name>]

waar

  • Delen tussen vierkante haken [ ] zijn optioneel.
  • ‘install-package’ wordt geïnstalleerd op het opgegeven project, of, indien niet opgegeven, het project dat is geselecteerd in de vervolgkeuzelijst ‘Standaardproject’ boven aan het opdrachtvenster.
  • ‘update-package’ zal wijzigingen toepassen op elk project, tenzij een project is gespecificeerd.
  • ‘-reinstall’ betekent deïnstalleren en vervolgens het pakket opnieuw installeren met hetzelfde versienummer.

In eerste instantie dacht ik dat het gedrag van deze commando’s een beetje raar was, maar uit ervaring zie ik dat ze op deze manier het meest bruikbaar zijn. Hoewel ik persoonlijk de vervolgkeuzelijst ‘Standaardproject’ volledig zou weggooien.

Other episodes