Руководство. Создание шаблона проекта
С помощью .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
, install
search
и 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
Тестирование шаблона проекта
Теперь, когда вы установили шаблон проекта, протестируйте его.
Перейдите в тестовую папку.
Создайте консольное приложение со следующей командой, которая создает рабочий проект, который можно легко протестировать с помощью
dotnet run
команды.dotnet new consoleasync -n MyProject
Вы получите приведенные ниже выходные данные.
The template "Example templates: async project" was created successfully.
Запустите проект с помощью приведенной ниже команды.
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
, чтобы получить список установленных пакетов шаблонов и команду удаления для каждого из них.
Следующие шаги
В рамках этого руководства вы создали шаблон проекта. Чтобы узнать, как создать простой в использовании пакетный файл с элементом и шаблонами проектов, перейдите к следующей части этой серии.