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 プロジェクトまたはその他の成果物が作成されます。

このコマンドは、テンプレート エンジンを呼び出し、指定されたテンプレートとオプションに基づいて、ディスク上に成果物を作成します。

Note

.NET 7 SDK 以降では、dotnet new 構文が変更されました。

  • --list--search--install--uninstall オプションが listsearchinstalluninstall サブコマンドになりました。
  • --update-apply オプションが update サブコマンドになりました。
  • --update-check を使用するには、--check-only オプションと共に update サブコマンドを使用します。

以前に使用できたその他のオプションは、それぞれのサブコマンドで引き続き使用できます。 -h または --help オプションを使用すると、サブコマンドごとに個別のヘルプを使用できます。dotnet new <subcommand> --help では、サブコマンドでサポートされているすべてのオプションが一覧表示されます。

さらに、dotnet new でタブ補完が使用可能になりました。 インストールされているテンプレート名と、選択したテンプレートで提供されるオプションで補完がサポートされます。 .NET SDK のタブ補完をアクティブにするには、タブ補完を有効にすることに関するページを参照してください。

Tab 補完機能

.NET SDK 7.0.100 以降では、タブ補完を dotnet new で使用できます。 インストールされたテンプレート名の補完と、選択したテンプレートが提供するオプションの補完がサポートされます。 .NET SDK のタブ補完をアクティブにするには、タブ補完を有効にすることに関するページを参照してください。

暗黙的な復元

復元を必要とするすべてのコマンド (dotnet newdotnet builddotnet rundotnet testdotnet publishdotnet 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 [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(../docs/core/tools/dotnet-new-sdk-templates.md#editorconfig) 構成 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# コンソール アプリケーション プロジェクトを作成します。

    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 バージョンが 3.1.101 に設定されます。

    dotnet new globaljson --sdk-version 3.1.101
    
  • C# コンソール アプリケーション テンプレートのヘルプを表示します。

    dotnet new console -h
    
  • F# コンソール アプリケーション テンプレートのヘルプを表示します。

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

関連項目