本文适用于:✔️ .NET 6 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,请使用包含update选项的--check-only子命令。
之前可用的其他选项仍可用于各自的子命令。
每个子命令的单独帮助可通过 -h 或 --help 选项获得:dotnet new <subcommand> --help 列出子命令的所有支持选项。
此外,tab 自动补全现可供 dotnet new 使用。 它支持安装模板名称的自动补全,以及所选模板所提供选项的自动补全。
若要激活 .NET SDK 的 tab 自动补全,请参阅启用 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以查看所有已安装模板的列表。此命令
search应 用于在 NuGet.org 中搜索模板。有关随 .NET SDK 附带的模板列表,请参阅 预安装模板。
选项
--dry-run显示有关以下内容的摘要:给定命令运行导致模板创建时发生的情况。
--force强制生成内容,即使会更改现有文件,也不例外。 当选择的模板将覆盖输出目录中的现有文件时,需要执行此操作。
-
-?|-h|--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]、d[etailed]和diag[nostic]。 有关详细信息,请参阅 LoggerVerbosity。
模板选项
每个模板都可能定义了附加选项。 有关详细信息,请参阅适用于 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 版本设置为 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