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>] [--no-update-check] [-o|--output <OUTPUT_DIRECTORY>] [Template options]
dotnet new -h|--help
描述
dotnet new
命令基于模板创建 .NET 项目或其他项目。
命令调用模板引擎,以根据指定的模板和选项在磁盘上创建项目。
注意
从 .NET SDK 7.0.100 预览版 2 开始, dotnet new
语法已更改:
- 和
--list
--search
--uninstall
--install
选项成为list
子search
install
uninstall
命令。 - 该
--update-apply
选项成为update
子命令。 - 若要使用
--update-check
,请使用包含选项的update
--check
子命令。
之前可用的其他选项仍可用于各自的子命令。
每个子命令的单独帮助可通过 -h
或 --help
选项获得: dotnet new <subcommand> --help
列出子命令的所有支持选项。
此外,选项卡完成现在可供 dotnet new
使用。 它支持安装模板名称的完成,以及所选模板提供的选项的完成。
若要激活 .NET SDK 的选项卡完成,请参阅 “启用选项卡完成”。
隐式还原
无需运行 dotnet restore
,因为它由所有需要还原的命令隐式运行,如 dotnet new
、dotnet build
、dotnet run
、dotnet test
、dotnet publish
和 dotnet pack
。 若要禁用隐式还原,请使用 --no-restore
选项。
在执行显式还原有意义的某些情况下,例如 dotnet restore
中,或在需要显式控制还原发生时间的生成系统中,dotnet restore
命令仍然有用。
自变量
TEMPLATE
调用命令时要实例化的模板。 每个模板可能具有可传递的特定选项。 有关详细信息,请参阅模板选项。
可以运行
dotnet new --list
以查看所有已安装模板的列表。从 .NET Core 3.0 SDK 开始并以 .NET Core 5.0.300 SDK 结束,当你在以下情况下调用
dotnet new
命令时,CLI 将在 NuGet.org 中搜索模板:- 如果在调用
dotnet new
时 CLI 找不到模板匹配项,即使是部分匹配也不行。 - 如果有较新版本的模板可用。 在这种情况下,将创建项目或工件,但 CLI 会就模板的更新版本发出警告。
从 .NET Core 5.0.300 SDK 开始,应使用
--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 |
[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 服务器应用 | blazorserver |
[C#] | Web/Blazor | 3.0 |
BlazorWebAssembly 应用 | blazorwasm |
[C#] | Web/Blazor/WebAssembly | 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 |
含 Angular 的 ASP.NET Core | angular |
[C#] | Web/MVC/SPA | 2.0 |
含 React.js 的 ASP.NET Core | react |
[C#] | Web/MVC/SPA | 2.0 |
含 React.js 和 Redux 的 ASP.NET Core | reactredux |
[C#] | Web/MVC/SPA | 2.0 |
Razor 类库 | razorclasslib |
[C#] | Web/Razor/库/Razor 类库 | 2.1 |
ASP.NET Core Web API | webapi |
[C#],F# | Web/WebAPI | 1.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 |
选项
--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>
所创建的输出的名称。 如果未指定名称,使用的是当前目录的名称。
-no-update-check
禁止在实例化模板时检查模板包更新。 自 .NET 6.0.100 SDK 起可用。 从使用
dotnet new --install
安装的模板包实例化模板时,dotnet new
会检查模板是否有更新。 从 .NET 6 开始,不对 .NET 默认模板进行更新检查。 若要更新 .NET 默认模板,请安装 .NET SDK 的修补程序版本。-o|--output <OUTPUT_DIRECTORY>
用于放置生成的输出的位置。 默认为当前目录。
模板选项
每个模板都可能定义了附加选项。 有关详细信息,请参阅适用于 dotnet new
的 .NET 默认模板。
示例
创建 C# 控制台应用程序项目:
dotnet new console
在当前目录中创建 F# 控制台应用程序项目:
dotnet new console --language "F#"
在指定的目录中创建 .NET Standard 2.0 类库项目:
dotnet new classlib --framework "netstandard2.0" -o MyLibrary
在当前目录中新建没有设置身份验证的 ASP.NET Core C# MVC 项目:
dotnet new mvc -au None
创建新的 xUnit 项目:
dotnet new xunit
在当前目录中创建 global.json,将 SDK 版本设置为 3.1.101:
dotnet new globaljson --sdk-version 3.1.101
显示 C# 控制台应用程序模板的帮助:
dotnet new console -h
显示 F# 控制台应用程序模板的帮助:
dotnet new console --language "F#" -h