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
選項變成list
、search
、install
與uninstall
子命令。--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 new
、dotnet build
、dotnet run
、dotnet test
、dotnet publish
和 dotnet 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 中搜尋範本。- CLI 叫用
下表顯示隨 .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測試專案 | 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 應用程式 (模型檢視控制器) | 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 |
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
在目前目錄中建立 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