次の方法で共有


チュートリアル: プロジェクト テンプレートを作成する

.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 9 以降のバージョン。

  • このチュートリアル シリーズの パート 1 を完了します。

  • ターミナルを開き、 working\content フォルダーに移動します。

プロジェクト テンプレートの作成

プロジェクト テンプレートを使用すると、すぐに実行できるプロジェクトが生成されるため、ユーザーは作業セットのコードから簡単に開始できます。 .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"
  }
}

この構成ファイルには、テンプレートのすべての設定が含まれています。 nameshortNameなどの基本設定を確認できますが、tags/typeに設定されているproject値もあります。 これにより、テンプレートが "プロジェクト" テンプレートとして分類されます。 作成するテンプレートの種類に制限はありません。 itemprojectの値は、ユーザーが検索するテンプレートの種類を簡単にフィルター処理できるように、.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

プロジェクト テンプレートをテストする

プロジェクト テンプレートがインストールされたので、テストします。

  1. テスト フォルダーに移動します。

  2. 次のコマンドを使用して新しいコンソール アプリケーションを作成します。これで、 dotnet run コマンドを使用して簡単にテストできる作業プロジェクトが生成されます。

    dotnet new consoleasync -n MyProject
    

    次の出力が表示されます。

    The template "Example templates: async project" was created successfully.
    
  3. 次のコマンドを使用してプロジェクトを実行します。

    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を使用して、インストールされているテンプレート パッケージの一覧をいつでも確認できます。これには、各テンプレート パッケージについてアンインストールするコマンドが含まれます。

次のステップ

このチュートリアルでは、プロジェクト テンプレートを作成しました。 項目テンプレートとプロジェクト テンプレートの両方を使いやすいファイルにパッケージ化する方法については、このチュートリアル シリーズに進んでください。