Esercitazione: Creare uno strumento .NET usando l'interfaccia della riga di comando di .NET
Questo articolo si applica a: ✔️ .NET Core 2.1 SDK e versioni successive
Questa esercitazione illustra come creare uno strumento .NET e comprimerlo in un pacchetto. L'interfaccia della riga di comando di .NET consente di creare un'applicazione console come strumento, che altri utenti possono installare ed eseguire. Gli strumenti .NET sono pacchetti NuGet installati dall'interfaccia della riga di comando di .NET. Per altre informazioni sugli strumenti, vedere Panoramica degli strumenti .NET.
Lo strumento che verrà creato è un'applicazione console che accetta un messaggio come input e visualizza il messaggio insieme alle righe di testo che creano l'immagine di un robot.
Questa è la prima di una serie di tre esercitazioni. In questa esercitazione si creerà uno strumento e lo si comprimerà in un pacchetto. Nelle due esercitazioni successive si userà lo strumento come strumento globale e si userà lo strumento come strumento locale. Le procedure per la creazione di uno strumento sono uguali, sia che venga usato come strumento globale o come strumento locale.
Prerequisiti
.NET SDK 6.0.100 o una versione successiva.
Questa esercitazione usa .NET SDK 6.0, ma gli strumenti globali sono disponibili a partire da .NET Core SDK 2.1. Gli strumenti locali sono disponibili a partire da .NET Core SDK 3.0.
Un editor di testo o editor di codice di propria scelta.
Creare un progetto
Aprire un prompt dei comandi e creare una cartella denominata repository.
Passare alla cartella repository e immettere il comando seguente:
dotnet new console -n microsoft.botsay -f net6.0
Il comando crea una nuova cartella denominata microsoft.botsay nella cartella repository.
Nota
Per questa esercitazione si crea uno strumento destinato a .NET 6.0. Per impostare come destinazione un framework diverso, modificare l'opzione
-f|--framework
. Per impostare come destinazione più framework, modificare l'elementoTargetFramework
in un elementoTargetFrameworks
nel file di progetto, come illustrato nell'esempio seguente:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFrameworks>net8.0;net6.0</TargetFrameworks> </PropertyGroup> </Project>
Passare alla cartella microsoft.botsay.
cd microsoft.botsay
Aggiunta del codice
Aprire il file Program.cs nell'editor di codice.
Sostituire il codice in Program.cs con il codice seguente:
using System.Reflection; namespace microsoft.botsay; internal class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
La direttiva
using System.Reflection;
è necessaria per il codice che si aggiungerà nel passaggio successivo.Sostituire il metodo
Main
con il codice seguente per elaborare gli argomenti della riga di comando per l'applicazione.static void Main(string[] args) { if (args.Length == 0) { var versionString = Assembly.GetEntryAssembly()? .GetCustomAttribute<AssemblyInformationalVersionAttribute>()? .InformationalVersion .ToString(); Console.WriteLine($"botsay v{versionString}"); Console.WriteLine("-------------"); Console.WriteLine("\nUsage:"); Console.WriteLine(" botsay <message>"); return; } ShowBot(string.Join(' ', args)); }
Se non si passa alcun argomento, viene visualizzato un breve messaggio della Guida. In caso contrario, tutti gli argomenti vengono concatenati in una singola stringa e stampati chiamando il metodo
ShowBot
creato nel passaggio successivo.Aggiungere un nuovo metodo denominato
ShowBot
che accetta un parametro di stringa. Il metodo stampa il messaggio e l'immagine di un robot usando righe di testo.static void ShowBot(string message) { string bot = $"\n {message}"; bot += @" __________________ \ \ .... ....' .... .......... .............'..'.. ................'..'..... .......'..........'..'..'.... ........'..........'..'..'..... .'....'..'..........'..'.......'. .'..................'... ...... . ......'......... ..... . _ __ ...... .. # ## ...... .... . ....... ...... ....... ............ ................ ...................... ........................'................ ......................'..'...... ....... .........................'..'..... ....... ........ ..'.............'..'.... .......... ..'..'... ...............'....... .......... ...'...... ...... .......... ...... ....... ........... ....... ........ ...... ....... '...'.'. '.'.'.' .... ....... .....'.. ..'..... .. .......... ..'........ ............ .............. ............. '.............. ...........'.. .'.'............ ............... .'.'............. .............'.. ..'..'........... ............... .'.............. ......... .............. ..... "; Console.WriteLine(bot); }
Salvare le modifiche.
Testare l'applicazione
Eseguire il progetto e osservare l'output. Provare queste variazioni nella riga di comando per ottenere risultati diversi:
dotnet run
dotnet run -- "Hello from the bot"
dotnet run -- Hello from the bot
Tutti gli argomenti dopo il delimitatore --
vengono passati all'applicazione.
Comprimere lo strumento in un pacchetto
Prima di inserire in un pacchetto e distribuire l'applicazione come uno strumento, è necessario modificare il file di progetto.
Aprire il file microsoft.botsay.csproj e aggiungere tre nuovi nodi XML alla fine del nodo
<PropertyGroup>
:<PackAsTool>true</PackAsTool> <ToolCommandName>botsay</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath>
<ToolCommandName>
è un elemento facoltativo che specifica il comando che richiamerà lo strumento dopo l'installazione. Se questo elemento non viene specificato, il nome del comando per lo strumento è il nome dell'assembly, che in genere è il nome del file di progetto senza l'estensione .csproj.<PackageOutputPath>
è un elemento facoltativo che determina dove verrà generato il pacchetto NuGet. Il pacchetto NuGet viene usato dall'interfaccia della riga di comando di .NET per installare lo strumento.Il file di progetto ha ora un aspetto simile all'esempio seguente:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFramework> <PackAsTool>true</PackAsTool> <ToolCommandName>botsay</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath> </PropertyGroup> </Project>
Creare un pacchetto NuGet eseguendo il comando dotnet pack:
dotnet pack
Il file microsoft.botsay.1.0.0.nupkg viene creato nella cartella identificata dal valore
<PackageOutputPath>
del file microsoft.botsay.csproj, che in questo esempio è la cartella ./nupkg.Per rilasciare pubblicamente uno strumento, caricarlo in
https://www.nuget.org
. Quando lo strumento è disponibile in NuGet, gli sviluppatori possono installarlo usando il comando dotnet tool install. Per questa esercitazione si installa il pacchetto direttamente dalla cartella nupkg locale, quindi non è necessario caricare il pacchetto in NuGet.
Risoluzione dei problemi
Se compare un messaggio di errore durante l'esercitazione, vedi Risolvere i problemi di utilizzo degli strumenti .NET.
Passaggi successivi
In questa esercitazione è stata creata un'applicazione console ed è stata inserita in un pacchetto come strumento. Per informazioni su come usare lo strumento come strumento globale, passare all'esercitazione successiva.
Se si preferisce, è possibile ignorare l'esercitazione sugli strumenti globali e passare direttamente all'esercitazione sugli strumenti locali.