.NET を使用すると、プロジェクト、ファイル、およびリソースを生成するテンプレートを作成してデプロイできます。 このチュートリアルは、 dotnet new コマンドで使用するテンプレートを作成、インストール、アンインストールする方法を説明するシリーズのパート 2 です。
ヒント
.NET SDK に付属する公式の .NET テンプレートは、次のリポジトリにあります。
| テンプレート | リポジトリ |
|---|---|
| コンソール、クラス ライブラリ、共通項目テンプレート | dotnet/sdk |
| ASP.NET テンプレートと Blazor テンプレート | dotnet/aspnetcore |
| ASP.NET シングル ページ アプリケーション テンプレート | dotnet/spa-templates |
| WPF テンプレート | dotnet/wpf |
| Windows フォーム テンプレート | dotnet/winforms |
| テスト テンプレート | dotnet/test-templates |
| MAUI テンプレート | dotnet/maui |
dotnet new list コマンドを実行すると、コンピューターにインストールされているテンプレートを表示できます。
シリーズのこの部分では、次の方法について説明します。
- プロジェクト テンプレートのリソースを作成します。
- テンプレート構成フォルダーとファイルを作成します。
- ファイル パスからテンプレートをインストールします。
- 項目テンプレートをテストします。
- 項目テンプレートをアンインストールします。
[前提条件]
プロジェクト テンプレートの作成
プロジェクト テンプレートを使用すると、すぐに実行できるプロジェクトが生成されるため、ユーザーは作業セットのコードから簡単に開始できます。 .NET には、コンソール アプリケーションやクラス ライブラリなどのいくつかのプロジェクト テンプレートが含まれています。 この例では、標準の "Hello World" コンソール出力を非同期的に実行するものに置き換える新しいコンソール アプリケーション プロジェクトを作成します。
ターミナルで 、working\content フォルダーに移動し、 consoleasync という名前の新しいサブフォルダーを作成します。 サブフォルダーを入力し、 dotnet new console を実行して標準コンソール アプリケーションを生成します。 このテンプレートによって生成されたファイルを編集して、新しいテンプレートを作成します。
working
└───content
└───consoleasync
consoleasync.csproj
Program.cs
Program.csの変更
Program.cs ファイルを開きます。 標準のコンソール プロジェクトはコンソール出力に非同期的に書き込むことができませんので、その機能を追加してください。 コードを次のように変更し、ファイルを保存します。
// See https://aka.ms/new-console-template for more information
await Console.Out.WriteAsync("Hello World with C#");
テンプレートのコンテンツが作成されたので、テンプレートのルート フォルダーにテンプレート構成を作成する必要があります。
テンプレート構成を作成する
このチュートリアルでは、テンプレート フォルダーは working\content\consoleasync にあります。
テンプレートは、テンプレート フォルダーのルートに特別なフォルダーと構成ファイルがあるため、.NET によって認識されます。
まず、.template.configという名前 の 新しいサブフォルダーを作成し、それを入力します。 次に、 template.jsonという名前の新しいファイルを作成します。 フォルダー構造は次のようになります。
working
└───content
└───consoleasync
└───.template.config
template.json
お気に入りのテキスト エディターで template.json を開き、次の json コードを貼り付けて保存します。
{
"$schema": "http://json.schemastore.org/template",
"author": "Me",
"classifications": [ "Common", "Console" ],
"identity": "ExampleTemplate.AsyncProject",
"name": "Example templates: async project",
"shortName": "consoleasync",
"sourceName":"consoleasync",
"tags": {
"language": "C#",
"type": "project"
}
}
この構成ファイルには、テンプレートのすべての設定が含まれています。
nameやshortNameなどの基本設定を確認できますが、tags/typeに設定されているproject値もあります。 これにより、テンプレートが "プロジェクト" テンプレートとして分類されます。 作成するテンプレートの種類に制限はありません。
itemとprojectの値は、ユーザーが検索するテンプレートの種類を簡単にフィルター処理できるように、.NET が推奨する一般的な名前です。
sourceName項目は、ユーザーがテンプレートを使用するときに置き換えられるものです。 構成ファイル内の sourceName の値は、すべてのファイル名とファイルコンテンツで検索され、既定では現在のフォルダーの名前に置き換えられます。
-n コマンドを使用して --name または dotnet new パラメーターを渡すと、指定された値が現在のフォルダー名の代わりに使用されます。 このテンプレートの場合、 consoleasync は .csproj ファイルの名前に置き換えられます。
classifications項目は、を実行してテンプレートの一覧を取得するときに表示されるdotnet new列を表します。 ユーザーは、分類タグに基づいて検索することもできます。 template.jsonファイルの tags プロパティと classifications タグの一覧を混同しないでください。 これらは、残念ながら同じ名前の 2 つの異なる概念です。
template.json ファイルの完全なスキーマは JSON スキーマ ストアにあります。詳細については、「template.jsonのリファレンス」を参照してください。
template.json ファイルの詳細については、dotnet テンプレート wiki を参照してください。
有効な .template.config/template.json ファイルが作成されたので、テンプレートをインストールする準備ができました。 テンプレートをインストールする前に、テンプレートに含めない追加のフォルダーやファイル ( bin フォルダーや obj フォルダーなど) を必ず削除してください。 ターミナルで consoleasync フォルダーに移動し、 dotnet new install .\ 実行して、現在のフォルダーにあるテンプレートをインストールします。 Linux または macOS オペレーティングシステムを使用している場合は、フォワードスラッシュ (dotnet new install ./) を使用してください。
dotnet new install .\
このコマンドは、インストールされているテンプレートの一覧を出力します。これには、ユーザーを含める必要があります。
The following template packages will be installed:
<root path>\working\content\consoleasync
Success: <root path>\working\content\consoleasync installed the following templates:
Templates Short Name Language Tags
-------------------------------------------- ------------------- ------------ ----------------------
Example templates: async project consoleasync [C#] Common/Console
プロジェクト テンプレートをテストする
プロジェクト テンプレートがインストールされたので、テストします。
テスト フォルダーに移動します。
次のコマンドを使用して新しいコンソール アプリケーションを作成します。これで、
dotnet runコマンドを使用して簡単にテストできる作業プロジェクトが生成されます。dotnet new consoleasync -n MyProject次の出力が表示されます。
The template "Example templates: async project" was created successfully.次のコマンドを使用してプロジェクトを実行します。
dotnet run次の出力が表示されます。
Hello World with C#
おめでとうございます! .NET を使用してプロジェクト テンプレートを作成してデプロイしました。 このチュートリアル シリーズの次の部分に備えて、作成したテンプレートをアンインストールします。 テスト フォルダーからもすべてのファイルを削除してください。 これにより、このチュートリアル シリーズの次の部分に向けてクリーンな状態に戻ります。
テンプレートをアンインストールする
ターミナルで consoleasync フォルダーに移動し、次のコマンドを実行して、現在のフォルダーにあるテンプレートをアンインストールします。
-
Windows の場合:
dotnet new uninstall .\ -
Linux または macOS の場合:
dotnet new uninstall ./
このコマンドは、アンインストールされたテンプレートの一覧を出力します。これには、ユーザーが含まれている必要があります。
Success: <root path>\working\content\consoleasync was uninstalled.
dotnet new uninstallを使用して、インストールされているテンプレート パッケージの一覧をいつでも確認できます。これには、各テンプレート パッケージについてアンインストールするコマンドが含まれます。
次のステップ
このチュートリアルでは、プロジェクト テンプレートを作成しました。 項目テンプレートとプロジェクト テンプレートの両方を使いやすいファイルにパッケージ化する方法については、このチュートリアル シリーズに進んでください。
.NET