dotnet global tools

in C#, Programmazione

DotNet Core – Global Tools

Reading Time: 2 minutes

Lo sviluppo di applicazioni web utilizzano spesso strumenti per la distribuzione del codice. Ad esempio, con node.js è possibile utilizzare il comando npm per installare nuovi componenti sia a livello globale sia a livello di applicazione. Recentemente mi sono imbattuto in dotnet global tools, che consente di creare console application di facile distribuzione e facilmente condivisibili.

Lo strumento utilizzato per pacchettizzare e distribuire i pacchetti è NuGet

Per poter utilizzare i global tools è necessario installare SDK .Net Core 2.1 e creare un applicazione di tipo console application.

Utilizzando gli strumenti a linea di comando di .NET Core è possibile creare una console application :

dotnet new console

A questo punto è necessario modificare il file del progetto aggiungendo due parametri : PackAsTool e ToolCommandName:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.1</TargetFramework>

    <PackAsTool>true</PackAsTool>
    <ToolCommandName>NomeDelComando</ToolCommandName>
  </PropertyGroup>

</Project>

Questi due parametri consentono di :

  • PackAsTool: consente di pacchettizare la console application per essere installata come tool
  • ToolCommandName: è il nome dell’eseguibile che dovrà essere utilizzato per la console application. Per default è impostato al nome dell’assembly, ma può essere ovviamente personalizzato.

Per la creazione del pacchetto .pkg è necessario utilizzare il comando:

dotnet pack -c Release

Per poter installare il pacchetto appena creato:

dotnet tool install -g MyPackage

Utilizzando l’opzione -g il package è stato installato a livello globale: è quindi possibile utilizzare dalla linea di comando :

> MyPackage

L’eseguibile è stato installato all’interno della cartella .\dotnet\tools presente all’interno della cartella dell’utente corrente.

Pubblicazione del pacchetto tramite NuGet

Per la pubblicazione del pacchetto .pkg è necessario ottenere una API Key dal portale di NuGET utilizzando questo link. A questo punto, utilizzando i comandi:

dotnet pack --configuration Release
dotnet nuget push .\bin\release\MyDotNetCoreTool.1.0.0.nupkg --source https://api.nuget.org/v3/index.json --api-key <Your NuGet API key>

il pacchetto verrà pubblicato all’interno del repository di NuGet. Una volta terminata la procedura di pubblicazione sarà possibile scaricare il tool creato, tramite il comando:

dotnet tool install --global MyDotNetCoreTool

Dotnet Global Tools sono sicuramente uno strumento molto utile per poter effettuare la distribuzione di console application tramite il repository di Nuget.