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.
Nota: Visual Studio 2017 è consigliato per lo sviluppo di librerie .NET Standard. Visual Studio 2015 può funzionare, ma in questa versione gli strumenti .NET Core hanno raggiunto solo lo stato di anteprima. Per utilizzare NuGet 4.x+ e Visual Studio 2017, vedere Creare e pubblicare un pacchetto con Visual Studio 2017.
La libreria .NET Standard è una specifica formale delle API .NET che devono essere disponibili in tutti i runtime .NET, per creare in questo modo maggiore uniformità nell'ecosistema .NET. La libreria .NET Standard definisce un set uniforme di API della libreria di classi base per tutte le piattaforme .NET da implementare, indipendentemente dal carico di lavoro. Consente agli sviluppatori di produrre codice utilizzabile in tutti i runtime .NET e riduce, se non elimina, le direttive di compilazione condizionale specifiche della piattaforma nel codice condiviso.
Questa guida illustra la creazione di un pacchetto NuGet destinato a .NET Standard Library 1.4 o .NET Framework 4.6. Una libreria .NET Standard 1.4 funziona in .NET Framework 4.6.1, in Universal Windows Platform 10, in .NET Core e in Mono/Xamarin. Per informazioni dettagliate, vedere la tabella di mapping .NET Standard (documentazione di .NET). È possibile scegliere altre versioni della libreria .NET Standard.
Prerequisiti
Visual Studio 2015 Update 3
(Solo .NET Standard) .NET Core SDK
Interfaccia della riga di comando di NuGet. Scaricare la versione più recente di nuget.exe da nuget.org/downloads, salvandola in una posizione di propria scelta. Aggiungere quindi tale posizione alla variabile di ambiente PATH, se necessario.
Nota
Poiché nuget.exe è di per sé lo strumento dell'interfaccia della riga di comando e non un programma di installazione, assicurarsi di salvare il file scaricato dal browser invece di eseguirlo.
Creare il progetto di libreria di classi
In Visual Studio File > Nuovo > Project espandere il nodo Windows Visual C#>, selezionare Libreria di classi (portabile), modificare il nome in AppLogger e selezionare OK.
Nella finestra di dialogo Aggiungi libreria di classi portabile visualizzata selezionare le opzioni per
.NET Framework 4.6
eASP.NET Core 1.0
. (Se la destinazione è .NET Framework, è possibile selezionare qualsiasi opzione appropriata.)Se la destinazione è .NET Standard, fare clic con il pulsante destro del
AppLogger (Portable)
mouse su in Esplora soluzioni, scegliere Proprietà, selezionare la scheda Libreria, quindi selezionare Target .NET Platform Standard nella sezione Targeting (Destinazione). Questa azione richiede di confermare l'operazione e in seguito è possibile selezionare.NET Standard 1.4
(o un'altra versione disponibile) nell'elenco a discesa:Fare clic sulla scheda Compilazione, impostare Configurazione su
Release
e selezionare la casella File di documentazione XML.Aggiungere il codice al componente, ad esempio:
namespace AppLogger { public class Logger { public void Log(string text) { Console.WriteLine(text); } } }
Impostare la configurazione su Versione, compilare il progetto e controllare che nella cartella
bin\Release
vengano creati i file DLL e XML.
Creare e aggiornare il file con estensione nuspec
Aprire un prompt dei comandi, passare alla cartella contenente la cartella
AppLogger.csproj
(di un livello inferiore rispetto alla posizione del file.sln
) ed eseguire il comandospec
di NuGet per creare il fileAppLogger.nuspec
iniziale:nuget spec
Aprire
AppLogger.nuspec
in un editor e aggiornarlo in modo che corrisponda a quanto segue, sostituendo YOUR_NAME con un valore appropriato. Il<id>
valore, in particolare, deve essere univoco tra nuget.org (vedere le convenzioni di denominazione descritte in Creazione di un pacchetto. Tenere inoltre presente che è anche necessario aggiornare i tag relativi all'autore e alla descrizione o si verifica un errore durante il passaggio di creazione del pacchetto.<?xml version="1.0"?> <package > <metadata> <id>AppLogger.YOUR_NAME</id> <version>1.0.0</version> <title>AppLogger</title> <authors>YOUR_NAME</authors> <owners>YOUR_NAME</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Awesome application logging utility</description> <releaseNotes>First release</releaseNotes> <copyright>Copyright 2018 (c) Contoso Corporation. All rights reserved.</copyright> <tags>logger logging logs</tags> </metadata> </package>
Aggiungere gli assembly di riferimento al file
.nuspec
, in particolare la DLL della libreria e il file XML IntelliSense:Se la destinazione è .NET Standard, le voci vengono visualizzate in modo simile al seguente:
<!-- Insert below <metadata> element --> <files> <file src="bin\Release\AppLogger.dll" target="lib\netstandard1.4\AppLogger.dll" /> <file src="bin\Release\AppLogger.xml" target="lib\netstandard1.4\AppLogger.xml" /> </files>
Se la destinazione è .NET Framework, le voci vengono visualizzate in modo simile al seguente:
<!-- Insert below <metadata> element --> <files> <file src="bin\Release\AppLogger.dll" target="lib\net46\AppLogger.dll" /> <file src="bin\Release\AppLogger.xml" target="lib\net46\AppLogger.xml" /> </files>
Fare clic con il pulsante destro del mouse sulla soluzione e scegliere Compila soluzione per generare tutti i file per il pacchetto.
Dichiarazione delle dipendenze
Se sono presenti dipendenze da altri pacchetti NuGet, elencarle nell'elemento <dependencies>
del manifesto con gli elementi <group>
. Ad esempio, per dichiarare una dipendenza da NewtonSoft.Json 8.0.3 o versione successiva, aggiungere quanto segue:
<!-- Insert within the <metadata> element -->
<dependencies>
<group targetFramework="uap">
<dependency id="Newtonsoft.Json" version="8.0.3" />
</group>
</dependencies>
La sintassi dell'attributo version qui indica che la versione 8.0.3 o successiva è accettabile. Per specificare intervalli di versioni diversi, vedere Controllo delle versioni dei pacchetti.
Aggiunta di un file leggimi
Creare il file readme.txt
, inserirlo nella cartella radice del progetto e farvi riferimento nel file .nuspec
:
<?xml version="1.0"?>
<package >
<metadata>...
</metadata>
<files>
<file src="readme.txt" target="" />
</files>
</package>
Visual Studio visualizza il file readme.txt
quando il pacchetto viene installato in un progetto. Il file non viene visualizzato quando viene installato in progetti .NET Core o per i pacchetti che vengono installati come dipendenza.
Creare un pacchetto per il componente
Dopo avere completato il file .nuspec
che fa riferimento a tutti i file da includere nel pacchetto, è possibile eseguire il comando pack
:
nuget pack AppLogger.nuspec
Questo codice genera AppLogger.YOUR_NAME.1.0.0.nupkg
. Aprendo il file in uno strumento come NuGet Package Explorer ed espandendo tutti i nodi, vengono visualizzati i contenuti seguenti (per .NET Standard):
Suggerimento
Un file .nupkg
è solo un file ZIP con un'estensione diversa. È anche possibile esaminare i contenuti del pacchetto, modificando .nupkg
in .zip
, ma si ricordi di ripristinare l'estensione prima di caricare un pacchetto in nuget.org.
Per rendere disponibile il pacchetto ad altri sviluppatori, seguire le istruzioni riportate in Pubblicare un pacchetto.
Si noti che pack
richiede Mono 4.4.2 su Mac OS X e non funziona nei sistemi Linux. In un Mac è anche necessario convertire i nomi di percorso di Windows nel file .nuspec
in percorsi di tipo Unix.
Argomenti correlati
- Informazioni di riferimento sul file .nuspec
- Supporto di più versioni di .NET Framework
- Includere proprietà e destinazioni MSBuild in un pacchetto
- Creazione di pacchetti localizzati
- Pacchetti di simboli
- Controllo delle versioni dei pacchetti
- Documentazione della libreria .NET Standard
- Portabilità in .NET Core da .NET Framework