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


Руководство. Создание шаблона проекта

С помощью .NET можно создавать и развертывать шаблоны, которые создают проекты, файлы и ресурсы. Это руководство является частью двух серии, в которой описано, как создавать, устанавливать и удалять шаблоны для использования с командой dotnet new .

Подсказка

Официальные шаблоны .NET, поставляемые с пакетом SDK для .NET, можно найти в следующих репозиториях:

Шаблоны Репозиторий
Консоль, библиотека классов и общие шаблоны элементов dotnet/sdk
Шаблоны ASP.NET и Blazor dotnet/aspnetcore
ASP.NET шаблоны одностраничных приложений dotnet/spa-templates
Шаблоны WPF dotnet/wpf
Шаблоны Windows Forms dotnet/winforms
Тестовые шаблоны dotnet/test-templates
Шаблоны MAUI dotnet/maui

Вы можете просмотреть шаблоны, установленные на компьютере, выполнив dotnet new list команду.

В этой части серии вы узнаете, как:

  • Создайте ресурсы шаблона проекта.
  • Создайте папку и файл конфигурации шаблона.
  • Установите шаблон с указанного пути к файлу.
  • Проверьте шаблон элемента.
  • Удалите шаблон элемента.

Предпосылки

  • .NET 9 или более поздней версии.

  • Выполните часть 1 этой серии учебников.

  • Откройте терминал и перейдите в папку working\content .

Создание шаблона проектов

Шаблоны проектов создают готовые к выполнению проекты, которые упрощают запуск пользователей с рабочим набором кода. .NET включает несколько шаблонов проектов, таких как консольное приложение или библиотека классов. В этом примере вы создаете новый проект консольного приложения, который заменяет стандартный вывод "Hello World" консоли на асинхронный.

В терминале перейдите в папку working\content и создайте вложенную папку с именем consoleasync. Введите вложенную папку и запустите dotnet new console , чтобы создать стандартное консольное приложение. Измените файлы, созданные этим шаблоном, чтобы создать новый шаблон.

working
└───content
    └───consoleasync
            consoleasync.csproj
            Program.cs

Измените Program.cs

Откройте файл Program.cs . Стандартный проект консоли не выполняет асинхронную запись в консольный вывод, поэтому добавьте эту функциональность. Измените код на следующий и сохраните файл:

// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");

Теперь, когда у вас есть содержимое созданного шаблона, необходимо создать конфигурацию шаблона в корневой папке шаблона.

Создание конфигурации шаблона

В этом руководстве каталог шаблона расположен в working\content\consoleasync.

Шаблоны распознаются .NET, так как они имеют специальную папку и файл конфигурации в корне папки шаблона.

Сначала создайте новую вложенную папку с именем .template.config, и перейдите в неё. Затем создайте новый файл с именем template.json. Структура папок должна выглядеть следующим образом:

working
└───content
    └───consoleasync
        └───.template.config
                template.json

Откройте template.json с любимым текстовым редактором и вставьте следующий код JSON и сохраните его.

{
  "$schema": "http://json.schemastore.org/template",
  "author": "Me",
  "classifications": [ "Common", "Console" ],
  "identity": "ExampleTemplate.AsyncProject",
  "name": "Example templates: async project",
  "shortName": "consoleasync",
  "sourceName":"consoleasync",
  "tags": {
    "language": "C#",
    "type": "project"
  }
}

Этот файл конфигурации содержит все параметры шаблона. Вы можете просмотреть основные параметры, такие как name и shortName, но также есть параметр tags/type, который задан project. Это классифицирует ваш шаблон как шаблон проекта. Нет ограничений на тип создаваемого шаблона. Значения item и project являются распространенными именами, которые рекомендует .NET, чтобы пользователи могли легко отбирать нужный тип шаблона.

Элемент sourceName заменяется, когда пользователь использует шаблон. Значение sourceName в файле конфигурации ищется в каждом имени файла и содержимом файлов, и, по умолчанию, заменяется на имя текущей папки. При передаче параметра -n или --name вместе с командой dotnet new значение используется вместо текущего имени папки. В случае с этим шаблоном consoleasync заменяется в названии файла .csproj.

Элемент classifications представляет столбец тегов, который отображается при запуске dotnet new и получении списка шаблонов. Пользователи также могут выполнять поиск на основе тегов классификации. Не путайте tags свойство в файле template.json со списком classifications тегов. Они два разных понятия, которые, к сожалению, называются одинаковыми. Полная схема файла template.json найдена в хранилище схем JSON и описана в справочнике по template.json. Дополнительные сведения о файлеtemplate.json см. вики-сайте dotnet.

Теперь, когда у вас есть действительный файл.template.config/template.json , шаблон готов к установке. Перед установкой шаблона удалите все дополнительные папки и файлы, которые вы не хотите включить в шаблон, например папки bin или obj . В терминале перейдите в папку consoleasync и запустите dotnet new install .\ , чтобы установить шаблон, расположенный в текущей папке. Если вы используете операционную систему Linux или macOS, используйте прямой слеш: dotnet new install ./.

dotnet new install .\

Эта команда выводит список установленных шаблонов, которые должны включать ваши.

The following template packages will be installed:
   <root path>\working\content\consoleasync

Success: <root path>\working\content\consoleasync installed the following templates:
Templates                                         Short Name               Language          Tags
--------------------------------------------      -------------------      ------------      ----------------------
Example templates: async project                  consoleasync             [C#]              Common/Console

Тестирование шаблона проекта

Теперь, когда у вас установлен шаблон проекта, протестируйте его.

  1. Перейдите в тестовую папку.

  2. Создайте консольное приложение со следующей командой, которая создает рабочий проект, который можно легко протестировать с помощью dotnet run команды.

    dotnet new consoleasync -n MyProject
    

    Вы получите следующие выходные данные.

    The template "Example templates: async project" was created successfully.
    
  3. Запустите проект с помощью следующей команды.

    dotnet run
    

    Вы получите следующие выходные данные.

    Hello World with C#
    

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

Удалите шаблон

В терминале перейдите в папку consoleasync и выполните следующую команду, чтобы удалить шаблон, расположенный в текущей папке:

  • В Windows: dotnet new uninstall .\
  • В Linux или macOS: dotnet new uninstall ./

Эта команда выводит список шаблонов, которые были удалены, которые должны включать ваши.

Success: <root path>\working\content\consoleasync was uninstalled.

В любое время вы можете использовать dotnet new uninstall, чтобы просмотреть список установленных пакетов шаблонов, включая для каждого пакета команду удаления.

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

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