Поделиться через


Руководство. Создание средства .NET с помощью .NET CLI

Эта статья относится к ✔️ SDK для .NET Core 2.1 и более поздних версий.

В этом руководстве описано, как создать и упаковать средство .NET. Интерфейс командной строки .NET позволяет создать консольное приложение в качестве средства, которое другие пользователи могут установить и запустить. Средства .NET — это пакеты NuGet, установленные из .NET CLI. Дополнительные сведения о средствах см. в обзоре средств .NET.

Создаваемое средство — это консольное приложение, которое принимает сообщение в качестве входных данных и отображает сообщение вместе со строками текста, создающими изображение робота.

Это первый из трех учебников. В этом руководстве описано, как создать и упаковить средство. В следующих двух руководствах вы используете инструмент в качестве глобального инструмента и используете его в качестве локального инструмента. Процедуры создания инструмента совпадают с тем, используется ли он как глобальный инструмент или как локальный инструмент.

Предпосылки

  • Пакет SDK для .NET 6.0.100 или более поздняя версия.

    В этом руководстве используется пакет SDK для .NET 6.0, но глобальные средства доступны начиная с пакета SDK для .NET Core 2.1. Локальные средства доступны начиная с пакета SDK для .NET Core 3.0.

  • Текстовый редактор или редактор кода по вашему выбору.

Создание проекта

  1. Откройте командную строку и создайте именованный репозиторий папки.

  2. Перейдите в папку репозитория и введите следующую команду:

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

    Команда создает новую папку с именем microsoft.botsay в папке репозитория .

    Замечание

    В этом руководстве описано, как создать инструмент, предназначенный для .NET 6.0. Чтобы выбрать другую платформу, измените -f|--framework этот параметр. Чтобы использовать несколько платформ, измените TargetFramework элемент на элемент TargetFrameworks в файле проекта, как показано в следующем примере:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFrameworks>net8.0;net6.0</TargetFrameworks>
      </PropertyGroup>
    </Project>
    
  3. Перейдите в папку microsoft.botsay .

    cd microsoft.botsay
    

Добавление кода

  1. Откройте файл Program.cs с помощью редактора кода.

  2. Замените код в Program.cs на ниже приведенный код:

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

    Директива using System.Reflection; необходима в коде, добавленном на следующем шаге.

  3. Замените Main метод следующим кодом, чтобы обработать аргументы командной строки для приложения.

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

    Если аргументы не передаются, отображается короткое сообщение справки. В противном случае все аргументы объединяются в одну строку и печатаются путем вызова ShowBot метода, созданного на следующем шаге.

  4. Добавьте новый метод с именем ShowBot , который принимает строковый параметр. Метод выводит сообщение и изображение робота с помощью строк текста.

    static void ShowBot(string message)
    {
        string bot = $"\n        {message}";
        bot += @"
        __________________
                          \
                           \
                              ....
                              ....'
                               ....
                            ..........
                        .............'..'..
                     ................'..'.....
                   .......'..........'..'..'....
                  ........'..........'..'..'.....
                 .'....'..'..........'..'.......'.
                 .'..................'...   ......
                 .  ......'.........         .....
                 .    _            __        ......
                ..    #            ##        ......
               ....       .                 .......
               ......  .......          ............
                ................  ......................
                ........................'................
               ......................'..'......    .......
            .........................'..'.....       .......
         ........    ..'.............'..'....      ..........
       ..'..'...      ...............'.......      ..........
      ...'......     ...... ..........  ......         .......
     ...........   .......              ........        ......
    .......        '...'.'.              '.'.'.'         ....
    .......       .....'..               ..'.....
       ..       ..........               ..'........
              ............               ..............
             .............               '..............
            ...........'..              .'.'............
           ...............              .'.'.............
          .............'..               ..'..'...........
          ...............                 .'..............
           .........                        ..............
            .....
    ";
        Console.WriteLine(bot);
    }
    
  5. Сохраните ваши изменения.

Тестирование приложения

Запустите проект и просмотрите выходные данные. Попробуйте использовать эти варианты в командной строке, чтобы увидеть различные результаты:

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

Все аргументы после того, как -- разделитель передается приложению.

Упаковка средства

Прежде чем упаковать и распространить приложение в качестве средства, необходимо изменить файл проекта.

  1. Откройте файл microsoft.botsay.csproj и добавьте три новых XML-узла в конец <PropertyGroup> узла:

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

    <ToolCommandName> — необязательный элемент, указывающий команду, которая вызовет средство после его установки. Если этот элемент не указан, имя команды для средства — это имя сборки, которое обычно является именем файла проекта без расширения CSPROJ .

    Замечание

    Выберите уникальное значение для <ToolCommandName>. Избегайте использования расширений файлов (например .exe , или .cmd) из-за того, что средство установлено в качестве узла приложения, и команда не должна включать расширение. Это помогает предотвратить конфликты с существующими командами и обеспечивает гладкую установку.

    <PackageOutputPath> — необязательный элемент, определяющий, где будет производиться пакет NuGet. Пакет NuGet — это то, что интерфейс командной строки .NET использует для установки средства.

    Теперь файл проекта выглядит следующим образом:

    <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. Создайте пакет NuGet, выполнив команду dotnet pack :

    dotnet pack
    

    Файл microsoft.botsay.1.0.0.nupkg создается в папке, определяемой <PackageOutputPath> значением из файла microsoft.botsay.csproj , который в этом примере является папкой ./nupkg .

    Если вы хотите публично освободить средство, его можно отправить https://www.nuget.orgв . После того как средство будет доступно в NuGet, разработчики могут установить это средство с помощью команды установки средства dotnet . В этом руководстве вы устанавливаете пакет непосредственно из локальной папки nupkg , поэтому нет необходимости отправлять пакет в NuGet.

Устранение неполадок

Если вы получите сообщение об ошибке при выполнении руководства, см. статью Устранение проблем с использованием средств .NET.

Дальнейшие шаги

В этом руководстве вы создали консольное приложение и упаковали его в качестве инструмента. Чтобы узнать, как использовать инструмент в качестве глобального инструмента, перейдите к следующему руководству.

Если вы предпочитаете, вы можете пропустить руководство по глобальным средствам и перейти непосредственно к руководству по локальным средствам.

См. также