Flusso di lavoro dell'utilizzo di pacchettiPackage consumption workflow

Tra nuget.org e le raccolte di pacchetti private che un'organizzazione può stabilire, è possibile trovare decine di migliaia di pacchetti estremamente utili da usare all'interno di app e servizi.Between nuget.org and private package galleries that your organization might establish, you can find tens of thousands of highly useful packages to use in your apps and services. Ma indipendentemente dall'origine, l'utilizzo di un pacchetto segue lo stesso flusso di lavoro generale.But regardless of the source, consuming a package follows the same general workflow.

Flusso di selezione di un'origine pacchetto, ricerca di un pacchetto, installazione di un pacchetto in un progetto, aggiunta di un'istruzione Using e chiamate all'API del pacchetto

* Solo Visual Studio e dotnet.exe. Il comando nuget install non modifica i file di progetto o il file packages.config. Le voci devono essere gestite manualmente.* Visual Studio and dotnet.exe only. The nuget install command does not modify project files or the packages.config file; entries must be managed manually.

Per altri dettagli, vedere Ricerca e scelta di pacchetti e Cosa accade quando viene installato un pacchetto?.For further details, see Finding and Choosing Packages and What happens when a package is installed?.

NuGet memorizza l'identità e il numero di versione di ogni pacchetto installato, registrandoli nel file di progetto (con PackageReference) o in packages.config, a seconda del tipo di progetto e della versione di NuGet in uso.NuGet remembers the identity and version number of each installed package, recording it in either the project file (using PackageReference) or packages.config, depending on project type and your version of NuGet. Con NuGet 4.0+ è preferito PackageReference, anche se questa opzione è configurabile in Visual Studio tramite l'interfaccia utente di Gestione pacchetti.With NuGet 4.0+, PackageReference is preferred, although this is configurable in Visual Studio through the Package Manager UI. In tutti i casi, è possibile esaminare il file appropriato in qualsiasi momento per visualizzare l'elenco completo delle dipendenze per il progetto.In any case, you can look in the appropriate file at any time to see the full list of dependencies for your project.

Suggerimento

È consigliabile verificare sempre la licenza per ogni pacchetto che si intende usare nel software.It's prudent to always check the license for each package you intend to use in your software. Su nuget.org è disponibile un collegamento License Info (Informazioni di licenza) sul lato destro della pagina di descrizione di ogni pacchetto.On nuget.org, you find a License Info link on the right side of each package's description page. Se per un pacchetto non sono specificate le condizioni di licenza, contattare il proprietario del pacchetto direttamente usando il collegamento Contact owners (Contatta proprietari) nella pagina del pacchetto.If a package does not specify license terms, contact the package owner directly using the Contact owners link on the package page. Microsoft non concede in licenza all'utente alcuna proprietà intellettuale dei provider di pacchetti di terze parti e non è responsabile delle informazioni fornite da terze parti.Microsoft does not license any intellectual property to you from third party package providers and is not responsible for information provided by third parties.

Durante l'installazione dei pacchetti, NuGet verifica in genere se il pacchetto è già disponibile nella relativa cache.When installing packages, NuGet typically checks if the package is already available from its cache. È possibile cancellare manualmente questa cache dalla riga di comando, come descritto in Gestione delle cartelle dei pacchetti globali e della cache.You can manually clear this cache from the command line, as described on Managing the global packages and cache folders.

NuGet verifica inoltre che i framework di destinazione supportati dal pacchetto siano compatibili con il progetto.NuGet also makes sure that the target frameworks supported by the package are compatible with your project. Se il pacchetto non contiene assembly compatibili, NuGet visualizza un errore.If the package does not contain compatible assemblies, NuGet displays an error. Vedere Risoluzione degli errori dei pacchetti incompatibili.See Resolving incompatible package errors.

Quando si aggiunge il codice del progetto a un repository di origine, in genere non si includono i pacchetti NuGet.When adding project code to a source repository, you typically don't include NuGet packages. Gli utenti che clonano successivamente il repository o acquisiscono in altro modo il progetto, inclusi gli agenti di compilazione in sistemi come Visual Studio Team Services, devono ripristinare i pacchetti necessari prima di eseguire una compilazione:Those who later clone the repository or otherwise acquire the project, including build agents on systems like Visual Studio Team Services, must restore the necessary packages prior to running a build:

Flusso di ripristino dei pacchetti NuGet tramite la clonazione di un repository e l'uso di un comando di ripristino

