Учебник. Создание средства .NET с помощью интерфейса командной строки .NET
Эта статья относится к следующему. ✔️ SDK для .NET Core 2.1 и более поздних версий
В этом учебнике объясняется, как создать и упаковать средство .NET. Интерфейс командной строки .NET позволяет создавать консольное приложение в качестве средства, которое смогут установить и запустить другие пользователи. Средства .NET представляют собой пакеты NuGet, которые устанавливаются из командной строки .NET. Дополнительные сведения см. в статье Обзор глобальных средств .NET.
Создаваемое средство — это консольное приложение, которое принимает сообщение в качестве входных данных и отображает сообщение вместе со строками текста, которые создают образ робота.
Это первый учебник из серии из трех частей. В этом руководстве описано, как создать и упаковать средство. В следующих двух учебниках вы будете использовать средство в качестве глобального средства и использовать средство в качестве локального средства. Процедуры создания средства одинаковы как для глобального так и локального средства.
Предварительные требования
Пакет SDK для .NET 6.0.100 или более поздней версии.
В этом руководстве используется пакет SDK для .NET 6.0, однако глобальные средства доступны для любых пакетов SDK начиная с версии .NET Core 2.1. Глобальные средства доступны в пакете SDK для .NET Core, начиная с версии 3.0.
Текстовый редактор или редактор кода по вашему выбору.
Создание проекта
Откройте командную строку и создайте папку с именем репозиторий.
Перейдите в папку repository и введите следующую команду:
dotnet new console -n microsoft.botsay -f net6.0
Команда создает папку с именем microsoft.botsay в папке repository.
Примечание
В этом руководстве вы создадите средство, предназначенное для .NET 6.0. Чтобы выбрать другую платформу, измените параметр
-f|--framework
. Чтобы выбрать несколько платформ, измените элементTargetFramework
на элементTargetFrameworks
в файле проекта, как показано в следующем примере:<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFrameworks>net8.0;net6.0</TargetFrameworks> </PropertyGroup> </Project>
Перейдите в папку microsoft.botsay.
cd microsoft.botsay
Добавление кода
Откройте файл Program.cs в редакторе кода.
Замените код в Program.cs на следующий код:
using System.Reflection; namespace microsoft.botsay; internal class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); } }
Директива
using System.Reflection;
необходима для кода, который вы добавите на следующем шаге.Замените этот метод
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
, созданного на следующем шаге.Добавьте новый метод с именем
ShowBot
, который принимает один строковый параметр. Метод выводит сообщение и образ робота, используя строки текста.static void ShowBot(string message) { string bot = $"\n {message}"; bot += @" __________________ \ \ .... ....' .... .......... .............'..'.. ................'..'..... .......'..........'..'..'.... ........'..........'..'..'..... .'....'..'..........'..'.......'. .'..................'... ...... . ......'......... ..... . _ __ ...... .. # ## ...... .... . ....... ...... ....... ............ ................ ...................... ........................'................ ......................'..'...... ....... .........................'..'..... ....... ........ ..'.............'..'.... .......... ..'..'... ...............'....... .......... ...'...... ...... .......... ...... ....... ........... ....... ........ ...... ....... '...'.'. '.'.'.' .... ....... .....'.. ..'..... .. .......... ..'........ ............ .............. ............. '.............. ...........'.. .'.'............ ............... .'.'............. .............'.. ..'..'........... ............... .'.............. ......... .............. ..... "; Console.WriteLine(bot); }
Сохраните изменения.
Тестирование приложения
Запустите проект и просмотрите выходные данные. Поработайте с разными вариантами командной строки и сравните результаты.
dotnet run
dotnet run -- "Hello from the bot"
dotnet run -- Hello from the bot
Все аргументы после разделителя --
передаются выполняемому приложению.
Упаковка средства
Прежде чем упаковать и распространять приложение в качестве средства, измените файл проекта.
Откройте файл microsoft.botsay.csproj и добавьте три новых узла XML в конец узла
<PropertyGroup>
:<PackAsTool>true</PackAsTool> <ToolCommandName>botsay</ToolCommandName> <PackageOutputPath>./nupkg</PackageOutputPath>
<ToolCommandName>
— это необязательный элемент, указывающий команду, которая будет вызывать средство после его установки. Если этот элемент не указан, имя команды для средства — это имя сборки, которое обычно является именем файла проекта без расширения CSPROJ .<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>
Создайте пакет NuGet с помощью команды dotnet pack:
dotnet pack
Файл microsoft.botsay.1.0.0.nupkg создается в папке, которую указывает значение
<PackageOutputPath>
из файла microsoft.botsay.csproj. В нашем примере это папка ./nupkg.Если вы решите сделать это средство общедоступным, его можно отправить в
https://www.nuget.org
. Когда это средство станет доступно в NuGet, разработчикам можно будет выполнить его установку, используя команду dotnet tool install. В этом учебнике пакет устанавливается непосредственно из локальной папки nupkg, поэтому его не нужно передавать в NuGet.
Устранение неполадок
Если при выполнении учебника появляется сообщение об ошибке, см. статью Устранение неполадок при использовании средства .NET.
Следующие шаги
В этом учебнике вы создали консольное приложение и упаковали его в качестве средства. Чтобы узнать, как использовать это средство в качестве глобального, перейдите к следующему учебнику.
Tutorial: Install and use a .NET Core global tool using the .NET Core CLI (Краткое руководство. Установка и использование глобального средства .NET Core с помощью CLI .NET Core)
При желании вы можете пропустить учебник по глобальным средствам и перейти непосредственно к учебнику для локальных средств.
Tutorial: Install and use a .NET Core local tool using the .NET Core CLI (Краткое руководство. Установка и использование локального средства .NET Core с помощью CLI .NET Core)