dotnet new <TEMPLATE>

本文适用于:✔️ .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 选项已变更为 listsearchinstalluninstall 子命令。
  • --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 newdotnet builddotnet rundotnet testdotnet publishdotnet 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
    

请参阅