dotnet new <範本>

本文適用於: ✔️ .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 選項變成 listsearchinstalluninstall 子命令。
  • --update-apply 選項變成了 update 子命令。
  • 如要使用 --update-check,請搭配使用 update 子命令和 --check-only 選項。

先前版本中可用的其他選項仍可與各自的子命令搭配使用。 如需每項子命令的個別說明,可透過 -h--help 選項取得:dotnet new <subcommand> --help 會列出子命令的所有支援選項。

此外,dotnet new 現可使用 TAB 鍵自動完成。 這項功能支援完成已安裝範本的名稱,以及所選範本提供的選項。 若要為 .NET SDK 啟用 TAB 鍵自動完成,請參閱啟用 TAB 鍵自動完成

Tab 鍵自動完成

自 .NET SDK 7.0.100 起,dotnet new 可使用 TAB 鍵自動完成。 不僅支援完成已安裝範本的名稱,也支援完成所選範本提供的選項。 若要為 .NET SDK 啟用 TAB 鍵自動完成,請參閱啟用 TAB 鍵自動完成

隱含還原

您不必執行 dotnet restore,因為其會由需要進行還原的所有命令隱含執行,例如 dotnet newdotnet builddotnet rundotnet testdotnet publishdotnet pack。 若要停用隱含還原,請使用 --no-restore 選項。

dotnet restore 命令在適合進行明確還原的特定案例中仍可派上用場,例如 Azure DevOps Services 中的持續整合組建,或在需要明確控制何時進行還原的組建系統中。

如需了解如何管理 NuGet 摘要,請參閱 dotnet restore 文件

引數

  • TEMPLATE

    要在叫用命令時具現化的範本。 每個範本可能會有您可以傳遞的特定選項。 如需詳細資訊,請參閱範本選項

    您可以執行 dotnet new list 以查看所有已安裝範本的清單。

    從 .NET Core 3.0 SDK 起到 .NET SDK 5.0.300 為止,您於下列情況叫用 dotnet new 命令時,此 CLI 會在 NuGet.org 中搜尋範本:

    • CLI 叫用 dotnet new 時找不到範本相符項目,連部分相符都找不到。
    • 有較新版本的範本可供使用。 在此情況下系統會建立專案或成品,但 CLI 會警告您此範本有更新版本。

    自 .NET SDK 5.0.300 起,search 命令應用於在 NuGet.org 中搜尋範本。

下表顯示隨 .NET SDK 預先安裝的範本。 範本的預設語言會顯示在方括號內。 按一下簡短名稱連結即可查看特定範本選項。

範本 簡短名稱 語言 標籤 推出的版本
主控台應用程式 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 Forms (WinForms) 應用程式 winforms [C#]、VB 一般/WinForms 3.0 (VB 為 5.0)
Windows Forms (WinForms) 類別庫 winformslib [C#]、VB 一般/WinForms 3.0 (VB 為 5.0)
背景工作服務 worker [C#] 一般/背景工作/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 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 應用程式 (模型檢視控制器) mvc [C#]、F# Web/MVC 1.0
ASP.NET Core Web 應用程式 webapp, razor [C#] Web/MVC/Razor 頁面 2.2,、2.0
Razor 類別庫 razorclasslib [C#] Web/Razor/程式庫/Razor 類別庫 2.1
ASP.NET Core Web API webapi [C#]、F# Web/Web API/API/服務/WebAPI 1.0
ASP.NET Core API webapiaot [C#] Web/Web API/API/服務 8.0
ASP.NET Core API 控制器 apicontroller [C#] Web/ASP.NET 8.0
ASP.NET Core gRPC 服務 grpc [C#] Web/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
Web 組態 webconfig Config 1.0
方案檔 sln 解決方案 1.0
通訊協定緩衝區檔案 proto Web/gRPC 3.0
EditorConfig 檔案 editorconfig(../docs/core/tools/dotnet-new-sdk-templates.md#editorconfig) Config 6.0

下表顯示已停止且不再預安裝 .NET SDK 的範本。 按一下簡短名稱連結即可查看特定範本選項。

範本 簡短名稱 語言 標籤
ASP.NET Core 與 Angular angular [C#] Web/MVC/SPA 8.0
ASP.NET Core 與 React.js 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}

    要建立的範本語言。 接受的語言會因範本而有所不同 (請參閱引數一節中的預設值)。 並非所有範本都適用。

    注意

    某些殼層會將 # 解譯為特殊字元。 在這些情況下,請用引號括住語言參數值。 例如: dotnet new console -lang "F#"

  • -n|--name <OUTPUT_NAME>

    所建立輸出的名稱。 如果未指定名稱,則會使用目前目錄的名稱。

  • -f|--framework <FRAMEWORK>

    指定目標 Framework。 預期為目標 Framework Moniker (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# 主控台應用程式專案:

    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
    
  • 在目前將 SDK 版本設為 3.1.101 的目錄中,建立 global.json

    dotnet new globaljson --sdk-version 3.1.101
    
  • 顯示 C# 主控台應用程式範本的說明:

    dotnet new console -h
    
  • 顯示 F# 主控台應用程式範本的說明:

    dotnet new console --language "F#" -h
    

另請參閱