Gestire i pacchetti con la console di Visual Studio Gestione pacchetti (PowerShell)

La console Gestione pacchetti in Visual Studio usa i comandi di PowerShell per interagire con i pacchetti NuGet. È possibile usare la console quando non è possibile eseguire un'operazione tramite l'interfaccia utente Gestione pacchetti. È anche possibile usare i comandi dell'interfaccia della riga di comando dotnet o dell'interfaccia della riga di comando di NuGet nella console.

Questo articolo descrive come trovare, installare, aggiornare e disinstallare pacchetti NuGet con i comandi di PowerShell nella console di Gestione pacchetti. Per informazioni di riferimento complete sul comando di PowerShell della console Gestione pacchetti, vedere Informazioni di riferimento su PowerShell.

Importante

I comandi e gli argomenti di PowerShell in questo articolo sono specifici della console di Visual Studio Gestione pacchetti. Questi comandi differiscono dai comandi del modulo PackageManagement che è possibile usare in un ambiente PowerShell generale. Ogni ambiente include comandi che non sono disponibili nell'altro e i comandi con lo stesso nome possono differire nei relativi argomenti specifici.

Disponibilità della console

A partire da Visual Studio 2017, NuGet e NuGet Gestione pacchetti installare automaticamente quando si crea un oggetto . Carichi di lavoro correlati a NET in Visual Studio. È anche possibile installare il Gestione pacchetti selezionando Strumenti di codice Singoli>componenti>Gestione pacchetti NuGet nel Programma di installazione di Visual Studio.

È anche possibile cercare l'estensione nuGet Gestione pacchetti nei menu Strumenti>estensioni e Aggiornamenti o estensioni. Se non si è in grado di usare il programma di installazione delle estensioni in Visual Studio, è possibile scaricare l'estensione direttamente da https://dist.nuget.org/index.html.

La console Gestione pacchetti è incorporata nell'Gestione pacchetti per Visual Studio in Windows. Visual Studio Code e Visual Studio per Mac non includono la console. Visual Studio per Mac ha un'interfaccia utente per la gestione dei pacchetti NuGet e i comandi della console equivalenti sono disponibili tramite Interfaccia della riga di comando di NuGet. Per altre informazioni, vedere Installare e gestire pacchetti NuGet in Visual Studio per Mac.

Trovare e installare rapidamente un pacchetto

Per usare la console Gestione pacchetti per trovare e installare rapidamente un pacchetto:

  1. Aprire il progetto o la soluzione in Visual Studio e selezionare Strumenti>nuGet Gestione pacchetti> Gestione pacchetti Console per aprire la finestra della console di Gestione pacchetti.

  2. Nella console immettere Find-Package con una parola chiave per trovare il pacchetto da installare. Ad esempio, per trovare pacchetti che contengono la parola chiave elmah, eseguire il comando seguente. Se si conosce già il nome del pacchetto desiderato, ignorare questo passaggio.

    Find-Package elmah
    
  3. Dopo aver trovato il nome, usare il Install-Package comando per installare il pacchetto. Ad esempio, per installare il Elmah.MVC pacchetto, immettere:

    Install-Package Elmah.MVC
    

Per altre informazioni su questi comandi, vedere le sezioni Trovare un pacchetto e Installare un pacchetto.

Suggerimento

Molte operazioni della console dipendono dalla disponibilità di una soluzione con un nome di percorso noto aperto in Visual Studio. Se si dispone di una soluzione non salvata o nessuna soluzione, viene visualizzato l'errore Soluzione non aperta o non salvata. Assicurarsi di avere una soluzione aperta e salvata. Per correggere l'errore, creare e salvare una soluzione o salvare una soluzione non salvata.

Controlli della console

Per aprire la console Gestione pacchetti in Visual Studio, selezionare Strumenti>NuGet Gestione pacchetti> Gestione pacchetti Console dal menu in alto. La console è una finestra di Visual Studio che è possibile disporre e posizionare nel modo desiderato. Per altre informazioni, vedere Personalizzazione del layout delle finestre in Visual Studio.

Per impostazione predefinita, i comandi della console operano sull'origine del pacchetto e sul progetto specifici visualizzati nei controlli nella parte superiore della finestra:

Screenshot that shows the Package Manager Console controls for package source and project.

Se si seleziona un'origine del pacchetto o un progetto diverso, vengono modificati i valori predefiniti per i comandi successivi. Per eseguire l'override di queste impostazioni per singoli comandi senza modificare le impostazioni predefinite, la maggior parte dei comandi della console supporta -Source e -ProjectName opzioni.

Per gestire le origini dei pacchetti, selezionare l'icona a forma di ingranaggio, che apre la finestra di dialogo Opzioni>strumenti>NuGet Gestione pacchetti> Origini pacchetto. Il controllo accanto al selettore di progetto cancella il contenuto della console.

Screenshot that shows the Package Manager Console settings and clear controls.

Il pulsante all'estrema destra interrompe un comando a esecuzione prolungata. Ad esempio, l'esecuzione Get-Package -ListAvailable -PageSize 500 elenca i primi 500 pacchetti disponibili nell'origine predefinita, ad esempio nuget.org, che potrebbero richiedere alcuni minuti.

Screenshot that shows the Package Manager Console stop control.

Trovare un pacchetto