L'opzione Ripristino pacchetto usa le informazioni nel file di progetto o packages.config per reinstallare tutte le dipendenze.Package Restore uses the information in the project file or packages.config to reinstall all dependencies. Si noti che ci sono differenze nel processo interessato, come descritto in Risoluzione delle dipendenze.Note that there are differences in the process involved, as described in Dependency Resolution. Il diagramma precedente, poi, non visualizza un comando di ripristino per la console di Gestione pacchetti perché con la console si è già nel contesto di Visual Studio, che in genere ripristina automaticamente i pacchetti e fornisce il comando a livello di soluzione, come illustrato.Also, the diagram above does not show a restore command for the Package Manager Console because if you're with the Console you're already in the context of Visual Studio, which typically restores packages automatically and provides the solution-level command as shown.

In alcuni casi è necessario reinstallare i pacchetti che sono già inclusi in un progetto, reinstallando anche le dipendenze.Occasionally it's necessary to reinstall packages that are already included in a project, which may also reinstall dependencies. Si tratta di un'operazione semplice da eseguire con il comando nuget reinstall o la console di Gestione pacchetti NuGet.This is easy to do using the nuget reinstall command or the NuGet Package Manager Console. Per maggiori dettagli, vedere Reinstallazione e aggiornamento di pacchetti.For details, see Reinstalling and Updating Packages.

Infine, il comportamento di NuGet è determinato dai file Nuget.Config.Finally, NuGet's behavior is driven by Nuget.Config files. È possibile usare più file per centralizzare determinate impostazioni a livelli diversi, come illustrato in Configurazione del comportamento di NuGet.Multiple files can be used to centralize certain settings at different levels, as explained in Configuring NuGet Behavior.

Modi per installare un pacchetto NuGetWays to install a NuGet Package

I pacchetti NuGet vengono scaricati e installati usando uno dei metodi descritti nella tabella seguente.NuGet packages are downloaded and installed using any of the methods in the following table.

StrumentoTool DESCRIZIONEDescription
Interfaccia della riga di comando di dotnet.exedotnet.exe CLI (Tutte le piattaforme) Strumento della riga di comando per librerie .NET Core e .NET Standard e per progetti in stile SDK destinati a .NET Framework (vedere Attributo Sdk).(All platforms) CLI tool for .NET Core and .NET Standard libraries, and for SDK-style projects that target .NET Framework (see SDK attribute). Recupera il pacchetto identificato da <package_name> e aggiunge un riferimento al file di progetto.Retrieves the package identified by <package_name> and adds a reference to the project file. Inoltre, recupera e installa le dipendenze.Also retrieves and installs dependencies.
Visual StudioVisual Studio (Windows e Mac) Offre un'interfaccia utente tramite la quale è possibile esplorare, selezionare e installare i pacchetti e le relative dipendenze in un progetto da un'origine di pacchetti specificata.(Windows and Mac) Provides a UI through which you can browse, select, and install packages and their dependencies into a project from a specified package source. Aggiunge i riferimenti ai pacchetti installati nel file di progetto.Adds references to installed packages to the project file.
Console di Gestione pacchetti (Visual Studio)Package Manager Console (Visual Studio) (Solo Windows) Recupera e installa il pacchetto identificato da <package_name> da un'origine selezionata in un progetto specificato nella soluzione, quindi aggiunge un riferimento al file di progetto.(Windows only) Retrieves and installs the package identified by <package_name> from a selected source into a specified project in the solution, then adds a reference to the project file. Inoltre, recupera e installa le dipendenze.Also retrieves and installs dependencies.
Interfaccia della riga di comando di nuget.exenuget.exe CLI (Tutte le piattaforme) Strumento della riga di comando per librerie .NET Framework e per progetti non in stile SDK destinati alle librerie .NET Standard.(All platforms) CLI tool for .NET Framework libraries and non-SDK-style projects that target .NET Standard libraries. Recupera il pacchetto identificato da <package_name> e ne espande il contenuto in una cartella nella directory corrente. Può anche recuperare tutti i pacchetti elencati in un file packages.config.Retrieves the package identified by <package_name> and expands its contents into a folder in the current directory; can also retrieve all packages listed in a packages.config file. Inoltre, recupera e installa le dipendenze, ma non apporta modifiche ai file di progetto o a packages.config.Also retrieves and installs dependencies, but makes no changes to project files or packages.config.