チュートリアル: プロジェクト テンプレートを作成する
.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
コマンドを実行すると、コンピューターにインストールされているテンプレートを表示することができます。
シリーズのこのパートで学習する内容は次のとおりです。
- プロジェクト テンプレートのリソースを作成する。
- テンプレートの構成フォルダーとファイルを作成する。
- ファイル パスからテンプレートをインストールする。
- 項目テンプレートをテストする。
- 項目テンプレートをアンインストールする。
前提条件
- このチュートリアル シリーズのパート 1 を完了します。
- ターミナルを開いて working\content フォルダーに移動します。
重要
この記事は、.NET 7 用に作成されています。 ただし、構文 dotnet new
が異なることを除き、.NET 6 以前のバージョンにも適用できます。 list
、search
、install
、および uninstall
のサブコマンドが、それぞれ --list
、--search
、--install
、および --uninstall
オプションになります。
たとえば、.NET 7 の dotnet new install
コマンドは、.NET 6 で dotnet new --install
になります。 すべてのオプションとサブコマンドの一覧を表示するには、dotnet new --help
コマンドを使用してください。
プロジェクト テンプレートを作成する
プロジェクト テンプレートを使用すると、ユーザーがコードのワーキング セットを使用して簡単に作業を開始できる、すぐに実行できるプロジェクトが作成されます。 .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
などの基本設定を確認できますが、project
に設定された tags/type
値もあります。 これにより、テンプレートが "プロジェクト" テンプレートとして分類されます。 作成するテンプレートの種類に制限はありません。 item
および project
値は、ユーザーが検索しているテンプレートの種類を簡単にフィルター処理できるように .NET で推奨されている一般的な名前です。
sourceName
項目は、ユーザーがテンプレートを使用するときに置き換えられます。 すべてのファイル名とファイル コンテンツ内で構成ファイルの sourceName
値が検索され、既定では現在のフォルダーの名前に置き換えられます。 dotnet new
コマンドで -n
または --name
パラメータが渡された場合、現在のフォルダー名ではなく、指定された値が使用されます。 このテンプレートの場合、.csproj ファイルの名前の consoleasync
が置き換えられます。
classifications
項目は、dotnet new
を実行してテンプレートの一覧を取得したときに表示される tags 列を表します。 ユーザーは分類タグに基づいて検索することもできます。 template.json ファイル内の tags
プロパティと、classifications
の tags 一 覧を混同しないようにしてください。 これらは、残念なことに同じ名前になっていますが、2 つの異なる概念です。 template.json ファイルの完全スキーマは JSON Schema Store にあり、「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
プロジェクト テンプレートをテストする
プロジェクト テンプレートをインストールしたので、テストします。
test フォルダーに移動します。
次のコマンドを使用して新しいコンソール アプリケーションを作成します。これで、
dotnet run
コマンドを使用して簡単にテストできる作業プロジェクトが生成されます。dotnet new consoleasync -n MyProject
次の出力が得られます。
The template "Example templates: async project" was created successfully.
次のコマンドを使用して、プロジェクトを実行します。
dotnet run
次の出力が得られます。
Hello World with C#
おめでとうございます! .NET でプロジェクト テンプレートを作成し、配置しました。 このチュートリアル シリーズの次のパートの準備として、作成したテンプレートをアンインストールします。 また、必ず test フォルダーからすべてのファイルを削除してください。 これにより、このチュートリアル シリーズの次のパートの準備が整った状態に戻ります。
テンプレートをアンインストールする
ターミナルで consoleasync フォルダーに移動し、次のコマンドを実行して現在のフォルダーにあるテンプレートをアンインストールします。
- Windows の場合:
dotnet new uninstall .\
- Linux または macOS の場合:
dotnet new uninstall ./
このコマンドにより、アンインストールされたテンプレートの一覧が出力されます。作成したテンプレートも含まれているはずです。
Success: <root path>\working\content\consoleasync was uninstalled.
いつでも dotnet new uninstall
を使用して、インストールされているテンプレート パッケージの一覧を表示できます。これにはテンプレート パッケージごとに、それをアンインストールするコマンドも含まれています。
次の手順
このチュートリアルでは、プロジェクト テンプレートを作成しました。 項目テンプレートとプロジェクト テンプレートの両方を使いやすいファイルにパッケージ化する方法については、このチュートリアル シリーズの続きを参照してください。
.NET