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


dotnet new <TEMPLATE>

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

Имя.

dotnet new - создает проект, файл конфигурации или решений на основе указанного шаблона.

Краткие сведения

dotnet new <TEMPLATE> [--dry-run] [--force] [-lang|--language {"C#"|"F#"|VB}]
    [-n|--name <OUTPUT_NAME>] [-f|--framework <FRAMEWORK>] [--no-update-check]
    [-o|--output <OUTPUT_DIRECTORY>] [--project <PROJECT_PATH>]
    [-d|--diagnostics] [--verbosity <LEVEL>] [Template options]

dotnet new -h|--help

Description

Команда dotnet new создает проект .NET или другие артефакты на основе шаблона.

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

Примечание.

Начиная с пакета SDK dotnet new для .NET 7 синтаксис изменился:

  • --list, --search--installи --uninstall варианты стали list, searchinstallи uninstall подкомандами.
  • Параметр --update-apply стал update подкомандам.
  • Чтобы использовать --update-check, используйте update подкоманда с параметром --check-only .

Другие варианты, которые были доступны раньше, по-прежнему доступны для использования с соответствующими подкомандами. Отдельная справка для каждого подкоманда доступна с помощью -h или --help параметра: dotnet new <subcommand> --help перечисляет все поддерживаемые параметры для подкоманда.

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

Заполнение нажатием клавиши TAB

Начиная с пакета SDK для .NET 7.0.100, для завершения вкладки доступен dotnet new. Он поддерживает завершение для установленных имен шаблонов, а также завершения для параметров выбранного шаблона. Чтобы активировать завершение вкладки для пакета SDK для .NET, см. раздел "Включить завершение вкладки".

Неявное восстановление

Вам не нужно выполнять команду dotnet restore, так как она выполняется неявно всеми командами, которые требуют восстановления, например dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish и dotnet pack. Чтобы отключить неявное восстановление, используйте параметр --no-restore.

Команду dotnet restore по-прежнему удобно использовать в некоторых сценариях, где необходимо явное восстановление, например в сборках с использованием непрерывной интеграции в Azure DevOps Services или системах сборки, где требуется явно контролировать время восстановления.

Сведения об управлении веб-каналами NuGet см. в документации по dotnet restore.

Аргументы

  • TEMPLATE

    Шаблон для создания экземпляров при вызове команды. Каждый шаблон может иметь отдельные параметры, доступные для передачи. Дополнительные сведения см. в разделе Параметры шаблона.

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

    Начиная с пакета SDK для .NET Core 3.0 и заканчивая пакетом SDK для .NET 5.0.300, интерфейс командной строки ищет шаблоны в NuGet.org при вызове dotnet new команды в следующих условиях:

    • если CLI не может найти совпадение шаблона при вызове dotnet new, даже частичное;
    • если доступна более новая версия шаблона. В этом случае проект или артефакт создается, но CLI предупреждает об обновленной версии шаблона.

    Начиная с пакета SDK для .NET 5.0.300, search команда должна использоваться для поиска шаблонов в NuGet.org.

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

