Introduzione a NuGetAn introduction to NuGet

Uno strumento essenziale per qualsiasi piattaforma di sviluppo moderna è un meccanismo attraverso il quale gli sviluppatori possano creare, condividere e utilizzare codice utile.An essential tool for any modern development platform is a mechanism through which developers can create, share, and consume useful code. Spesso questo codice viene incluso in "pacchetti" che contengono codice compilato, ad esempio file DLL, insieme ad altri contenuti necessari nei progetti che utilizzano questi pacchetti.Often such code is bundled into "packages" that contain compiled code (as DLLs) along with other content needed in the projects that consume these packages.

Per .NET (incluso .NET Core), il meccanismo supportato da Microsoft per la condivisione del codice è NuGet, che definisce in che modo vengono creati, ospitati e utilizzati i pacchetti per .NET e fornisce gli strumenti per ognuno di questi ruoli.For .NET (including .NET Core), the Microsoft-supported mechanism for sharing code is NuGet, which defines how packages for .NET are created, hosted, and consumed, and provides the tools for each of those roles.

In altri termini, un pacchetto NuGet è un singolo file ZIP con l'estensione .nupkg che contiene codice compilato (DLL), altri file correlati a tale codice e un manifesto descrittivo che include informazioni come il numero di versione del pacchetto.Put simply, a NuGet package is a single ZIP file with the .nupkg extension that contains compiled code (DLLs), other files related to that code, and a descriptive manifest that includes information like the package's version number. Gli sviluppatori con codice da condividere creano pacchetti e li pubblicano in un host pubblico o privato.Developers with code to share create packages and publish them to a public or private host. I consumer di pacchetti ottengono tali pacchetti dagli host appropriati, li aggiungono ai loro progetti e quindi chiamano le funzionalità di un pacchetto nel codice dei progetti.Package consumers obtain those packages from suitable hosts, add them to their projects, and then call a package's functionality in their project code. NuGet gestisce tutti i dettagli intermedi.NuGet itself then handles all of the intermediate details.

Dato che NuGet supporta gli host privati oltre all'host nuget.org pubblico, è possibile usare i pacchetti NuGet per condividere codice esclusivo per un'organizzazione o un gruppo di lavoro.Because NuGet supports private hosts alongside the public nuget.org host, you can use NuGet packages to share code that's exclusive to an organization or a work group. È anche possibile usare i pacchetti NuGet come un modo pratico per eseguire il factoring del codice per usarlo esclusivamente nei progetti personali.You can also use NuGet packages as a convenient way to factor your own code for use in nothing but your own projects. In breve, un pacchetto NuGet è un'unità di codice condivisibile, ma non richiede né implica un modo particolare di condivisione.In short, a NuGet package is a shareable unit of code, but does not require nor imply any particular means of sharing.

Flusso dei pacchetti tra autori, host e consumerThe flow of packages between creators, hosts, and consumers

Nel proprio ruolo di host pubblico, NuGet gestisce il repository centrale di più di 100.000 pacchetti univoci su nuget.org. Questi pacchetti vengono usati da milioni di sviluppatori .NET/.NET Core ogni giorno.In its role as a public host, NuGet itself maintains the central repository of over 100,000 unique packages at nuget.org. These packages are employed by millions of .NET/.NET Core developers every day. NuGet consente anche di ospitare i pacchetti in modo privato nel cloud (ad esempio in Azure DevOps), in una rete privata o anche solo nel file system locale.NuGet also enables you to host packages privately in the cloud (such as on Azure DevOps), on a private network, or even on just your local file system. In questo modo, i pacchetti sono disponibili solo per gli sviluppatori che hanno accesso all'host, offrendo la possibilità di rendere disponibili i pacchetti a uno specifico gruppo di consumer.By doing so, those packages are available to only those developers that have access to the host, giving you the ability to make packages available to a specific group of consumers. Le opzioni sono illustrate in Hosting dei feed NuGet.The options are explained on Hosting your own NuGet feeds. Tramite le opzioni di configurazione, è anche possibile controllare esattamente quali host sono accessibili da qualsiasi computer specificato, in modo da assicurare che i pacchetti vengano ottenuti da origini specifiche anziché da un repository pubblico come nuget.org.Through configuration options, you can also control exactly which hosts can be accessed by any given computer, thereby ensuring that packages are obtained from specific sources rather than a public repository like nuget.org.

