Sdílet prostřednictvím


Kurz: Vytvoření nástroje .NET pomocí rozhraní příkazového řádku .NET

Tento článek se vztahuje na: ✔️ .NET Core 2.1 SDK a novější verze

V tomto kurzu se naučíte, jak vytvořit a zabalit nástroj .NET. Rozhraní příkazového řádku .NET umožňuje vytvořit konzolovou aplikaci jako nástroj, který můžou ostatní instalovat a spouštět. Nástroje .NET jsou balíčky NuGet nainstalované z rozhraní příkazového řádku .NET. Další informace o nástrojích najdete v tématu Přehled nástrojů .NET.

Nástroj, který vytvoříte, je konzolová aplikace, která přebírá zprávu jako vstup a zobrazuje zprávu spolu s řádky textu, které vytvářejí obrázek robota.

Toto je první ze tří kurzů. V tomto kurzu vytvoříte a zabalíte nástroj. V dalších dvou kurzech použijete nástroj jako globální nástroj a použijete ho jako místní nástroj. Postupy pro vytvoření nástroje jsou stejné bez ohledu na to, jestli ho používáte jako globální nástroj nebo jako místní nástroj.

Požadavky

  • .NET SDK 6.0.100 nebo novější verze

    Tento kurz používá sadu .NET SDK 6.0, ale globální nástroje jsou k dispozici od sady .NET Core SDK 2.1. Místní nástroje jsou dostupné od verze .NET Core SDK 3.0.

  • Textový editor nebo editor kódu podle vašeho výběru.

Vytvoření projektu

  1. Otevřete příkazový řádek a vytvořte složku s názvem úložiště.

  2. Přejděte do složky úložiště a zadejte následující příkaz:

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

    Příkaz vytvoří novou složku s názvem microsoft.botsay ve složce úložiště .

    Poznámka:

    Pro účely tohoto kurzu vytvoříte nástroj, který cílí na .NET 6.0. Pokud chcete cílit na jinou architekturu -f|--framework , změňte možnost. Pokud chcete cílit na více architektur, změňte TargetFramework prvek na TargetFrameworks element v souboru projektu, jak je znázorněno v následujícím příkladu:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>net8.0;net6.0</TargetFrameworks>
      </PropertyGroup>
    </Project>
    
  3. Přejděte do složky microsoft.botsay .

    cd microsoft.botsay
    

Přidání kódu

  1. Otevřete soubor Program.cs v editoru kódu.

  2. Nahraďte kód v Program.cs následujícím kódem:

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

    Direktiva using System.Reflection; je nutná kódem, který přidáte v dalším kroku.

  3. Nahraďte metodu Main následujícím kódem pro zpracování argumentů příkazového řádku pro aplikaci.

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

    Pokud nejsou předány žádné argumenty, zobrazí se krátká zpráva nápovědy. V opačném případě jsou všechny argumenty zřetězeny do jednoho řetězce a vytištěny voláním ShowBot metody, kterou vytvoříte v dalším kroku.

  4. Přidejte novou metodu s názvem ShowBot , která přebírá parametr řetězce. Metoda vytiskne zprávu a obrázek robota pomocí řádků textu.

    static void ShowBot(string message)
    {
        string bot = $"\n        {message}";
        bot += @"
        __________________
                          \
                           \
                              ....
                              ....'
                               ....
                            ..........
                        .............'..'..
                     ................'..'.....
                   .......'..........'..'..'....
                  ........'..........'..'..'.....
                 .'....'..'..........'..'.......'.
                 .'..................'...   ......
                 .  ......'.........         .....
                 .    _            __        ......
                ..    #            ##        ......
               ....       .                 .......
               ......  .......          ............
                ................  ......................
                ........................'................
               ......................'..'......    .......
            .........................'..'.....       .......
         ........    ..'.............'..'....      ..........
       ..'..'...      ...............'.......      ..........
      ...'......     ...... ..........  ......         .......
     ...........   .......              ........        ......
    .......        '...'.'.              '.'.'.'         ....
    .......       .....'..               ..'.....
       ..       ..........               ..'........
              ............               ..............
             .............               '..............
            ...........'..              .'.'............
           ...............              .'.'.............
          .............'..               ..'..'...........
          ...............                 .'..............
           .........                        ..............
            .....
    ";
        Console.WriteLine(bot);
    }
    
  5. Uložte změny.

Otestování aplikace

Spusťte projekt a prohlédněte si výstup. Zkuste tyto varianty na příkazovém řádku zobrazit různé výsledky:

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

Všechny argumenty po -- předání oddělovače do vaší aplikace.

Zabalení nástroje

Než budete moct aplikaci zabalit a distribuovat jako nástroj, musíte upravit soubor projektu.

  1. Otevřete soubor microsoft.botsay.csproj a přidejte na konec <PropertyGroup> uzlu tři nové uzly XML:

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

    <ToolCommandName> je volitelný prvek, který určuje příkaz, který vyvolá nástroj po instalaci. Pokud tento prvek není zadaný, název příkazu pro nástroj je název sestavení, což je obvykle název souboru projektu bez přípony .csproj .

    Poznámka:

    Zvolte jedinečnou hodnotu pro <ToolCommandName>. Nepoužívejte přípony souborů (například .exe nebo .cmd), protože nástroj je nainstalovaný jako hostitel aplikace a příkaz by neměl obsahovat příponu. Tím zabráníte konfliktům s existujícími příkazy a zajistíte hladký průběh instalace.

    <PackageOutputPath> je volitelný prvek, který určuje, kde se vytvoří balíček NuGet. Balíček NuGet je to, co rozhraní .NET CLI používá k instalaci vašeho nástroje.

    Soubor projektu teď vypadá jako v následujícím příkladu:

    <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. Spuštěním příkazu dotnet pack vytvořte balíček NuGet:

    dotnet pack
    

    Soubor microsoft.botsay.1.0.0.nupkg se vytvoří ve složce identifikované <PackageOutputPath> hodnotou ze souboru microsoft.botsay.csproj , což je v tomto příkladu složka ./nupkg .

    Pokud chcete nástroj veřejně uvolnit, můžete ho nahrát do https://www.nuget.org. Jakmile je nástroj dostupný na NuGetu, můžou vývojáři nástroj nainstalovat pomocí příkazu dotnet tool install . Pro účely tohoto kurzu nainstalujete balíček přímo z místní složky nupkg , takže nemusíte balíček nahrávat do NuGetu.

Řešení problémů

Pokud se při sledování kurzu zobrazí chybová zpráva, přečtěte si téma Řešení potíží s používáním nástrojů .NET.

Další kroky

V tomto kurzu jste vytvořili konzolovou aplikaci a zabalili ji jako nástroj. Pokud se chcete dozvědět, jak nástroj používat jako globální nástroj, přejděte k dalšímu kurzu.

Pokud chcete, můžete přeskočit kurz globálních nástrojů a přejít přímo na kurz místních nástrojů.

Viz také