Come installo localmente un file .nupkg del pacchetto NuGet?


Risposte:


465

Strumenti menu → OpzioniGestione pacchetti

Inserisci qui la descrizione dell'immagine

Dai un nome e la posizione della cartella. Clicca OK. Rilascia i file del pacchetto NuGet in quella cartella.

Vai al tuo progetto, fai clic con il pulsante destro del mouse e seleziona "Gestisci pacchetti NuGet" e seleziona la nuova fonte del pacchetto.

Inserisci qui la descrizione dell'immagine

Ecco la documentazione .


22
In realtà, ho fatto il passaggio 1 alcune volte. Ma il mio pacchetto non viene visualizzato nel passaggio 2, quando apro per visualizzare Pacchetti installati, Aggiornamenti o Pacchetti recenti.
Tom,

2
Sul mio schermo, ho solo "Tutto" in "Pacchetti installati" e non "Origine pacchetto ufficiale NuGet", non il mio "newNuget" personalizzato, mancano.
Tom,

1
Sto usando vs2010. Sto provando a scaricare e installare l'ultimo nuget dalla loro homepage proprio ora. Download fare clic su Avanti successivo ... quindi errore ... M $ come previsto, c'è un collegamento di problemi noti, verificato che, dice mancata corrispondenza della firma, quindi devo disinstallare il nuget esistente ed è una soluzione semplice. bene, fallo. Quando riavvio il computer e installo di nuovo, lo stesso errore ritorna, mancata corrispondenza della firma ... quindi ora sono bloccato con la vecchia versione andata, la nuova versione non vuole installare.
Tom,

2
Problema risolto. Ho disinstallato Nuget da Windows -> pannello di controllo. Non ha funzionato in questo modo. Avevo bisogno di avviare VS e andare su Strumenti-> Extension Manager ... quindi premere Disinstalla Nuget da lì. Riavviato VS. Quindi è andato di nuovo a installare nuget, ha funzionato. Ora vengono visualizzati anche i file nupkg locali (modifica: si trovano nella scheda Online, non nella scheda Installato, il mio errore nell'immagine che inserisco). Grazie per l'aiuto :)
Tom,

1
Non ho ancora abbastanza reputazione per commentare, ma per rispondere a Michael nei commenti con risposta accettata su VS2015 voglio ancora andare online. Ho avuto lo stesso problema, ma nelle opzioni, se deselezioni tutte le fonti online, funziona per quelle offline. nuget Opzioni foto
Mick m

302

È inoltre possibile utilizzare la Console di gestione pacchetti e richiamare il Install-Packagecmdlet specificando il percorso della directory che contiene il file del pacchetto nel -Sourceparametro:

Install-Package SomePackage -Source C:\PathToThePackageDir\

2
posso fare qualcosa del genere anche con lo strumento da riga di comando?
Poul K. Sørensen,

5
Sì. L' -Sourceopzione è disponibile anche in nuget.exe . Ad esempio:nuget install SomePackage -Source C:\PathToThePackageDir
Enrico Campidoglio,

16
Potrebbe essere necessario specificare anche il flag -IncludePrerelease. Altrimenti, se la versione del pacchetto ha un trattino (ad esempio "-beta1"), Install-Package non lo troverà.
Jeff Sharp,

9
Questa è una risposta molto più diretta di quella accettata. Grazie per le informazioni!
David Peters,

2
Non funziona per VS 2017, vedi f.ex. risposta di @Granger.
RenniePet

124

Per i file .nupkg mi piace usare:

Install-Package C:\Path\To\Some\File.nupkg

7
L'unica cosa che ha funzionato. Se il percorso della directory contiene spazi, includilo tra virgolette doppie.
Nikos,

4
Essere d'accordo. E vale la pena ricordare che funzionano solo percorsi assoluti
Sebastian J.

5
Non funziona per VS 2017, vedi f.ex. risposta di @Granger.
RenniePet

1
@RenniePet che ha funzionato per me in VS2017 (ma avevo già inserito il mio .nupkgnella stessa directory in cui erano memorizzati tutti gli altri pacchetti)
Rafalon