Шаблоны Короткое имя Язык Теги Введенный
Консольное приложение console [C#], F#, VB Общее/консоль 1.0
Библиотека классов classlib [C#], F#, VB Общее/библиотека 1.0
Приложение WPF wpf [C#], VB Общее/WPF 3.0 (5.0 для VB)
Библиотека классов WPF wpflib [C#], VB Общее/WPF 3.0 (5.0 для VB)
Библиотека настраиваемых элементов управления WPF wpfcustomcontrollib [C#], VB Общее/WPF 3.0 (5.0 для VB)
Библиотека пользовательских элементов управления WPF wpfusercontrollib [C#], VB Общее/WPF 3.0 (5.0 для VB)
Приложение Windows Forms (WinForms) winforms [C#], VB Общее (WinForms) 3.0 (5.0 для VB)
Библиотека классов для Windows Forms (WinForms) winformslib [C#], VB Общее (WinForms) 3.0 (5.0 для VB)
Служба рабочих ролей worker [C#] Общее/Рабочая роль/Веб 3.0
Проект модульного теста mstest [C#], F#, VB Тест/MSTest 1.0
Тестовый проект NUnit 3 nunit [C#], F#, VB Тест/NUnit 2.1.400
Элемент теста NUnit 3 nunit-test [C#], F#, VB Тест/NUnit 2,2
Тестовый проект xUnit xunit [C#], F#, VB Тест/xUnit 1.0
Компонент Razor razorcomponent [C#] Веб/ASP.NET 3.0
Страница Razor page [C#] Веб/ASP.NET 2.0
MVC ViewImports viewimports [C#] Веб/ASP.NET 2.0
MVC ViewStart viewstart [C#] Веб/ASP.NET 2.0
Blazor Веб-приложение blazor [C#] Веб/Blazor 8.0.100
BlazorWebAssembly Автономное приложение blazorwasm [C#] Web/Blazor/WebAssembly/PWA 3.1.300
Пустой ASP.NET Core web [C#], F# Веб/пусто 1.0
Веб-приложение ASP.NET Core (модель — представление — контроллер) mvc [C#], F# Веб/MVC 1.0
Веб-приложение ASP.NET Core webapp, razor [C#] Веб/MVC и Razor Pages 2.2, 2.0
Библиотека классов Razor razorclasslib [C#] Веб/Razor/Библиотека/Библиотека классов Razor 2.1
Веб-API ASP.NET Core webapi [C#], F# Веб-API/API/Service/WebAPI 1.0
ASP.NET Core API webapiaot [C#] Веб-API/ВЕБ-API/СЛУЖБА 8.0
контроллер API ASP.NET Core apicontroller [C#] Веб/ASP.NET 8.0
Служба gRPC ASP.NET Core grpc [C#] Веб/gRPC 3.0
Файл dotnet gitignore gitignore Config 3.0
Файл global.json globaljson Config 2.0
Конфигурация NuGet nugetconfig Config 1.0
Локальное средство файла манифеста dotnet tool-manifest Config 3.0
Файл веб-конфигурации webconfig Config 1.0
Файл решения sln Решение 1.0
Файл буфера протокола proto Веб/gRPC 3.0
Файл EditorConfig editorconfig Config 6,0

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

Шаблоны Короткое имя Язык Теги Прекращено с момента
Использование ASP.NET Core с Angular angular [C#] MVC/Веб/SPA 8.0
Использование ASP.NET Core с React.js react [C#] MVC/Веб/SPA 8.0
Серверное приложение Blazor blazorserver [C#] Веб/Blazor 8.0
Пустое приложение Blazor Server blazorserver-empty [C#] Веб/Blazor 8.0
Пустое приложение Blazor WebAssembly blazorwasm-empty [C#] Web/Blazor/WebAssembly 8.0

Параметры

  • --dry-run

    Отображает сводку того, что произойдет, если выполнить команду и это приведет к созданию шаблона. Доступно начиная с пакета SDK для .NET Core 2.2.

  • --force

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

  • -?|-h|--help

    Распечатывает справку для команды. Его можно вызвать для самой команды dotnet new или для любого шаблона. Например, dotnet new mvc --help.

  • -lang|--language {C#|F#|VB}

    Язык создаваемого шаблона. Допустимый язык зависит от шаблона (см. значения по умолчанию в разделе об аргументах). Не является допустимым для некоторых шаблонов.

    Примечание.

    Некоторые оболочки интерпретируют # как специальный символ. В этих случаях заключите значение языкового параметра в кавычки. Например, dotnet new console -lang "F#".

  • -n|--name <OUTPUT_NAME>

    Имя создаваемых выходных данных. Если имя не указано, используется имя текущего каталога.

  • -f|--framework <FRAMEWORK>

    Задает целевую платформу. Он ожидает моникер целевой платформы (TFM). Примеры: net6.0, net7.0-macos. Это значение будет отражено в файле проекта.

  • -no-update-check

    Отключает проверку наличия обновлений для пакета шаблона при создании экземпляра этого шаблона. Доступно с пакета SDK для .NET 6.0.100. При создании экземпляра шаблона из пакета шаблона, который был установлен командой dotnet new --install, dotnet new проверяет наличие обновления для этого шаблона. Начиная с .NET 6 проверки обновлений не выполняются для стандартных шаблонов .NET. Чтобы обновить стандартные шаблоны .NET, установите версию пакета SDK для .NET с исправлениями.

  • -o|--output <OUTPUT_DIRECTORY>

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

  • --project <PROJECT_PATH>

    Проект, в который добавляется шаблон. Этот проект используется для оценки контекста. Если он не указан, будет использоваться проект в текущих или родительских каталогах. Доступно с версии пакета SDK для .NET 7.0.100.

  • -d|--diagnostics

    Включает вывод диагностических данных. Доступно с версии пакета SDK для .NET 7.0.100.

  • -v|--verbosity <LEVEL>

    Задает уровень детализации команды. Допустимые значения — q[uiet], m[inimal], n[ormal] и diag[nostic]. Доступно с версии пакета SDK для .NET 7.0.100.

Параметры шаблонов

Каждый шаблон может содержать дополнительные определенные параметры. Дополнительные сведения см. в статье Шаблоны .NET по умолчанию для dotnet new.

Примеры

  • Создайте проект консольного приложения C#:

    dotnet new console
    
  • Создание проекта консольного приложения F# в текущем каталоге:

    dotnet new console --language "F#"
    
  • Создайте проект библиотеки классов .NET 2.0 Standard в указанном каталоге:

    dotnet new classlib --framework "netstandard2.0" -o MyLibrary
    
  • Создайте новый проект MVC ASP.NET Core C# в текущем каталоге без проверки подлинности:

    dotnet new mvc -au None
    
  • Создайте новый проект xUnit:

    dotnet new xunit
    
  • Создайте global.json в текущем каталоге, задав пакет SDK версии 8.0.101:

    dotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
    
  • Отобразить справку для шаблона консольного приложения C#:

    dotnet new console -h
    
  • Отобразить справку для шаблона консольного приложения F#:

    dotnet new console --language "F#" -h
    

См. также