Qualunque sia la sua natura, un host funge da punto di connessione tra gli autori e i consumer dei pacchetti.Whatever its nature, a host serves as the point of connection between package creators and package consumers. Gli autori compilano utili pacchetti NuGet e li pubblicano in un host.Creators build useful NuGet packages and publish them to a host. I consumer cercano quindi i pacchetti utili e compatibili negli host accessibili, scaricandoli e includendoli nei loro progetti.Consumers then search for useful and compatible packages on accessible hosts, downloading and including those packages in their projects. Una volta installate in un progetto, le API dei pacchetti sono disponibili per il resto del codice del progetto.Once installed in a project, the packages' APIs are available to the rest of the project code.

Relazione tra autori, host e consumer dei pacchetti

Pacchetto per la compatibilitàPackage targeting compatibility

Con pacchetto "compatibile" si intende un pacchetto che contiene gli assembly compilati per almeno un framework .NET di destinazione compatibile con il framework di destinazione del progetto che lo utilizza.A "compatible" package means that it contains assemblies built for at least one target .NET framework that's compatible with the consuming project's target framework. Gli sviluppatori possono creare pacchetti specifici per un framework, come per i controlli UWP o possono supportare una gamma più ampia di destinazioni.Developers can create packages that are specific to one framework, as with UWP controls, or they can support a wider range of targets. Per ottimizzare la compatibilità di un pacchetto, gli sviluppatori scelgono la destinazione .NET Standard, utilizzabile da tutti i progetti .NET e .NET Core.To maximize a package's compatibility, developers target .NET Standard, which all .NET and .NET Core projects can consume. Questo è il modo più efficiente sia per gli autori che per i consumer, perché un singolo pacchetto (in genere contenente un singolo assembly) funziona per tutti i progetti che lo utilizzano.This is the most efficient means for both creators and consumers, as a single package (usually containing a single assembly) works for all consuming projects.

Gli sviluppatori di pacchetti che devono usare API al di fuori di .NET Standard, d'altra parte, creano assembly separati per i diversi framework di destinazione che vogliono supportare e includono tutti gli assembly nello stesso pacchetto (operazione nota come "multitargeting").Package developers who require APIs outside of .NET Standard, on the other hand, create separate assemblies for the different target frameworks they want to support and include all of those assemblies in the same package (which is called "multi-targeting"). Quando un consumer installa un pacchetto di questo tipo, NuGet estrae solo gli assembly necessari per il progetto.When a consumer installs such a package, NuGet extracts only those assemblies that are needed by the project. Ciò contribuisce a ridurre al minimo il footprint del pacchetto nell'applicazione finale e/o gli assembly generati da tale progetto.This minimizes the package's footprint in the final application and/or assemblies produced by that project. Un pacchetto multitargeting è naturalmente più difficile da gestire per l'autore.A multi-targeting package is, of course, more difficult for its creator to maintain.

Nota

La scelta di .NET Standard come destinazione sostituisce l'approccio precedente che prevede l'uso di varie destinazioni libreria di classi portabile (PCL).Targeting .NET Standard supersedes the previous approach of using various portable class library (PCL) targets. Questa documentazione è quindi incentrata sulla creazione di pacchetti per .NET Standard.This documentation therefore focuses on creating packages for .NET Standard.

Strumenti NuGetNuGet tools