1
Non funziona per me, sto usando VS2013 Versione 12.0.21..5 e Nuget Package Manager 2.12.0.817 :(
Niraj Trivedi

56

Per Visual Studio 2017 e il suo nuovo formato .csproj

Non è più possibile utilizzare Install-Package per puntare a un file locale. (Probabilmente perché l' PackageReferenceelemento non supporta i percorsi dei file; ti consente solo di specificare l'ID del pacchetto.)

Devi prima dire a Visual Studio la posizione del tuo pacchetto, quindi puoi aggiungerlo a un progetto. Ciò che la maggior parte delle persone fa è accedere a Gestione pacchetti NuGet e aggiungere la cartella locale come origine (menu StrumentiOpzioniGestione pacchetti NuGetSorgenti pacchetto ). Ciò significa che la posizione della tua dipendenza non è impegnata (nel controllo della versione) con il resto della tua base di codice.

Pacchetti NuGet locali che utilizzano un percorso relativo

Ciò aggiungerà un'origine pacchetto che si applica solo a una soluzione specifica e sarà possibile utilizzare percorsi relativi.

Devi creare un nuget.configfile nella stessa directory del tuo .slnfile. Configura il file con l'origine del pacchetto che desideri. Alla successiva apertura della soluzione in Visual Studio 2017, saranno disponibili tutti i file .nupkg da tali cartelle di origine. (Vedrai le fonti elencate in Gestione pacchetti e troverai i pacchetti nella scheda "Sfoglia" quando gestisci i pacchetti per un progetto.)

Ecco un esempio nuget.configper iniziare:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="MyLocalSharedSource" value="..\..\..\some\folder" />
    </packageSources>
</configuration>

backstory

Il mio caso d'uso per questa funzionalità è che ho più istanze di un singolo repository di codice sulla mia macchina. C'è una libreria condivisa all'interno della base di codice che viene pubblicata / distribuita come file .nupkg. Questo approccio consente alle varie soluzioni dipendenti in tutto il nostro codice di base di utilizzare il pacchetto all'interno della stessa istanza del repository. Inoltre, qualcuno con una nuova installazione di Visual Studio 2017 può semplicemente controllare il codice dove vuole e le soluzioni dipendenti verranno ripristinate e compilate correttamente.


Sto usando VS 2017 e non ho riscontrato questo problema. Ho appena passato l' -Sourceargomento Update-Packagee ha funzionato bene. Forse qualcosa a che fare specificamente con il Install-Packagecomando?
Greg Burghardt,

48
  1. Aggiungi i file in una cartella chiamata LocalPackages accanto alla tua soluzione (non è necessario chiamarla così, ma regola di conseguenza l'xml nel passaggio seguente)
  2. Creare un file chiamato NuGet.config accanto al file della soluzione con i seguenti contenuti

    <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <add key="LocalPackages" value="./LocalPackages" />
        </packageSources>
        <activePackageSource>
          <!-- this tells that all of them are active -->
          <add key="All" value="(Aggregate source)" />
        </activePackageSource>
     </configuration>
  3. Se la soluzione è aperta in Visual Studio, chiudila, quindi riaprila.

Ora i tuoi pacchetti dovrebbero apparire nel browser o essere installabili usando Installa-Pacchetto


Risposta fantastica, esattamente la soluzione che stavo cercando. Grazie!
Jonathan,

1
Questo potrebbe essere dovuto al fatto che ho un pacchetto con lo stesso nome di quello nel repository Nuget, ma avevo bisogno di utilizzare la console di gestione pacchetti e selezionare l'origine del pacchetto come LocalPackages prima di eseguire Install-Package.
Luca,

42

Se hai un file .nupkg e hai solo bisogno del file .dll, tutto ciò che devi fare è cambiare l'estensione in .zip e trovare la directory lib.


3
se lo tratti come un file zip, i file con spazio nel nome del file verranno estratti con% (sostituendo gli spazi). Per evitare questa installazione utilizzando NuGet.
Rahatur,

2
In realtà, non è nemmeno necessario rinominare l'estensione. Basta fare clic con il pulsante destro del mouse sul file, quindi scegliere Apri con, trovare un'applicazione in grado di aprire il file .zip e il file .nupkg può essere aperto, quindi è possibile estrarre il file dll necessario nella cartella designata.
jyao,

1
La migliore soluzione di cui ho bisogno
Leo Nguyen l'

8

Solo per dare un aggiornamento, ci sono piccole modifiche per gli utenti di Visual Studio 2015.

Per utilizzare o installare il pacchetto manualmente, andare su Strumenti -> Opzioni -> Gestione pacchetti NuGet -> Sorgenti pacchetto

Fai clic sul pulsante Aggiungi, scegli la fonte e non dimenticare di fare clic su " Aggiorna " in quanto aggiornerà la posizione della cartella per i tuoi pacchetti, modifica il nome desiderato della fonte dei pacchetti se vuoi:

inserisci qui la descrizione dell'immagine

Per scegliere il pacchetto aggiunto, fai clic con il pulsante destro del mouse sulla soluzione e seleziona " Gestisci pacchetti Nuget "

L'elenco a discesa si trova sulla destra e scegliere Sfoglia per sfogliare i pacchetti specificati sull'origine della cartella. Se non esiste un pacchetto nuget sull'origine della cartella, questo sarà vuoto:

inserisci qui la descrizione dell'immagine


6

Su Linux, con l'interfaccia della riga di comando di NuGet, i comandi sono simili. Per installare my.nupkg, esegui

nuget add -Source some/directory my.nupkg

Quindi eseguire dotnet restoreda quella directory

dotnet restore --source some/directory Project.sln

o aggiungi quella directory come sorgente NuGet

nuget sources Add -Name MySource -Source some/directory

e quindi dire msbuilddi usare quella directory con /p:RestoreAdditionalSources=MySourceo /p:RestoreSources=MySource. Il secondo interruttore disabiliterà tutte le altre fonti, il che è utile per scenari offline, ad esempio.


1
Su Mac (presumo anche Linux), non puoi fare affidamento nuget sourcesse stai usando dotnet restore(o VS Mac ) a causa di questo bug. Ho dovuto aggiungere ~/.nuget/NuGet/NuGet.Configmanualmente la fonte locale a (vedi questo problema GH ).
Gabe,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.