Samouczek: tworzenie narzędzia platformy .NET przy użyciu interfejsu wiersza polecenia platformy .NET

Ten artykuł dotyczy: ✔️ zestaw .NET Core 2.1 SDK i nowsze wersje

W tym samouczku pokazano, jak utworzyć i spakować narzędzie platformy .NET. Interfejs wiersza polecenia platformy .NET umożliwia utworzenie aplikacji konsolowej jako narzędzia, które inne osoby mogą instalować i uruchamiać. Narzędzia .NET to pakiety NuGet zainstalowane z poziomu interfejsu wiersza polecenia platformy .NET. Aby uzyskać więcej informacji na temat narzędzi, zobacz Omówienie narzędzi platformy .NET.

Narzędzie, które utworzysz, to aplikacja konsolowa, która przyjmuje komunikat jako dane wejściowe i wyświetla komunikat wraz z wierszami tekstu, które tworzą obraz robota.

Jest to pierwszy z serii trzech samouczków. W tym samouczku utworzysz i spakujesz narzędzie. W kolejnych dwóch samouczkach użyjesz narzędzia jako narzędzia globalnego i użyjesz narzędzia jako narzędzia lokalnego. Procedury tworzenia narzędzia są takie same, niezależnie od tego, czy używasz go jako narzędzia globalnego, czy jako narzędzia lokalnego.

Wymagania wstępne

  • Zestaw .NET SDK 6.0.100 lub nowsza wersja.

    W tym samouczku jest używany zestaw .NET SDK 6.0, ale dostępne są narzędzia globalne, począwszy od zestawu .NET Core SDK 2.1. Narzędzia lokalne są dostępne począwszy od zestawu .NET Core SDK 3.0.

  • Wybrany edytor tekstu lub edytor kodu.

Tworzenie projektu

  1. Otwórz wiersz polecenia i utwórz folder o nazwie repository.

  2. Przejdź do folderu repozytorium i wprowadź następujące polecenie:

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

    Polecenie tworzy nowy folder o nazwie microsoft.botsay w folderze repozytorium .

    Uwaga

    Na potrzeby tego samouczka utworzysz narzędzie przeznaczone dla platformy .NET 6.0. Aby wybrać inną platformę -f|--framework , zmień opcję. Aby kierować wiele struktur, zmień TargetFramework element na TargetFrameworks element w pliku projektu, jak pokazano w poniższym przykładzie:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>net8.0;net6.0</TargetFrameworks>
      </PropertyGroup>
    </Project>
    
  3. Przejdź do folderu microsoft.botsay .

    cd microsoft.botsay
    

Dodawanie kodu

  1. Otwórz plik Program.cs za pomocą edytora kodu.

  2. Zastąp kod w pliku Program.cs następującym kodem:

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

    Dyrektywa jest wymagana using System.Reflection; przez kod dodany w następnym kroku.

  3. Zastąp metodę Main poniższym kodem, aby przetworzyć argumenty wiersza polecenia dla aplikacji.

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

    Jeśli nie przekazano żadnych argumentów, zostanie wyświetlony krótki komunikat pomocy. W przeciwnym razie wszystkie argumenty są łączone w jeden ciąg i drukowane przez wywołanie ShowBot metody utworzonej w następnym kroku.

  4. Dodaj nową metodę o nazwie , ShowBot która przyjmuje parametr ciągu. Metoda wyświetla komunikat i obraz robota przy użyciu wierszy tekstu.

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

Testowanie aplikacji

Uruchom projekt i wyświetl dane wyjściowe. Wypróbuj te odmiany w wierszu polecenia, aby wyświetlić różne wyniki:

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

Wszystkie argumenty po przekazaniu -- ogranicznika do aplikacji.

Spakuj narzędzie

Aby można było spakować i rozpowszechnić aplikację jako narzędzie, należy zmodyfikować plik projektu.

  1. Otwórz plik microsoft.botsay.csproj i dodaj trzy nowe węzły XML na końcu węzła <PropertyGroup> :

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

    <ToolCommandName> jest opcjonalnym elementem określającym polecenie, które wywoła narzędzie po jego zainstalowaniu. Jeśli ten element nie zostanie podany, nazwa polecenia narzędzia to nazwa zestawu, która jest zazwyczaj nazwą pliku projektu bez rozszerzenia csproj .

    <PackageOutputPath> jest opcjonalnym elementem określającym, gdzie zostanie utworzony pakiet NuGet. Pakiet NuGet jest używany przez interfejs wiersza polecenia platformy .NET do zainstalowania narzędzia.

    Plik projektu wygląda teraz jak w poniższym przykładzie:

    <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. Utwórz pakiet NuGet, uruchamiając polecenie dotnet pack :

    dotnet pack
    

    Plik microsoft.botsay.1.0.0.nupkg jest tworzony w folderze zidentyfikowanym przez <PackageOutputPath> wartość z pliku microsoft.botsay.csproj , który w tym przykładzie jest folderem ./nupkg .

    Jeśli chcesz opublikować narzędzie publicznie, możesz przekazać je do https://www.nuget.orgusługi . Gdy narzędzie jest dostępne w programie NuGet, deweloperzy mogą zainstalować narzędzie za pomocą polecenia dotnet tool install . Na potrzeby tego samouczka zainstalujesz pakiet bezpośrednio z lokalnego folderu nupkg , więc nie ma potrzeby przekazywania pakietu do pakietu NuGet.

Rozwiązywanie problemów

Jeśli podczas wykonywania samouczka zostanie wyświetlony komunikat o błędzie, zobacz Rozwiązywanie problemów z użyciem narzędzi platformy .NET.

Następne kroki

W tym samouczku utworzono aplikację konsolową i spakujesz ją jako narzędzie. Aby dowiedzieć się, jak używać narzędzia jako narzędzia globalnego, przejdź do następnego samouczka.

Jeśli wolisz, możesz pominąć samouczek dotyczący narzędzi globalnych i przejść bezpośrednio do samouczka narzędzi lokalnych.