Oltre a ospitare il supporto, NuGet fornisce anche un'ampia gamma di strumenti usati da autori e consumer.In addition to hosting support, NuGet also provides a variety of tools used by both creators and consumers. Vedere Installazione degli strumenti client di NuGet per istruzioni su come ottenere strumenti specifici.See Installing NuGet client tools for how to obtain specific tools.

StrumentoTool PiattaformePlatforms Scenari possibiliApplicable Scenarios DESCRIZIONEDescription
Interfaccia della riga di comando di dotnetdotnet CLI TuttiAll Creazione, utilizzoCreation, Consumption 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).CLI tool for .NET Core and .NET Standard libraries, and for SDK-style projects that target .NET Framework (see SDK attribute). Fornisce determinate funzionalità dell'interfaccia della riga di comando di NuGet direttamente all'interno della toolchain di .NET Core.Provides certain NuGet CLI capabilities directly within the .NET Core tool chain. Come per l'interfaccia della riga di comando di nuget.exe, l'interfaccia della riga di comando di dotnet non interagisce con i progetti di Visual Studio.As with the nuget.exe CLI, the dotnet CLI does not interact with Visual Studio projects.
Interfaccia della riga di comando di nuget.exenuget.exe CLI TuttiAll Creazione, utilizzoCreation, Consumption Strumento della riga di comando per librerie .NET Framework e per i progetti non in stile SDK destinati alle librerie .NET Standard.CLI tool for .NET Framework libraries and non-SDK-style projects that target .NET Standard libraries. Fornisce tutte le funzionalità di NuGet, con alcuni comandi applicabili in modo specifico agli autori dei pacchetti, altri applicabili solo ai consumer e altri ancora applicabili a entrambi.Provides all NuGet capabilities, with some commands applying specifically to package creators, some applying only to consumers, and others applying to both. Ad esempio, gli autori dei pacchetti usano il comando nuget pack per creare un pacchetto da vari assembly e file correlati, i consumer dei pacchetti usano nuget install per includere i pacchetti in una cartella di progetto e tutti gli utenti usano nuget config per impostare le variabili di configurazione di NuGet.For example, package creators use the nuget pack command to create a package from various assemblies and related files, package consumers use nuget install to include packages in a project folder, and everyone uses nuget config to set NuGet configuration variables. In quanto strumento indipendente dalla piattaforma, l'interfaccia della riga di comando di NuGet non interagisce con i progetti di Visual Studio.As a platform-agnostic tool, the NuGet CLI does not interact with Visual Studio projects.
Console di Gestione pacchettiPackage Manager Console Visual Studio su WindowsVisual Studio on Windows UtilizzoConsumption Fornisce i comandi di PowerShell per l'installazione e la gestione dei pacchetti nei progetti Visual Studio.Provides PowerShell commands for installing and managing packages in Visual Studio projects.
Interfaccia utente di Gestione pacchettiPackage Manager UI Visual Studio su WindowsVisual Studio on Windows UtilizzoConsumption Fornisce un'interfaccia utente di facile utilizzo per l'installazione e la gestione dei pacchetti nei progetti Visual Studio.Provides an easy-to-use UI for installing and managing packages in Visual Studio projects.
Interfaccia utente di Gestisci pacchetti NuGetManage NuGet UI Visual Studio per MacVisual Studio for Mac UtilizzoConsumption Fornisce un'interfaccia utente di semplice utilizzo per l'installazione e la gestione dei pacchetti nei progetti di Visual Studio per Mac.Provide an easy-to-use UI for installing and managing packages in Visual Studio for Mac projects.
MSBuildMSBuild WINDOWSWindows Creazione, utilizzoCreation, Consumption Fornisce la possibilità di creare pacchetti e ripristinare quelli usati in un progetto direttamente tramite la toolchain di MSBuild.Provides the ability to create packages and restore packages used in a project directly through the MSBuild tool chain.

