dotnet new
This article applies to: вњ”пёЏ .NET Core 2.0 SDK and later versions
dotnet new — Creates a new project, configuration file, or solution based on the specified template.
Synopsis
Description
The dotnet new command creates a .NET project or other artifacts based on a template.
The command calls the template engine to create the artifacts on disk based on the specified template and options.
Implicit restore
You don’t have to run dotnet restore because it’s run implicitly by all commands that require a restore to occur, such as dotnet new , dotnet build , dotnet run , dotnet test , dotnet publish , and dotnet pack . To disable implicit restore, use the —no-restore option.
The dotnet restore command is still useful in certain scenarios where explicitly restoring makes sense, such as continuous integration builds in Azure DevOps Services or in build systems that need to explicitly control when the restore occurs.
For information about how to manage NuGet feeds, see the dotnet restore documentation.
Arguments
TEMPLATE
The template to instantiate when the command is invoked. Each template might have specific options you can pass. For more information, see Template options.
You can run dotnet new —list to see a list of all installed templates.
Starting with .NET Core 3.0 SDK and ending with .NET Core 5.0.300 SDK, the CLI searches for templates in NuGet.org when you invoke the dotnet new command in the following conditions:
- If the CLI can’t find a template match when invoking dotnet new , not even partial.
- If there’s a newer version of the template available. In this case, the project or artifact is created but the CLI warns you about an updated version of the template.
Starting with .NET Core 5.0.300 SDK, the —search option should be used to search for templates in NuGet.org..
The following table shows the templates that come pre-installed with the .NET SDK. The default language for the template is shown inside the brackets. Click on the short name link to see the specific template options.
| Templates | Short name | Language | Tags | Introduced |
|---|---|---|---|---|
| Console Application | console | [C#], F#, VB | Common/Console | 1.0 |
| Class library | classlib | [C#], F#, VB | Common/Library | 1.0 |
| WPF Application | wpf | [C#], VB | Common/WPF | 3.0 (5.0 for VB) |
| WPF Class library | wpflib | [C#], VB | Common/WPF | 3.0 (5.0 for VB) |
| WPF Custom Control Library | wpfcustomcontrollib | [C#], VB | Common/WPF | 3.0 (5.0 for VB) |
| WPF User Control Library | wpfusercontrollib | [C#], VB | Common/WPF | 3.0 (5.0 for VB) |
| Windows Forms (WinForms) Application | winforms | [C#], VB | Common/WinForms | 3.0 (5.0 for VB) |
| Windows Forms (WinForms) Class library | winformslib | [C#], VB | Common/WinForms | 3.0 (5.0 for VB) |
| Worker Service | worker | [C#] | Common/Worker/Web | 3.0 |
| Unit Test Project | mstest | [C#], F#, VB | Test/MSTest | 1.0 |
| NUnit 3 Test Project | nunit | [C#], F#, VB | Test/NUnit | 2.1.400 |
| NUnit 3 Test Item | nunit-test | [C#], F#, VB | Test/NUnit | 2.2 |
| xUnit Test Project | xunit | [C#], F#, VB | Test/xUnit | 1.0 |
| Razor Component | razorcomponent | [C#] | Web/ASP.NET | 3.0 |
| Razor Page | page | [C#] | Web/ASP.NET | 2.0 |
| MVC ViewImports | viewimports | [C#] | Web/ASP.NET | 2.0 |
| MVC ViewStart | viewstart | [C#] | Web/ASP.NET | 2.0 |
| Blazor Server App | blazorserver | [C#] | Web/Blazor | 3.0 |
| Blazor WebAssembly App | blazorwasm | [C#] | Web/Blazor/WebAssembly | 3.1.300 |
| ASP.NET Core Empty | web | [C#], F# | Web/Empty | 1.0 |
| ASP.NET Core Web App (Model-View-Controller) | mvc | [C#], F# | Web/MVC | 1.0 |
| ASP.NET Core Web App | webapp, razor | [C#] | Web/MVC/Razor Pages | 2.2, 2.0 |
| ASP.NET Core with Angular | angular | [C#] | Web/MVC/SPA | 2.0 |
| ASP.NET Core with React.js | react | [C#] | Web/MVC/SPA | 2.0 |
| ASP.NET Core with React.js and Redux | reactredux | [C#] | Web/MVC/SPA | 2.0 |
| Razor Class Library | razorclasslib | [C#] | Web/Razor/Library/Razor Class Library | 2.1 |
| ASP.NET Core Web API | webapi | [C#], F# | Web/WebAPI | 1.0 |
| ASP.NET Core gRPC Service | grpc | [C#] | Web/gRPC | 3.0 |
| dotnet gitignore file | gitignore | Config | 3.0 | |
| global.json file | globaljson | Config | 2.0 | |
| NuGet Config | nugetconfig | Config | 1.0 | |
| Dotnet local tool manifest file | tool-manifest | Config | 3.0 | |
| Web Config | webconfig | Config | 1.0 | |
| Solution File | sln | Solution | 1.0 | |
| Protocol Buffer File | proto | Web/gRPC | 3.0 |
Options
—dry-run
Displays a summary of what would happen if the given command were run if it would result in a template creation. Available since .NET Core 2.2 SDK.
—force
Forces content to be generated even if it would change existing files. This is required when the template chosen would override existing files in the output directory.
-?|-h|—help
Prints out help for the command. It can be invoked for the dotnet new command itself or for any template. For example, dotnet new mvc —help .
The language of the template to create. The language accepted varies by the template (see defaults in the arguments section). Not valid for some templates.
Some shells interpret # as a special character. In those cases, enclose the language parameter value in quotes. For example, dotnet new console -lang «F#» .
-n|—name
The name for the created output. If no name is specified, the name of the current directory is used.
-o|—output
Location to place the generated output. The default is the current directory.
Template options
Each template may have additional options defined. For more information, see .NET default templates for dotnet new .
Examples
Create a C# console application project:
Create an F# console application project in the current directory:
Create a .NET Standard 2.0 class library project in the specified directory:
Источник
dotnet new
Эта статья относится к следующему. ✔️ SDK для .NET Core 2.0 и более поздних версий
dotnet new — создает проект, файл конфигурации или решений на основе указанного шаблона.
Краткий обзор
Описание
Команда dotnet new создает проект .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 Core 5.0.300, интерфейс командной строки выполняет поиск шаблонов на сайте NuGet.org при вызове команды dotnet new в следующих случаях:
- если CLI не может найти совпадение шаблона при вызове dotnet new , даже частичное;
- если доступна более новая версия шаблона. В этом случае проект или артефакт создается, но CLI предупреждает об обновленной версии шаблона.
Начиная с пакета SDK для .NET Core 5.0.300, параметр —search следует использовать для поиска шаблонов на сайте NuGet.org.
В следующей таблице представлены шаблоны, которые устанавливаются вместе с пакетом SDK для .NET. Язык по умолчанию для шаблона указан внутри квадратных скобок. Нажмите на ссылку с коротким названием, чтобы увидеть конкретные параметры шаблона.
| Шаблоны | короткое имя; | Язык | Tags | Введенный |
|---|---|---|---|---|
| Консольное приложение | 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 Service | 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 | blazorserver | [C#] | Веб/Blazor | 3.0 |
| Приложение WebAssembly Blazor | blazorwasm | [C#] | Веб/Blazor/WebAssembly | 3.1.300 |
| Пустой ASP.NET Core | web | [C#], F# | Веб/пусто | 1.0 |
| Веб-приложение ASP.NET Core (Model-View-Controller) | mvc | [C#], F# | Веб/MVC | 1.0 |
| Веб-приложение ASP.NET Core | webapp, razor | [C#] | Веб/MVC и Razor Pages | 2.2, 2.0 |
| ASP.NET Core с Angular | angular | [C#] | MVC/Веб/SPA | 2.0 |
| ASP.NET Core с React.js | react | [C#] | MVC/Веб/SPA | 2.0 |
| ASP.NET Core с React.js и Redux | reactredux | [C#] | MVC/Веб/SPA | 2.0 |
| Библиотека классов Razor | razorclasslib | [C#] | Веб/Razor/Библиотека/Библиотека классов Razor | 2.1 |
| Веб-API ASP.NET Core | webapi | [C#], F# | Веб/веб-API | 1.0 |
| Служба ASP.NET Core gRPC | 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 |
Параметры
—dry-run
Отображает сводку того, что произойдет, если выполнить команду и это приведет к созданию шаблона. Доступно начиная с пакета SDK для .NET Core 2.2.
—force
Принудительное создание содержимого, даже если при этом изменяются существующие файлы. Это необходимо, когда выбранный шаблон переопределяет существующие файлы в выходном каталоге.
-?|-h|—help
Распечатывает справку для команды. Его можно вызвать для самой команды dotnet new или для любого шаблона. Например, dotnet new mvc —help .
Язык создаваемого шаблона. Допустимый язык зависит от шаблона (см. значения по умолчанию в разделе об аргументах). Не является допустимым для некоторых шаблонов.
Некоторые оболочки интерпретируют # как специальный символ. В этих случаях заключите значение языкового параметра в кавычки. Например, dotnet new console -lang «F#» .
-n|—name
Имя создаваемых выходных данных. Если имя не указано, используется имя текущего каталога.
-o|—output
Расположение, в котором размещаются созданные выходные данные. Значением по умолчанию является текущий каталог.
Параметры шаблона
Каждый шаблон может содержать дополнительные определенные параметры. Дополнительные сведения см. в статье Шаблоны .NET по умолчанию для dotnet new .
Примеры
Создайте проект консольного приложения C#:
Создание проекта консольного приложения F# в текущем каталоге:
Создайте проект библиотеки классов .NET 2.0 Standard в указанном каталоге:
Источник