Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questa guida introduttiva si userà Microsoft Visual Studio per creare un pacchetto NuGet da una libreria di classi .NET. Quindi si pubblica il pacchetto in nuget.org usando uno strumento dell'interfaccia della riga di comando .
Questa guida introduttiva è destinata solo agli utenti di Windows. Se si utilizza una piattaforma diversa, utilizzare la CLI di .NET.
Prerequisiti
Visual Studio 2026 con un carico di lavoro correlato al .NET.
È possibile installare gratuitamente l'edizione Community 2026 da visualstudio.microsoft.com oppure è possibile usare l'edizione Professional o Enterprise.
Visual Studio 2017 e versioni successive includono automaticamente le funzionalità NuGet quando si installa un carico di lavoro correlato .NET.
Interfaccia della riga di comando .NET.
Per Visual Studio 2017 e versioni successive, il .NET CLI viene installato automaticamente con qualsiasi carico di lavoro relativo a .NET. È anche possibile installare .NET SDK per ottenere l'interfaccia della riga di comando di .NET. L'interfaccia della riga di comando (CLI) di .NET è necessaria per i progetti .NET che usano il formato SDK-style (e un attributo SDK). Il modello di libreria di classi .NET predefinito in Visual Studio 2017 e versioni successive usa l'attributo SDK.
Importante
Se si usa un progetto non in stile SDK, seguire le procedure descritte in Creare e pubblicare un pacchetto usando Visual Studio (.NET Framework, Windows) per creare e pubblicare il pacchetto. Per questo articolo, è consigliabile usare l'interfaccia della riga di comando di .NET. Sebbene sia possibile pubblicare qualsiasi pacchetto NuGet usando l'interfaccia della riga di comando di NuGet, alcuni dei passaggi descritti in questo articolo sono specifici per i progetti in stile SDK e l'interfaccia della riga di comando di .NET. La CLI di NuGet viene utilizzata per progetti di stile non-SDK (generalmente progetti .NET Framework).
Un account gratuito su nuget.org. È necessario registrare e confermare l'account prima di poter caricare un pacchetto NuGet.
Interfaccia della riga di comando di NuGet. È possibile installarlo scaricandolo da nuget.org. Aggiungere il filenuget.exe a una cartella appropriata e aggiungere tale cartella alla
PATHvariabile di ambiente.
Creare un progetto di libreria di classi
È possibile usare un progetto di libreria di classi .NET esistente per il codice che si vuole creare oppure crearne uno seguendo questa procedura:
In Visual Studio selezionare File>New>Project/Solution.
Nella finestra Crea un nuovo progetto passare alla casella di ricerca e immettere la libreria di classi.
Nell'elenco risultante dei modelli di progetto selezionare il modello Libreria di classi che soddisfa i criteri seguenti:
- Ha la descrizione un progetto per la creazione di una libreria di classi destinata a supportare .NET o .NET Standard
- Ha un tag C#
Seleziona Avanti.
Nella finestra Configurare la nuova finestra project per Project name immettere AppLogger e quindi selezionare Next.
Nella finestra Informazioni aggiuntive selezionare un valore appropriato per Framework e quindi selezionare Crea.
Se non si è certi del framework da selezionare, la versione più recente è una buona scelta e può essere facilmente modificata in un secondo momento. Per informazioni sul framework da usare, vedere When to target
netx.0enetstandard.(Facoltativo) Per questa guida introduttiva non è necessario scrivere codice aggiuntivo per il pacchetto NuGet, perché la libreria di classi modello è sufficiente per creare un pacchetto. Tuttavia, se si vuole aggiungere codice funzionale al pacchetto, includere il codice seguente:
namespace AppLogger { public class Logger { public void Log(string text) { Console.WriteLine(text); } } }
Configurare le proprietà del pacchetto
Dopo aver creato il progetto, è possibile configurare le proprietà del pacchetto NuGet seguendo questa procedura:
In Solution Explorer, selezionare il project e quindi selezionare Project><project-name> Proprietà, dove <project-name> è il nome del project.
Espandi il pacchetto nodo, e quindi seleziona Generale.
Il nodo pacchetto viene visualizzato solo per i progetti in stile SDK in Visual Studio. Se si fa riferimento a un progetto di tipo non SDK (in genere progetti .NET Framework), migrate il progetto oppure consulta Creare e pubblicare un pacchetto usando Visual Studio (.NET Framework, Windows) per istruzioni dettagliate.
Per ID pacchetto assegnare al pacchetto un ID univoco.
Importante
È necessario assegnare al pacchetto un identificatore univoco nell'host usato, ad esempio nuget.org. In caso contrario, si verifica un errore. Per questa guida introduttiva, è consigliabile includere Sample o Test nell'ID, perché il passaggio di pubblicazione rende il pacchetto visibile pubblicamente. Per altre informazioni sulla selezione di un ID, vedere Procedure consigliate per l'identificatore del pacchetto.
Compilare eventuali altre proprietà desiderate. Per i pacchetti creati per l'utilizzo pubblico, prestare particolare attenzione alla proprietà Tags , perché i tag aiutano gli altri a trovare il pacchetto e a capire cosa fa.
Tutte le proprietà vengono inserite nel manifesto .nuspec che Visual Studio crea per il progetto. Per una tabella che mostra come le proprietà di Microsoft Build (MSBuild) nei progetti in stile SDK vengono mappate alle proprietà del file .nuspec, vedere "pack target". Per una descrizione delle proprietà del file .nuspec, consultare il riferimento .nuspec.
(Facoltativo) Per visualizzare le proprietà direttamente nel file di progetto AppLogger.csproj, selezionare Progetto>Modifica file di progetto.
Il file AppLogger.csproj viene aperto in una nuova scheda.
Questa opzione è disponibile per i progetti che usano l'attributo in stile SDK.
Eseguire il comando pack
Per creare un pacchetto NuGet dal progetto, seguire questa procedura:
Selezionare Build>Configuration Manager e quindi impostare la configurazione della soluzione Active solution su Release.
In Solution Explorer fare clic con il pulsante destro del mouse sul progetto AppLogger e quindi selezionare Pack.
Visual Studio compila il progetto e crea il file .nupkg.
Esaminare la finestra Output per informazioni dettagliate, incluso il percorso del file del pacchetto. In questo esempio l'assembly compilato si trova nella cartella bin\Release\net8.0 appropriata per una destinazione .NET 8.0:
1>------ Build started: Project: AppLogger, Configuration: Release Any CPU ------ 1> AppLogger -> d:\proj\AppLogger\AppLogger\bin\Release\net8.0\AppLogger.dll 1> Successfully created package 'd:\proj\AppLogger\AppLogger\bin\Release\Contoso.App.Logger.Test.1.0.0.nupkg'. ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Se il comando Pack non è presente nel menu, il progetto probabilmente non è un progetto di tipo SDK. Eseguire una delle operazioni seguenti:
- Upgrade il progetto in modo da poter usare l'interfaccia della riga di comando di .NET.
- Seguire le istruzioni in Creare e pubblicare un pacchetto usando Visual Studio (.NET Framework, Windows) per usare l'interfaccia della riga di comando di NuGet per creare e pubblicare un pacchetto NuGet dal progetto.
(Facoltativo) Generare un pacchetto alla compilazione
È possibile configurare Visual Studio per generare automaticamente il pacchetto NuGet quando si compila il progetto:
Selezionare il project in Solution Explorer, e quindi selezionare Project><project-name> Proprietà, dove <project-name> è il nome del project (AppLogger in questo caso).
Espandi il nodo pacchetto, seleziona Generalee quindi seleziona Genera pacchetto NuGet durante la compilazione.
Nota
Quando si seleziona questa opzione, il tempo aggiuntivo necessario per generare il pacchetto aumenta il tempo di compilazione complessivo per il progetto.
(Facoltativo) Esegui il pacchetto con MSBuild
In alternativa all'uso del comando di menu Pack , è possibile usare il msbuild -t:pack comando per compilare un pacchetto NuGet dal progetto. NuGet 4.x+ e MSBuild 15.1+ supportano una pack destinazione quando il progetto contiene i dati del pacchetto necessari.
Quando il progetto viene aperto in Solution Explorer, aprire una finestra del prompt dei comandi selezionando Tools>Linea comandi>Developer Command Prompt.
La finestra del prompt dei comandi viene visualizzata nella directory del progetto.
Eseguire il comando seguente:
msbuild -t:pack.
Per altre informazioni, vedere Creare un pacchetto NuGet con MSBuild.
Pubblicare il pacchetto
Dopo aver creato un file .nupkg, seguire questa procedura nelle sezioni seguenti per pubblicarlo in nuget.org. È possibile usare l'interfaccia della riga di comando di .NET o l'interfaccia della riga di comando di NuGet per la pubblicazione. Si usa anche una chiave API acquisita da nuget.org.
Nota
Nuget.org analizza tutti i pacchetti caricati per individuare virus e rifiuta tutti i pacchetti contenenti virus. Nuget.org analizza periodicamente tutti i pacchetti elencati esistenti.
I pacchetti pubblicati in nuget.org sono visibili pubblicamente ad altri sviluppatori, a meno che non vengano elencati. Per ospitare i pacchetti in modo privato, vedere Ospitare i propri feed NuGet.
Acquisire la chiave API
Prima di pubblicare il pacchetto NuGet, creare una chiave API:
Accedi al tuo account nuget.org o crea un account se non ne hai già uno.
Nell'angolo in alto a destra selezionare il nome utente e quindi chiavi API.
Selezionare Crea e quindi immettere un nome per la chiave.
In Selezionare Ambiti, selezionare Push.
Sotto Select Packages, per Glob Pattern, immettere un asterisco (*).
Selezionare Crea.
Selezionare Copia per copiare la nuova chiave.
Importante
- Mantenere sempre la chiave API un segreto. La chiave API è simile a una password che chiunque può usare per gestire i pacchetti per conto dell'utente. Eliminare o rigenerare la chiave API se viene accidentalmente visualizzata.
- Salvare la chiave in una posizione sicura, perché non è possibile copiare di nuovo la chiave in un secondo momento. Se si torna alla pagina della chiave API, è necessario rigenerare la chiave per copiarla. È anche possibile rimuovere la chiave API se non si vuole più eseguire il push dei pacchetti.
La definizione dell'ambito consente di creare chiavi API separate per scopi diversi. Ogni chiave ha un intervallo di tempo di scadenza ed è possibile definire l'ambito della chiave a pacchetti o modelli GLOB specifici. È anche possibile definire l'ambito di ogni chiave per operazioni specifiche: eseguire il push di nuovi pacchetti e versioni dei pacchetti, eseguire il push solo di nuove versioni del pacchetto o annullare l'elenco.
Tramite la definizione dell'ambito, è possibile creare chiavi API per persone diverse che gestiscono i pacchetti per l'organizzazione in modo che abbiano solo le autorizzazioni necessarie.
Per altre informazioni, vedere Chiavi API con ambito.
Pubblicare usando l'interfaccia della riga di comando di .NET o l'interfaccia della riga di comando di NuGet
È possibile usare l'interfaccia della riga di comando di .NET o l'interfaccia della riga di comando di NuGet per eseguire il push di un pacchetto nel server e pubblicarlo. Passare alla scheda dello strumento che si desidera usare.
- .NET CLI
- dell'interfaccia della riga di comando di NuGet
L'interfaccia della riga di comando di .NET (dotnet.exe) è l'alternativa consigliata all'interfaccia della riga di comando di NuGet.
Dalla cartella contenente il file nupkg eseguire il comando seguente. Sostituire <package-file> con il nome del file .nupkg e sostituire <API-key> con la chiave API.
dotnet nuget push <package-file> --api-key <API-key> --source https://api.nuget.org/v3/index.json
L'output mostra i risultati del processo di pubblicazione:
Pushing <package-file> to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
Created https://www.nuget.org/api/v2/package/ 2891ms
Your package was pushed.
Per altre informazioni, vedere dotnet nuget push.
Errori durante la pubblicazione
Quando si esegue il push comando, a volte si verifica un errore. Ad esempio, è possibile che venga visualizzato un errore nelle situazioni seguenti:
- La chiave API non è valida o è scaduta.
- Si tenta di pubblicare un pacchetto con un identificatore già esistente nell'host.
- Si apportano modifiche a un pacchetto pubblicato, ma si dimentica di aggiornare il numero di versione prima di riprovare a pubblicarlo.
Il messaggio di errore indica in genere l'origine del problema.
Si supponga, ad esempio, che l'identificatore Contoso.App.Logger.Test esista in nuget.org. Se si tenta di pubblicare un pacchetto con tale identificatore, viene visualizzato l'errore seguente:
Response status code does not indicate success: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.).
Per risolvere questa situazione, controllare l'ambito, la data di scadenza e il valore della chiave API. Se la chiave è valida, l'errore indica che l'identificatore del pacchetto esiste già nell'host. Per risolvere il problema, modificare l'identificatore del pacchetto in modo che sia univoco, ricompilare il progetto, ricreare il file con estensione nupkg e ripetere il push comando.
Gestire il pacchetto pubblicato
Quando il pacchetto viene pubblicato correttamente, si riceve un messaggio di posta elettronica di conferma. Per visualizzare il pacchetto pubblicato, passare a nuget.org, selezionare il nome utente nell'angolo in alto a destra e quindi selezionare Gestisci pacchetti.
Nota
L'indicizzazione e la visualizzazione del pacchetto nei risultati della ricerca potrebbero richiedere alcuni minuti. Durante tale periodo, il pacchetto viene visualizzato in Pacchetti non elencatie la pagina del pacchetto mostra il messaggio seguente:
Ora che il pacchetto NuGet viene pubblicato in nuget.org, altri sviluppatori possono usarlo nei progetti.
Se si crea un pacchetto che non è utile (ad esempio questo pacchetto di esempio da una libreria di classi vuota) o se non si vuole che il pacchetto sia visibile, è possibile rimuovere l'elenco del pacchetto per nasconderlo dai risultati della ricerca:
Dopo che il pacchetto viene visualizzato sotto Pacchetti pubblicati nella pagina Gestisci pacchetti, selezionare l'icona a forma di matita accanto all'elenco dei pacchetti.
Nella pagina successiva selezionare Elenco, deselezionare la casella di controllo Elenco nei risultati della ricerca e quindi selezionare Salva.
Il pacchetto viene ora visualizzato in Pacchetti non elencati in Gestisci pacchetti e non viene più visualizzato nei risultati della ricerca.
Nota
Per evitare che il pacchetto di test sia attivo in nuget.org, è possibile eseguire il push nel sito di test nuget.org in https://int.nugettest.org. Si noti che i pacchetti caricati in int.nugettest.org potrebbero non essere mantenuti.
Aggiungere un file di lettura o un altro file
È possibile includere un file read-me o altri file nel pacchetto.
Aggiungere un file read-me
Per aggiungere un file read-me al pacchetto, seguire questa procedura:
Aprire il file di project selezionando Project>Edit Project File.
Nel file di progetto passare all'elemento
PropertyGroupe quindi aggiungere unPackageReadmeFileelemento figlio:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> ... <PackageReadmeFile>readme.md</PackageReadmeFile> ... </PropertyGroup> </Project>Passare all'elemento
ItemGroupe quindi aggiungere unNoneelemento figlio:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> ... <PackageReadmeFile>readme.md</PackageReadmeFile> ... </PropertyGroup> <ItemGroup> ... <None Include="readme.md" Pack="true" PackagePath="\" /> ... </ItemGroup> </Project>
Nell'esempio precedente la proprietà specifica un file denominato readme.md nella radice del progetto. Dopo la compilazione, il pacchetto e la pubblicazione del pacchetto, nuget.org visualizza il contenuto del file read-me nella pagina del pacchetto. Visual Studio visualizza anche il contenuto del file nell'interfaccia utente di Package Manager.
Ad esempio, lo screenshot seguente mostra il file read-me per il HtmlAgilityPack pacchetto:
Aggiungere altri file
Per aggiungere altri file a un pacchetto, aprire il file di project selezionando Project>Edit Project File. Aggiungere quindi un Content elemento figlio all'elemento ItemGroup :
<ItemGroup>
<Content Include="other-content.md">
<Pack>true</Pack>
<PackagePath>\</PackagePath>
</Content>
</ItemGroup>
Per altre informazioni, vedere Includere contenuti in un pacchetto.
Video correlati
Per video sull'uso di NuGet per la gestione dei pacchetti, vedere .NET Package Management con NuGet per principianti e NuGet per principianti.
Contenuti correlati
Per informazioni su come creare un pacchetto NuGet con Visual Studio .NET Framework, vedere Creare un pacchetto usando l'interfaccia della riga di comando di nuget.exe.
Per altre informazioni su NuGet, vedere gli articoli seguenti:
- Creare un pacchetto NuGet con l'interfaccia della riga di comando dotnet
- Pubblicare pacchetti NuGet
- Compilazione di pacchetti pre-rilascio
- Supporta più framework di .NET nel file di progetto
- versionamento dei pacchetti
- Creazione di pacchetti NuGet localizzati
- Panoramica dell'aggiornamento delle app .NET