Come si può notare, gli strumenti NuGet da usare variano notevolmente in base al fatto che si stiano creando, utilizzando o pubblicando i pacchetti, oltre che in base alla piattaforma in uso.As you can see, the NuGet tools you work with depend greatly on whether you're creating, consuming, or publishing packages, and the platform on which you're working. Gli autori dei pacchetti in genere sono anche consumer, dal momento che compilano sulla base di funzionalità disponibili in altri pacchetti NuGet.Package creators are typically also consumers, as they build on top of functionality that exists in other NuGet packages. E tali pacchetti, naturalmente, possono dipendere a loro volta da altri.And those packages, of course, may in turn depend on still others.

Per altre informazioni, iniziare con gli articoli Flusso di lavoro della creazione di pacchetti e Flusso di lavoro dell'utilizzo di pacchetti.For more information, start with the Package creation workflow and Package consumption workflow articles.

Gestione delle dipendenzeManaging dependencies

La possibilità di riutilizzare facilmente il lavoro di altri utenti è una delle funzionalità più utili di un sistema di gestione pacchetti.The ability to easily build on the work of others is one of most powerful features of a package management system. Di conseguenza, la maggior parte delle operazioni eseguite da NuGet è correlata alla gestione di tale albero delle dipendenze, o "grafico", per conto di un progetto.Accordingly, much of what NuGet does is managing that dependency tree or "graph" on behalf of a project. Detto in parole più semplici, sarà necessario preoccuparsi solo dei pacchetti che si usano direttamente in un progetto.Simply said, you need only concern yourself with those packages that you're directly using in a project. Se uno di questi pacchetti utilizza altri pacchetti (che possono a loro volta utilizzare altri pacchetti), NuGet si occupa di tutte queste dipendenze di livello inferiore.If any of those packages themselves consume other packages (which can, in turn, consume still others), NuGet takes care of all those down-level dependencies.

La figura seguente mostra un progetto che dipende da cinque pacchetti, che a loro volta dipendono da un numero di altri pacchetti.The following image shows a project that depends on five packages, which in turn depend on a number of others.

Esempio di grafico dipendenze di NuGet per un progetto .NET

Si noti che alcuni pacchetti compaiono più volte nel grafico dipendenze.Notice that some packages appear multiple times in the dependency graph. Ad esempio, sono visibili tre diversi consumer del pacchetto B e ogni consumer potrebbe anche specificare una versione diversa per tale pacchetto (non riportato nella figura).For example, there are three different consumers of package B, and each consumer might also specify a different version for that package (not shown). Si tratta di una situazione comune, in particolare per i pacchetti usati diffusamente.This is a common occurrence, especially for widely-used packages. Fortunatamente NuGet esegue tutte le operazioni necessarie per determinare esattamente quale versione del pacchetto B soddisfi tutti i consumer.NuGet fortunately does all the hard work to determine exactly which version of package B satisfies all consumers. NuGet fa quindi lo stesso per tutti gli altri pacchetti, indipendentemente dal livello di profondità del grafico dipendenze.NuGet then does the same for all other packages, no matter how deep the dependency graph.

Per maggiori dettagli sul funzionamento di questo servizio in NuGet, vedere Risoluzione delle dipendenze.For more details on how NuGet performs this service, see Dependency resolution.

Rilevamento dei riferimenti e ripristino dei pacchettiTracking references and restoring packages

Dal momento che i progetti possono essere spostati facilmente tra computer degli sviluppatori, repository del controllo del codice sorgente, server di compilazione e così via, è estremamente poco pratico mantenere gli assembly binari dei pacchetti NuGet associati direttamente a un progetto.Because projects can easily move between developer computers, source control repositories, build servers, and so forth, it's highly impractical to keep the binary assemblies of NuGet packages directly bound to a project. In questo modo, ogni copia del progetto avrebbe dimensioni inutilmente molto grandi, con conseguente spreco di spazio nei repository del controllo del codice sorgente.Doing so would make each copy of the project unnecessarily bloated (and thereby waste space in source control repositories). Risulterebbe anche molto difficile aggiornare i file binari del pacchetto a versioni più recenti, perché gli aggiornamenti dovrebbero essere applicati a tutte le copie del progetto.It would also make it very difficult to update package binaries to newer versions as updates would have to be applied across all copies of the project.

