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.
Questa guida introduttiva illustra come creare rapidamente un pacchetto NuGet da una libreria di classi .NET e pubblicarlo in nuget.org usando l'interfaccia della riga di comando .NET o dotnet CLI.
Prerequisiti
.NET SDK, che fornisce lo strumento da riga di comando dotnet. A partire da Visual Studio 2017, l'interfaccia della riga di comando dotnet viene installata automaticamente con qualsiasi carico di lavoro correlato a .NET o .NET Core.
Un account gratuito su nuget.org. Seguire le istruzioni in Aggiungere un nuovo account singolo.
Creare un progetto di libreria di classi
È possibile usare un progetto libreria di classi .NET esistente per il codice che si vuole creare o creare un progetto semplice come indicato di seguito:
- Creare una cartella denominata AppLogger.
- Aprire un prompt dei comandi e passare alla cartella AppLogger . Per impostazione predefinita, tutti i comandi dell'interfaccia della riga di comando dotnet in questa guida introduttiva vengono eseguiti nella cartella corrente.
- Immettere
dotnet new classlib, che crea un progetto con il nome della cartella corrente.
Per altre informazioni, vedere dotnet new.
Aggiungere i metadati del pacchetto al file di progetto
Ogni pacchetto NuGet ha un manifesto che descrive il contenuto e le dipendenze del pacchetto. Nel pacchetto finale il manifesto è un file con estensione nuspec , che usa le proprietà dei metadati NuGet incluse nel file di progetto.
Apri il file di progetto .csproj, .fsproj o .vbproj, e aggiungi le seguenti proprietà all'interno del tag esistente <PropertyGroup>. Usare i valori personalizzati per nome e società e sostituire l'identificatore del pacchetto con un valore univoco.
<PackageId>Contoso.08.28.22.001.Test</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>
Importante
L'identificatore del pacchetto deve essere univoco tra nuget.org e altre origini del pacchetto. La pubblicazione rende il pacchetto visibile pubblicamente, quindi se si usa la libreria AppLogger di esempio o un'altra libreria di test, usare un nome univoco che include Sample o Test.
È possibile aggiungere eventuali proprietà facoltative descritte in Proprietà dei metadati NuGet.
Annotazioni
Per i pacchetti che crei per l'utilizzo pubblico, prestare particolare attenzione alla proprietà PackageTags. I tag aiutano gli altri a trovare il pacchetto e a capire cosa fa.
Eseguire il comando pack
Per compilare un pacchetto NuGet o un file con estensione nupkg dal progetto, eseguire il comando dotnet pack , che compila automaticamente anche il progetto.
dotnet pack
L'output mostra il percorso al file .nupkg.
MSBuild version 17.3.0+92e077650 for .NET
Determining projects to restore...
Restored C:\Users\myname\source\repos\AppLogger\AppLogger.csproj (in 64 ms).
AppLogger -> C:\Users\myname\source\repos\AppLogger\bin\Debug\net6.0\AppLogger.dll
Successfully created package 'C:\Users\myname\source\repos\AppLogger\bin\Debug\Contoso.08.28.22.001.Test.1.0.0.nupkg'.
Generare automaticamente il pacchetto alla compilazione
Per eseguire dotnet pack automaticamente ogni volta che si esegue dotnet build, aggiungere la riga seguente al file di progetto all'interno di <PropertyGroup>:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Pubblicare il pacchetto
Pubblicare il file con estensione nupkg in nuget.org usando il comando push nuget dotnet con una chiave API ottenuta da nuget.org.
Annotazioni
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 che pubblichi su nuget.org sono visibili pubblicamente ad altri sviluppatori, a meno che non vengano rimossi dall'elenco. Per ospitare i pacchetti in modo privato, vedere Ospitare i propri feed NuGet.
Ottenere la 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 Seleziona ambiti selezionare Push.
Sotto Select Packages, per Glob Pattern, immettere un asterisco (*).
Fare clic su 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 rivelata.
- 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 con dotnet nuget push
Dalla cartella che contiene il file con estensione 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 di 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.
Annotazioni
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 elencati e 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 in Pacchetti pubblicati nella pagina Gestisci pacchetti , selezionare l'icona a forma di matita accanto all'elenco di 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.
Annotazioni
Per evitare che il pacchetto di test sia attivo in nuget.org, è possibile eseguire il push nel sito di test nuget.org all'indirizzo https://int.nugettest.org. Si noti che i pacchetti caricati in int.nugettest.org potrebbero non essere mantenuti.
Congratulazioni per la creazione e la pubblicazione del primo pacchetto NuGet.
Video correlato
Trova altri video NuGet su Channel 9 e YouTube.
Passaggi successivi
Vedere altri dettagli su come creare pacchetti con l'interfaccia della riga di comando dotnet:
Altre informazioni sulla creazione e la pubblicazione di pacchetti NuGet: