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
を使用するには、--check-only
オプションと共にupdate
サブコマンドを使用します。
以前に使用できたその他のオプションは、それぞれのサブコマンドで引き続き使用できます。
-h
または --help
オプションを使用すると、サブコマンドごとに個別のヘルプを使用できます。dotnet new <subcommand> --help
では、サブコマンドでサポートされているすべてのオプションが一覧表示されます。
さらに、dotnet new
でタブ補完が使用可能になりました。 インストールされているテンプレート名と、選択したテンプレートで提供されるオプションで補完がサポートされます。
.NET SDK のタブ補完をアクティブにするには、タブ補完を有効にすることに関するページを参照してください。
.NET SDK 7.0.100 以降では、タブ補完を dotnet new
で使用できます。 インストールされたテンプレート名の補完と、選択したテンプレートが提供するオプションの補完がサポートされます。
.NET SDK のタブ補完をアクティブにするには、タブ補完を有効にすることに関するページを参照してください。
復元を必要とするすべてのコマンド (dotnet new
、dotnet build
、dotnet run
、dotnet test
、dotnet publish
、dotnet pack
など) によって暗黙的に実行されるため、dotnet restore
を実行する必要がなくなりました。 暗黙的な復元を無効にするには、--no-restore
オプションを使用します。
dotnet restore
などの、明示的な復元が意味のある一部のシナリオや、復元が行われるタイミングを明示的に制御する必要があるビルド システムでは、dotnet restore
は引き続き有用なコマンドです。
NuGet フィードの管理方法については、dotnet restore
のドキュメントをご覧ください。
TEMPLATE
コマンドが呼び出されたときにインスタンス化するテンプレート。 各テンプレートには、渡すことができるオプションが存在する場合があります。 詳細については、テンプレートのオプションを参照してください。
dotnet new list
を実行すると、インストールされているすべてのテンプレートの一覧を表示できます。.NET Core 3.0 SDK から .NET SDK 5.0.300 においては、次の条件で
dotnet new
コマンドを呼び出すと、CLI によって NuGet.org 内のテンプレートが検索されます。dotnet new
の呼び出し時に、CLI でテンプレートの一致を (部分的にも) 検出できない場合。- テンプレートの新しいバージョンが利用可能な場合。 この場合、プロジェクトまたは成果物が作成されますが、更新されたバージョンのテンプレートについて、CLI によって警告が表示されます。
.NET SDK 5.0.300 以降では、
search
コマンドを使用して、NuGet.org 内のテンプレートを検索する必要があります。
次の表は、.NET SDK にプレインストールされているテンプレートを示しています。 テンプレートの既定の言語は、角かっこで示されます。 短い名前のリンクをクリックすると、特定のテンプレート オプションが表示されます。
テンプレート | 短い名前 | 言語 | Tags | 導入時期 |
---|---|---|---|---|
コンソール アプリケーション | console |
[C#], F#, VB | Common/Console | 1.0 |
クラス ライブラリ | classlib |
[C#], F#, VB | Common/Library | 1.0 |
WPF アプリケーション | wpf |
[C#]、VB | Common/WPF | 3.0 (VB の場合は 5.0) |
WPF クラス ライブラリ | wpflib |
[C#]、VB | Common/WPF | 3.0 (VB の場合は 5.0) |
WPF カスタム コントロール ライブラリ | wpfcustomcontrollib |
[C#]、VB | Common/WPF | 3.0 (VB の場合は 5.0) |
WPF ユーザー コントロール ライブラリ | wpfusercontrollib |
[C#]、VB | Common/WPF | 3.0 (VB の場合は 5.0) |
Windows フォーム (WinForms) アプリケーション | winforms |
[C#]、VB | Common/WinForms | 3.0 (VB の場合は 5.0) |
Windows フォーム (WinForms) クラス ライブラリ | winformslib |
[C#]、VB | Common/WinForms | 3.0 (VB の場合は 5.0) |
Worker Service | worker |
[C#] | Common/Worker/Web | 3.0 |
MSTest テスト プロジェクト | mstest |
[C#], F#, VB | Test/MSTest | 1.0 |
MSTest テスト クラス | mstest-class |
[C#], F#, VB | Test/MSTest | 1.0 |
NUnit 3 テスト プロジェクト | nunit |
[C#], F#, VB | Test/NUnit | 2.1.400 |
NUnit 3 テスト項目 | nunit-test |
[C#], F#, VB | Test/NUnit | 2.2 |
xUnit テスト プロジェクト | xunit |
[C#], F#, VB | Test/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/WebAssembly/PWA | 3.1.300 |
ASP.NET Core 空 | web |
[C#], F# | Web/Empty | 1.0 |
ASP.NET Core Web アプリ (モデル ビュー コントローラー) | mvc |
[C#], F# | Web/MVC | 1.0 |
ASP.NET Core Web アプリ | webapp, razor |
[C#] | Web/MVC/Razor Pages | 2.2、2.0 |
Razor クラス ライブラリ | razorclasslib |
[C#] | Web/Razor/Library/Razor Class Library | 2.1 |
ASP.NET Core Web API | webapi |
[C#], F# | Web/Web API/API/Service/WebAPI | 1 |
ASP.NET Core API | webapiaot |
[C#] | Web/Web API/API/Service | 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 |
構成 | 3.0 | |
global.json file | 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 |
次の表は、廃止され、.NET SDK と共にプレインストールされなくなったテンプレートを示しています。 短い名前のリンクをクリックすると、特定のテンプレート オプションが表示されます。
テンプレート | 短い名前 | 言語 | タグ | 以降廃止 |
---|---|---|---|---|
Angular 付きの ASP.NET Core | angular |
[C#] | Web/MVC/SPA | 8.0 |
React.js 付きの ASP.NET Core | 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>
ターゲット フレームワークを指定します。 ターゲット フレームワーク モニカー (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# コンソール アプリケーション プロジェクトを作成します。
.NET CLIdotnet new console
現在のディレクトリに、F# コンソール アプリケーション プロジェクトを作成します。
.NET CLIdotnet new console --language "F#"
指定したディレクトリに .NET Standard 2.0 クラス ライブラリ プロジェクトを作成します。
.NET CLIdotnet new classlib --framework "netstandard2.0" -o MyLibrary
認証なしで、現在のディレクトリに新しい ASP.NET Core C# MVC プロジェクトを作成します。
.NET CLIdotnet new mvc -au None
新しい xUnit プロジェクトを作成します。
.NET CLIdotnet new xunit
SDK バージョンを 8.0.101 に設定して、現在のディレクトリに global.json を作成します。
.NET CLIdotnet new globaljson --sdk-version 8.0.101 --roll-forward latestFeature
C# コンソール アプリケーション テンプレートのヘルプを表示します。
.NET CLIdotnet new console -h
F# コンソール アプリケーション テンプレートのヘルプを表示します。
.NET CLIdotnet new console --language "F#" -h
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。