NuGet gestisce invece un semplice elenco di riferimento dei pacchetti da cui dipende un progetto, incluse sia le dipendenze di primo livello che quelle di livello inferiore.NuGet instead maintains a simple reference list of the packages upon which a project depends, including both top-level and down-level dependencies. Ovvero, quando si installa un pacchetto da un host in un progetto, NuGet registra l'identificatore del pacchetto e il numero di versione nell'elenco di riferimento.That is, whenever you install a package from some host into a project, NuGet records the package identifier and version number in the reference list. La disinstallazione di un pacchetto, naturalmente, ne comporta la rimozione dall'elenco. NuGet offre quindi un modo per ripristinare tutti i pacchetti a cui si fa riferimento su richiesta, come descritto in Ripristino di pacchetti.(Uninstalling a package, of course, removes it from the list.) NuGet then provides a means to restore all referenced packages upon request, as described on Package restore.

Nell'installazione del pacchetto viene creato un elenco di riferimenti NuGet che può essere usato per ripristinare i pacchetti in un'altra posizione.

Con solo questo elenco di riferimenti, NuGet può quindi reinstallare, ovvero ripristinare, successivamente tutti questi pacchetti da host pubblici e/o privati.With only the reference list, NuGet can then reinstall—that is, restore—all of those packages from public and/or private hosts at any later time. Quando si esegue il commit di un progetto nel controllo del codice sorgente o lo si condivide in qualsiasi altro modo, è necessario includere solo l'elenco dei riferimenti e non occorre escludere eventuali file binari dei pacchetti (vedere Pacchetti e controllo del codice sorgente).When committing a project to source control, or sharing it in some other way, you include only the reference list and exclude any package binaries (see Packages and source control.)

Il computer che riceve un progetto, ad esempio un server di compilazione che ottiene una copia del progetto come parte di un sistema di distribuzione automatica, chiede semplicemente a NuGet di ripristinare le dipendenze ogni volta che sono necessarie.The computer that receives a project, such as a build server obtaining a copy of the project as part of an automated deployment system, simply asks NuGet to restore dependencies whenever they're needed. Sistemi di compilazione come Azure DevOps prevedono passaggi di "ripristino NuGet" per questo esatto scopo.Build systems like Azure DevOps provide "NuGet restore" steps for this exact purpose. Analogamente, quando gli sviluppatori ottengono una copia di un progetto (come avviene nel caso della clonazione di un repository), possono richiamare un comando come nuget restore (interfaccia della riga di comando di NuGet), dotnet restore (interfaccia della riga di comando di dotnet), o Install-Package (console di Gestione pacchetti) per ottenere tutti i pacchetti necessari.Similarly, when developers obtain a copy of a project (as when cloning a repository), they can invoke command like nuget restore (NuGet CLI), dotnet restore (dotnet CLI), or Install-Package (Package Manager Console) to obtain all the necessary packages. Visual Studio, per la propria parte, ripristina automaticamente i pacchetti quando compila un progetto, a condizione che il ripristino automatico sia abilitato, come descritto in Ripristino di pacchetti.Visual Studio, for its part, automatically restores packages when building a project (provided that automatic restore is enabled, as described on Package restore).

