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


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

С помощью .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 команду.

Из этой части вы узнаете, как выполнять такие задачи:

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

Необходимые компоненты

  • Изучите первую часть этой серии руководств.
  • Откройте терминал и перейдите в папку working\content .

Важно!

Эта статья написана для .NET 7. Однако он также относится к .NET 6 и предыдущим версиям с одним отличием: dotnet new синтаксис отличается. Подкомандам list, installsearchи uninstall подкомандам должны быть --list, --install--searchи --uninstall параметры соответственно.

Например, dotnet new install команда в .NET 7 становится dotnet new --install в .NET 6. dotnet new --help Используйте команду, чтобы просмотреть список всех параметров и вложенных команд.

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

Шаблоны проектов предоставляют готовые проекты, которые упрощают пользователям взаимодействие с рабочим набором кода. .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#");

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

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

В этом руководстве папка шаблона находится в рабочей\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 представляет столбец tags, который отображается после запуска команды 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. При подготовке к следующей части этой серии учебников удалите созданный шаблон. Также обязательно удалите все файлы из папки test. Это возвращает состояние очистки, готовое к следующей части этой серии руководств.

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

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

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

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

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

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

Следующие шаги

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