Per trovare un pacchetto nell'origine predefinita, usare Find-Package.

  • Per trovare ed elencare pacchetti che contengono determinate parole chiave:

    Find-Package <keyword1>
    Find-Package <keyword2>
    
  • Per trovare ed elencare i pacchetti il cui nome inizia con una stringa:

    Find-Package <string> -StartWith
    
  • Per impostazione predefinita, Find-Package restituisce un elenco di 20 pacchetti. Usare -First per visualizzare più pacchetti. Ad esempio, per visualizzare i primi 100 pacchetti, usare:

    Find-Package <keyword> -First 100
    
  • Per elencare tutte le versioni di un determinato pacchetto:

    Find-Package <PackageName> -AllVersions -ExactMatch
    

Installare un pacchetto

Per installare un pacchetto nel progetto predefinito, usare Install-Package <PackageName>. Il comando console Install-Package esegue le azioni seguenti:

  • Esegue la procedura descritta in Cosa accade quando viene installato un pacchetto NuGet.
  • Visualizza le condizioni di licenza applicabili nella finestra della console con contratto implicito. Se non si accettano le condizioni, è necessario disinstallare il pacchetto.
  • Aggiunge un riferimento al pacchetto nel file di progetto e in Esplora soluzioni sotto il nodo Riferimenti. È necessario salvare il progetto prima di poter visualizzare le modifiche nel file di progetto.

Per impostazione predefinita, Install-Package aggiunge il pacchetto al progetto predefinito specificato dalla finestra della console. Per aggiungere il pacchetto a un progetto che non è l'impostazione predefinita, usare l'opzione -ProjectName . Ad esempio, per aggiungere il Elmah.MVC pacchetto al progetto non predefinito UtilitiesLib , eseguire il comando seguente:

Install-Package Elmah.MVC -ProjectName UtilitiesLib

Disinstalla un pacchetto

Per disinstallare un pacchetto dal progetto predefinito, usare Uninstall-Package <PackageName>. Se è necessario trovare il nome del pacchetto, usare Get-Package per visualizzare tutti i pacchetti installati nel progetto predefinito.

Uninstall-Package esegue le azioni seguenti:

  • Rimuove i riferimenti al pacchetto dal progetto e dai formati di gestione. I riferimenti non vengono più visualizzati in Esplora soluzioni. Potrebbe essere necessario ricompilare il progetto per rimuovere il riferimento nella cartella bin .
  • Inverte le modifiche apportate all'installazione del pacchetto in app.config o web.config.
  • Rimozione delle dipendenze installate in precedenza se nessun pacchetto rimanente usa tali dipendenze.

Per disinstallare un pacchetto e tutte le relative dipendenze inutilizzate, eseguire:

Uninstall-Package <PackageName> -RemoveDependencies

Per disinstallare un pacchetto anche se altri pacchetti dipendono da esso, eseguire:

Uninstall-Package <PackageName> -Force

Aggiornare un pacchetto

Per aggiornare un pacchetto, usare Get-Package e Update-Package. È possibile eseguire i comandi seguenti:

  • Per verificare se sono disponibili versioni più recenti per i pacchetti installati:

    Get-Package -updates
    
  • Per aggiornare un pacchetto specifico:

    Update-Package <PackageName>
    
  • Per aggiornare tutti i pacchetti in un progetto:

    Update-Package -ProjectName <ProjectName>
    
  • Per aggiornare tutti i pacchetti nella soluzione:

    Update-Package
    

Usare l'interfaccia della riga di comando di NuGet nella console

È anche possibile eseguire la maggior parte delle operazioni della console con l'interfaccia della riga di comando di NuGet. Tuttavia, i comandi della console di PowerShell operano nel contesto del progetto e della soluzione salvati in Visual Studio e spesso eseguono più comandi dell'interfaccia della riga di comando NuGet equivalenti. Ad esempio, l'installazione di un pacchetto tramite Install-Package aggiunge un riferimento al file di progetto, ma il comando dell'interfaccia della riga di comando di NuGet non lo fa. Per questo motivo, gli sviluppatori che lavorano in Visual Studio preferiscono in genere usare i comandi della console anziché l'interfaccia della riga di comando di NuGet.

Per usare i comandi dell'interfaccia della riga di comando di NuGet nella console di Gestione pacchetti, installare il pacchetto NuGet.CommandLine.

Install-Package NuGet.CommandLine

Il comando precedente installa la versione più recente dell'interfaccia della riga di comando di NuGet. Per installare una versione specifica, usare l'opzione -Version . Ad esempio, per installare la versione 4.4.1, immettere:

Install-Package NuGet.CommandLine -Version 4.4.1

Dopo aver installato il NuGet.CommandLine pacchetto, è possibile eseguire tutti i comandi dell'interfaccia della riga di comando di NuGet tramite la console di Gestione pacchetti.

Estendere la console di Gestione pacchetti

Alcuni pacchetti installano nuovi comandi per la console. Ad esempio, MvcScaffolding crea comandi come Scaffold, che genera ASP.NET controller e viste MVC:

Screenshot that shows NuGet CLI commands available after installing the NuGet.CommandLine package.

Configurare un profilo di PowerShell per NuGet

È possibile creare un profilo di PowerShell per rendere disponibili i comandi di uso comune in tutti i contesti di PowerShell, in modo da non perdere le impostazioni di PowerShell tra le sessioni. NuGet supporta un profilo specifico di NuGet, in genere in %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1.

Per trovare il percorso del profilo utente, immettere $profile nella console:

$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1

Per determinare se un profilo esiste in tale posizione, immettere test-path $profile. Se il comando restituisce False, è necessario creare il profilo con il nome specificato in tale posizione. Per altre informazioni, vedere Profili di Windows PowerShell.

Passaggi successivi