Chiaramente, quindi, il ruolo primario di NuGet in cui gli sviluppatori sono coinvolti è la gestione di tale elenco di riferimenti per conto del progetto e la disponibilità di strumenti per ripristinare (e aggiornare) in modo efficiente tali pacchetti con riferimenti.Clearly, then, NuGet's primary role where developers are concerned is maintaining that reference list on behalf of your project and providing the means to efficiently restore (and update) those referenced packages. Questo elenco viene mantenuto in uno di due formati di gestione dei pacchetti:This list is maintained in one of two package management formats, as they're called:

  • PackageReference (o "riferimenti ai pacchetti nei file di progetto") | (NuGet 4.0+) Gestisce un elenco di dipendenze di livello superiore di un progetto direttamente all'interno del file di progetto, pertanto non occorre un file separato.PackageReference (or "package references in project files") | (NuGet 4.0+) Maintains a list of a project's top-level dependencies directly within the project file, so no separate file is needed. Un file associato, obj/project.assets.json, viene generato dinamicamente per gestire il grafico delle dipendenze complessive dei pacchetti usati da un progetto insieme a tutte le dipendenze di livello inferiore.An associated file, obj/project.assets.json, is dynamically generated to manage the overall dependency graph of the packages that a project uses along with all down-level dependencies. PackageReference viene sempre usato dai progetti .NET Core.PackageReference is always used by .NET Core projects.

  • packages.config: (NuGet 1.0+) File XML che gestisce un elenco completo di tutte le dipendenze nel progetto, incluse le dipendenze di altri pacchetti installati.packages.config: (NuGet 1.0+) An XML file that maintains a flat list of all dependencies in the project, including the dependencies of other installed packages. I pacchetti installati o ripristinati vengono archiviati in una cartella packages.Installed or restored packages are stored in a packages folder.

Il formato di gestione dei pacchetti usato in un determinato progetto dipende dal tipo di progetto e dalla versione di NuGet (e/o Visual Studio) disponibile.Which package management format is employed in any given project depends on the project type, and the available version of NuGet (and/or Visual Studio). Per verificare il formato in uso, è sufficiente cercare packages.config nella radice del progetto dopo l'installazione del primo pacchetto.To check what format is being used, simply look for packages.config in the project root after installing your first package. Se tale file non è disponibile, cercare direttamente un elemento <PackageReference> nel file di progetto.If you don't have that file, look in the project file directly for a <PackageReference> element.

Se è possibile scegliere, è consigliabile usare PackageReference.When you have a choice, we recommend using PackageReference. Il file packages.config viene mantenuto per applicazioni legacy e non è più in fase di sviluppo attivo.packages.config is maintained for legacy purposes and is no longer under active development.

Suggerimento

Vari comandi dell'interfaccia della riga di comando nuget.exe, ad esempio nuget install, non aggiungono automaticamente il pacchetto all'elenco di riferimenti.Various nuget.exe CLI commands, like nuget install, do not automatically add the package to the reference list. L'elenco viene aggiornato quando si installa un pacchetto con Gestione pacchetti di Visual Studio (interfaccia utente o console) e con l'interfaccia della riga di comando dotnet.exe.The list is updated when installing a package with the Visual Studio Package Manager (UI or Console), and with dotnet.exe CLI.

Che cos'altro fa NuGet?What else does NuGet do?

Finora sono state presentate le caratteristiche seguenti di NuGet:So far you've learned the following characteristics of NuGet:

  • NuGet offre il repository centrale nuget.org con supporto per l'hosting privato.NuGet provides the central nuget.org repository with support for private hosting.
  • NuGet offre gli strumenti di cui gli sviluppatori hanno bisogno per creare, pubblicare e utilizzare i pacchetti.NuGet provides the tools developers need for creating, publishing, and consuming packages.
  • Cosa ancora più importante, NuGet gestisce un elenco dei riferimenti dei pacchetti usati in un progetto, consentendo di ripristinare e aggiornare i pacchetti da tale elenco.Most importantly, NuGet maintains a reference list of packages used in a project and the ability to restore and update those packages from that list.

