Partager via


Tutoriel : Créer un outil .NET à l’aide de l’interface CLI .NET

Cet article s’applique au ✔️ Kit de développement logiciel (SDK) .NET Core 2.1 et versions ultérieures

Ce tutoriel vous explique comment créer et empaqueter un outil .NET. L’interface CLI .NET vous permet de créer une application console en tant qu’outil, que d’autres peuvent installer et exécuter. Les outils .NET sont des packages NuGet installés à partir de l’interface CLI .NET. Pour plus d’informations sur les outils, consultez la vue d’ensemble des outils .NET.

L’outil que vous allez créer est une application console qui prend un message comme entrée et affiche le message avec des lignes de texte qui créent l’image d’un robot.

Il s’agit du premier d’une série de trois didacticiels. Dans ce tutoriel, vous allez créer et empaqueter un outil. Dans les deux didacticiels suivants, vous utilisez l’outil comme outil global et utilisez l’outil comme outil local. Les procédures de création d’un outil sont identiques si vous l’utilisez en tant qu’outil global ou en tant qu’outil local.

Conditions préalables

  • Sdk .NET 6.0.100 ou version ultérieure.

    Ce tutoriel utilise le Kit de développement logiciel (SDK) .NET 6.0, mais les outils globaux sont disponibles à partir du Kit de développement logiciel (SDK) .NET Core 2.1. Les outils locaux sont disponibles à partir du Kit de développement logiciel (SDK) .NET Core 3.0.

  • Un éditeur de texte ou un éditeur de code de votre choix.

Création d’un projet

  1. Ouvrez une invite de commandes et créez un dossier nommé dépôt.

  2. Accédez au dossier du référentiel et entrez la commande suivante :

    dotnet new console -n microsoft.botsay -f net6.0
    

    La commande crée un dossier nommé microsoft.botsay sous le dossier du dépôt .

    Remarque

    Pour ce tutoriel, vous créez un outil qui cible .NET 6.0. Pour cibler un autre framework, modifiez l’option -f|--framework . Pour cibler plusieurs frameworks, remplacez l’élément TargetFramework par un TargetFrameworks élément dans le fichier projet, comme illustré dans l’exemple suivant :

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>net8.0;net6.0</TargetFrameworks>
      </PropertyGroup>
    </Project>
    
  3. Accédez au dossier microsoft.botsay .

    cd microsoft.botsay
    

Ajouter le code

  1. Ouvrez le fichier Program.cs avec votre éditeur de code.

  2. Remplacez le code dans Program.cs par le code suivant :

    using System.Reflection;
    
    namespace microsoft.botsay;
    
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
    

    La using System.Reflection; directive est nécessaire par le code que vous ajoutez à l’étape suivante.

  3. Remplacez la Main méthode par le code suivant pour traiter les arguments de ligne de commande de l’application.

    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));
    }
    

    Si aucun argument n’est passé, un message d’aide court s’affiche. Sinon, tous les arguments sont concaténés en une seule chaîne et imprimés en appelant la ShowBot méthode que vous créez à l’étape suivante.

  4. Ajoutez une nouvelle méthode nommée ShowBot qui prend un paramètre de chaîne. La méthode imprime le message et une image d’un robot à l’aide de lignes de texte.

    static void ShowBot(string message)
    {
        string bot = $"\n        {message}";
        bot += @"
        __________________
                          \
                           \
                              ....
                              ....'
                               ....
                            ..........
                        .............'..'..
                     ................'..'.....
                   .......'..........'..'..'....
                  ........'..........'..'..'.....
                 .'....'..'..........'..'.......'.
                 .'..................'...   ......
                 .  ......'.........         .....
                 .    _            __        ......
                ..    #            ##        ......
               ....       .                 .......
               ......  .......          ............
                ................  ......................
                ........................'................
               ......................'..'......    .......
            .........................'..'.....       .......
         ........    ..'.............'..'....      ..........
       ..'..'...      ...............'.......      ..........
      ...'......     ...... ..........  ......         .......
     ...........   .......              ........        ......
    .......        '...'.'.              '.'.'.'         ....
    .......       .....'..               ..'.....
       ..       ..........               ..'........
              ............               ..............
             .............               '..............
            ...........'..              .'.'............
           ...............              .'.'.............
          .............'..               ..'..'...........
          ...............                 .'..............
           .........                        ..............
            .....
    ";
        Console.WriteLine(bot);
    }
    
  5. Enregistrez vos modifications.

Tester l’application

Exécutez le projet et consultez la sortie. Essayez ces variantes sur la ligne de commande pour afficher différents résultats :

dotnet run
dotnet run -- "Hello from the bot"
dotnet run -- Hello from the bot

Tous les arguments après le -- délimiteur sont passés à votre application.

Empaqueter l’outil

Avant de pouvoir packer et distribuer l’application en tant qu’outil, vous devez modifier le fichier projet.

  1. Ouvrez le fichier microsoft.botsay.csproj et ajoutez trois nouveaux nœuds XML à la fin du <PropertyGroup> nœud :

    <PackAsTool>true</PackAsTool>
    <ToolCommandName>botsay</ToolCommandName>
    <PackageOutputPath>./nupkg</PackageOutputPath>
    

    <ToolCommandName> est un élément facultatif qui spécifie la commande qui appelle l’outil après son installation. Si cet élément n’est pas fourni, le nom de commande de l’outil est le nom de l’assembly, qui est généralement le nom du fichier projet sans l’extension .csproj .

    Remarque

    Choisissez une valeur unique pour <ToolCommandName>. Évitez d’utiliser des extensions de fichier (comme .exe ou .cmd) car l’outil est installé en tant qu’hôte d’application et que la commande ne doit pas inclure d’extension. Cela permet d’éviter les conflits avec les commandes existantes et garantit une expérience d’installation fluide.

    <PackageOutputPath> est un élément facultatif qui détermine où le package NuGet sera généré. Le package NuGet est ce que l’interface CLI .NET utilise pour installer votre outil.

    Le fichier projet ressemble maintenant à l’exemple suivant :

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
    
        <OutputType>Exe</OutputType>
        <TargetFramework>net6.0</TargetFramework>
    
        <PackAsTool>true</PackAsTool>
        <ToolCommandName>botsay</ToolCommandName>
        <PackageOutputPath>./nupkg</PackageOutputPath>
    
      </PropertyGroup>
    
    </Project>
    
  2. Créez un package NuGet en exécutant la commande dotnet pack :

    dotnet pack
    

    Le fichier microsoft.botsay.1.0.0.nupkg est créé dans le dossier identifié par la <PackageOutputPath> valeur du fichier microsoft.botsay.csproj , qui dans cet exemple est le dossier ./nupkg .

    Lorsque vous souhaitez publier publiquement un outil, vous pouvez le https://www.nuget.orgcharger sur . Une fois l’outil disponible sur NuGet, les développeurs peuvent installer l’outil à l’aide de la commande dotnet tool install . Pour ce tutoriel, vous installez le package directement à partir du dossier nupkg local. Vous n’avez donc pas besoin de charger le package sur NuGet.

Résolution des problèmes

Si vous recevez un message d’erreur en suivant le didacticiel, consultez Résoudre les problèmes d’utilisation des outils .NET.

Étapes suivantes

Dans ce tutoriel, vous avez créé une application console et l’avez empaquetée en tant qu’outil. Pour savoir comment utiliser l’outil en tant qu’outil global, passez au didacticiel suivant.

Si vous préférez, vous pouvez ignorer le didacticiel des outils globaux et accéder directement au didacticiel sur les outils locaux.

Voir aussi