dotnet new <TEMPLATE>
本文适用于: ✔️ .NET Core 3.1 SDK 及更高版本
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
dotnet new
命令基于模板创建 .NET 项目或其他项目。
命令调用模板引擎,以根据指定的模板和选项在磁盘上创建项目。
备注
从 .NET 7 SDK 开始,dotnet new
语法已更改:
--list
、--search
、--install
和--uninstall
选项已变更为list
、search
、install
和uninstall
子命令。--update-apply
选项变更为update
子命令。- 若要使用
--update-check
,请使用包含--check-only
选项的update
子命令。
之前可用的其他选项仍可用于各自的子命令。
每个子命令的单独帮助可通过 -h
或 --help
选项获得:dotnet new <subcommand> --help
列出子命令的所有支持选项。
此外,tab 自动补全现可供 dotnet new
使用。 它支持安装模板名称的自动补全,以及所选模板所提供选项的自动补全。
若要激活 .NET SDK 的 tab 自动补全,请参阅启用 tab 自动补全。
从 .NET SDK 7.0.100 开始,Tab 自动补全可用于 dotnet new
。 它支持安装模板名称的自动补全,以及所选模板所提供选项的自动补全。
若要激活 .NET SDK 的 tab 自动补全,请参阅启用 tab 自动补全。
无需运行 dotnet restore
,因为它由所有需要还原的命令隐式运行,如 dotnet new
、dotnet build
、dotnet run
、dotnet test
、dotnet publish
和 dotnet pack
。 若要禁用隐式还原,请使用 --no-restore
选项。
在执行显式还原有意义的某些情况下,例如 dotnet restore
中,或在需要显式控制还原发生时间的生成系统中,dotnet restore
命令仍然有用。
有关如何使用 NuGet 源的信息,请参阅 dotnet restore
文档。
TEMPLATE
调用命令时要实例化的模板。 每个模板可能具有可传递的特定选项。 有关详细信息,请参阅模板选项。
可以运行
dotnet new list
以查看所有已安装模板的列表。从 .NET Core 3.0 SDK 开始,到 .NET SDK 5.0.300 结束,当你在以下情况下调用
dotnet new
命令时,CLI 将在 NuGet.org 中搜索模板:- 如果在调用
dotnet new
时 CLI 找不到模板匹配项,即使是部分匹配也不行。 - 如果有较新版本的模板可用。 在这种情况下,将创建项目或工件,但 CLI 会就模板的更新版本发出警告。
从 .NET SDK 5.0.300 开始,应使用
search
命令在 NuGet.org. 中搜索模板。- 如果在调用
下表显示随 .NET SDK 一起预安装的模板。 模板的默认语言显示在括号内。 单击短名称链接可查看特定的模板选项。
模板 | 短名称 | 语言 | Tags | 已引入 |
---|---|---|---|---|
控制台应用程序 | console |
[C#]、F#、VB | 常用/控制台 | 1.0 |
类库 | classlib |
[C#]、F#、VB | 常用/库 | 1.0 |
WPF 应用程序 | wpf |
[C#]、VB | 常用/WPF | 3.0(对于 VB,则为 5.0) |
WPF 类库 | wpflib |
[C#]、VB | 常用/WPF | 3.0(对于 VB,则为 5.0) |
WPF 自定义控件库 | wpfcustomcontrollib |
[C#]、VB | 常用/WPF | 3.0(对于 VB,则为 5.0) |
WPF 用户控件库 | wpfusercontrollib |
[C#]、VB | 常用/WPF | 3.0(对于 VB,则为 5.0) |
Windows 窗体 (WinForms) 应用程序 | winforms |
[C#]、VB | 常用/WinForms | 3.0(对于 VB,则为 5.0) |
Windows 窗体 (WinForms) 类库 | winformslib |
[C#]、VB | 常用/WinForms | 3.0(对于 VB,则为 5.0) |
Worker Service | worker |
[C#] | 常用/Worker/Web | 3.0 |
MSTest 测试项目 | mstest |
[C#]、F#、VB | 测试/MSTest | 1.0 |
MSTest 测试类 | mstest-class |
[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#] | Web/ASP.NET | 3.0 |
Razor 页 | 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 Web 应用 | blazor |
[C#] | Web/Blazor | 8.0.100 |
BlazorWebAssembly 独立应用 | blazorwasm |
[C#] | Web/Blazor//WebAssemblyPWA | 3.1.300 |
ASP.NET Core 空 | web |
[C#],F# | Web/空 | 1.0 |
ASP.NET Core Web 应用程序 (Model-View-Controller) | mvc |
[C#],F# | Web/MVC | 1.0 |
ASP.NET Core Web 应用程序 | webapp, razor |
[C#] | Web/MVC/Razor Pages | 2.2、2.0 |
Razor 类库 | razorclasslib |
[C#] | Web/Razor/库/Razor 类库 | 2.1 |
ASP.NET Core Web API | webapi |
[C#],F# | Web/Web API/API/Service/WebAPI | 1.0 |
ASP.NET Core API | webapiaot |
[C#] | Web/Web API/API/Service | 8.0 |
ASP.NET 核心 API 控制器 | apicontroller |
[C#] | Web/ASP.NET | 8.0 |
ASP.NET Core gRPC 服务 | grpc |
[C#] | Web/gRPC | 3.0 |
dotnet gitignore 文件 | gitignore |
配置 | 3.0 | |
global.json 文件 | globaljson |
配置 | 2.0 | |
NuGet 配置 | nugetconfig |
配置 | 1.0 | |
Dotnet 本地工具清单文件 | tool-manifest |
配置 | 3.0 | |
Web 配置 | webconfig |
配置 | 1.0 | |
解决方案文件 | sln |
解决方案 | 1.0 | |
协议缓冲区文件 | proto |
Web/gRPC | 3.0 | |
EditorConfig 文件 | editorconfig |
Config | 6.0 |
下表显示了已停用且不再随 .NET SDK 预安装的模板。 单击短名称链接可查看特定的模板选项。
模板 | 短名称 | 语言 | 标记 | 自 |
---|---|---|---|---|
含 Angular 的 ASP.NET Core | angular |
[C#] | Web/MVC/SPA | 8.0 |
含 React.js 的 ASP.NET Core | react |
[C#] | Web/MVC/SPA | 8.0 |
Blazor 服务器应用 | blazorserver |
[C#] | Web/Blazor | 8.0 |
Blazor 服务器应用空 | blazorserver-empty |
[C#] | Web/Blazor | 8.0 |
BlazorWebAssembly 应用空 | blazorwasm-empty |
[C#] | Web/Blazor/WebAssembly | 8.0 |
--dry-run
显示有关以下内容的摘要:给定命令运行导致模板创建时发生的情况。 自 .NET Core 2.2 SDK 起可用。
--force
强制生成内容,即使会更改现有文件,也不例外。 当选择的模板将覆盖输出目录中的现有文件时,需要执行此操作。
-?|-h|--help
打印命令帮助。 可针对
dotnet new
命令本身或任何模板调用它。 例如dotnet new mvc --help
。-lang|--language {C#|F#|VB}
要创建的模板的语言。 接受的语言因模板而异(请参阅参数部分中的默认值)。 对于某些模板无效。
备注
某些 shell 将
#
解释为特殊字符。 在这些情况下,请将语言参数值括在引号中。 例如dotnet new console -lang "F#"
。-n|--name <OUTPUT_NAME>
所创建的输出的名称。 如果未指定名称,使用的是当前目录的名称。
-f|--framework <FRAMEWORK>
指定目标框架。 它需要目标框架名字对象 (TFM)。 示例:“net6.0”、“net7.0-macos”。 此值将反映在项目文件中。
-no-update-check
禁止在实例化模板时检查模板包更新。 自 .NET SDK 6.0.100 之后可用。 从使用
dotnet new --install
安装的模板包实例化模板时,dotnet new
会检查模板是否有更新。 从 .NET 6 开始,不对 .NET 默认模板进行更新检查。 若要更新 .NET 默认模板,请安装 .NET SDK 的修补程序版本。-o|--output <OUTPUT_DIRECTORY>
用于放置生成的输出的位置。 默认为当前目录。
--project <PROJECT_PATH>
模板添加到的项目。 此项目用于上下文评估。 如果未指定,将使用当前目录或父目录中的项目。 自 .NET SDK 7.0.100 之后可用。
-d|--diagnostics
启用诊断输出。 自 .NET SDK 7.0.100 之后可用。
-v|--verbosity <LEVEL>
设置命令的详细级别。 允许的值为
q[uiet]
、m[inimal]
、n[ormal]
和diag[nostic]
。 自 .NET SDK 7.0.100 之后可用。
每个模板都可能定义了附加选项。 有关详细信息,请参阅适用于 dotnet new
的 .NET 默认模板。
创建 C# 控制台应用程序项目:
.NET CLIdotnet new console
在当前目录中创建 F# 控制台应用程序项目:
.NET CLIdotnet new console --language "F#"
在指定的目录中创建 .NET Standard 2.0 类库项目:
.NET CLIdotnet new classlib --framework "netstandard2.0" -o MyLibrary
在当前目录中新建没有设置身份验证的 ASP.NET Core C# MVC 项目:
.NET CLIdotnet new mvc -au None
创建新的 xUnit 项目:
.NET CLIdotnet new xunit
在当前目录中创建 global.json ,将 SDK 版本设置为 8.0.101:
.NET CLIdotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
显示 C# 控制台应用程序模板的帮助:
.NET CLIdotnet new console -h
显示 F# 控制台应用程序模板的帮助:
.NET CLIdotnet new console --language "F#" -h