Per assicurare l'efficienza di questi processi, NuGet esegue alcune ottimizzazioni in background.To make these processes work efficiently, NuGet does some behind-the-scenes optimizations. In particolare, NuGet gestisce una cache dei pacchetti e una cartella globale dei pacchetti per velocizzare le operazioni di installazione e reinstallazione.Most notably, NuGet manages a package cache and a global packages folder to shortcut installation and reinstallation. La cache consente di evitare il download di un pacchetto già installato nel computer.The cache avoids downloading a package that's already been installed on the machine. La cartella dei pacchetti globale consente a più progetti di condividere lo stesso pacchetto installato, riducendo così l'impatto complessivo di NuGet nel computer.The global packages folder allows multiple projects to share the same installed package, thereby reducing NuGet's overall footprint on the computer. La cache e la cartella dei pacchetti globale sono anche molto utili quando si esegue con frequenza il ripristino di un numero più elevato di pacchetti, come in un server di compilazione.The cache and global packages folder are also very helpful when you're frequently restoring a larger number of packages, as on a build server. Per altri dettagli su questi meccanismi, vedere Gestione delle cartelle dei pacchetti globali e della cache.For more details on these mechanisms, see Managing the global packages and cache folders.

All'interno di un singolo progetto, NuGet gestisce l'intero grafico dipendenze, operazione che ancora una volta include la risoluzione di più riferimenti a versioni diverse dello stesso pacchetto.Within an individual project, NuGet manages the overall dependency graph, which again includes resolving multiple references to different versions of the same package. È piuttosto comune che un progetto abbia una dipendenza da uno o più pacchetti che a loro volta hanno le stesse dipendenze.It's quite common that a project takes a dependency on one or more packages that themselves have the same dependencies. Alcuni dei pacchetti di utilità più utili su nuget.org vengono usati da molti altri pacchetti.Some of the most useful utility packages on nuget.org are employed by many other packages. Nell'intero grafico dipendenze potrebbero facilmente esistere dieci diversi riferimenti a versioni differenti dello stesso pacchetto.In the entire dependency graph, then, you could easily have ten different references to different versions of the same package. Per evitare di includere più versioni dello stesso pacchetto nell'applicazione stessa, NuGet determina la singola versione utilizzabile da tutti i consumer.To avoid bringing multiple versions of that package into the application itself, NuGet sorts out which single version can be used by all consumers. Per altre informazioni, vedere Risoluzione delle dipendenze.(For more information, see Dependency Resolution.)

Oltre a ciò, NuGet gestisce tutte le specifiche relative a come sono strutturati i pacchetti (tra cui localizzazione e simboli di debug) e a come viene fatto riferimento a tali pacchetti (tra cui intervalli di versione e versioni non definitive). NuGet offre anche varie API per l'utilizzo dei relativi servizi a livello di codice, oltre a supportare gli sviluppatori che scrivono estensioni e modelli di progetto di Visual Studio.Beyond that, NuGet maintains all the specifications related to how packages are structured (including localization and debug symbols) and how they are referenced (including version ranges and pre-release versions.) NuGet also provides various APIs to work with its services programmatically, and provides support for developers who write Visual Studio extensions and project templates.

Dedicare alcuni minuti all'analisi del sommario di questa documentazione per vedere tutte le funzionalità presentate, insieme alle note sulla versione risalenti agli albori di NuGet.Take a moment to browse the table of contents for this documentation, and you see all of these capabilities represented there, along with release notes dating back to NuGet's beginnings.

Commenti, contributi e problemiComments, contributions, and issues

I commenti e i contributi a questa documentazione sono ben accetti. Basta selezionare i comandi Feedback e Modifica nella parte superiore di qualsiasi pagina oppure visitare il repository docs e l'elenco dei problemi di docs su GitHub.Finally, we very much welcome comments and contributions to this documentation—just select the Feedback and Edit commands on the top of any page, or visit the docs repository and docs issue list on GitHub.

Sono ben accetti anche i contributi a NuGet tramite i vari repository GitHub. I problemi relativi a NuGet sono reperibili in https://github.com/NuGet/home/issues.We also welcome contributions to NuGet itself through its various GitHub repositories; NuGet issues can be found on https://github.com/NuGet/home/issues.

Buon divertimento con NuGet!Enjoy your NuGet experience!