Windows アプリ用の Visual Studio プロジェクトおよび項目テンプレート

Visual Studio 2019 (およびそれ以降) には、C# または C++ を使用して Windows 11 および Windows 10 デバイス用のアプリをビルドするのに役立つ、多数のプロジェクトおよび項目テンプレートがあります。 このトピックではテンプレートについて説明しますが、これによって、シナリオに合わせてテンプレートを選ぶことができます。

  • プロジェクト テンプレートには、プロジェクト ファイル、コード ファイル、アプリをビルドするように構成されているその他のアセット、またはアプリで読み込んで使用できるコンポーネントが含まれます。
  • 項目テンプレートは、共通して使用されるコードと、プロジェクトに追加すると開発時間を短縮できる XAML を含むプロジェクト ファイルです。 たとえば、項目テンプレートを使用すると、新しいウィンドウ、ページ、またはコントロールをアプリに追加できます。

これらのテンプレートにアクセスするために Visual Studio をインストールして構成する方法の詳細については、「Windows App SDK 用のツールをインストールする」を参照してください。

WinUI テンプレート

Windows UI ライブラリ (WinUI) は、デスクトップ (.NET およびネイティブ Win32) と UWP アプリ プラットフォームにおける、Windows アプリ用の最新のネイティブ ユーザー インターフェイス (UI) プラットフォームです。 WinUI 3 は、WinUI の最新メジャー バージョンであり、WinUI をデスクトップ Windows アプリ用の完全な UX フレームワークに変換します。

WinUI 3 は、Windows App SDK の一部として使用できます。 これには、WinUI ベースのインターフェイスを備えたアプリのビルドを開始するのに役立つプロジェクトおよび項目テンプレートを提供する、Visual Studio 2019 (およびそれ以降) 用の VSIX パッケージが含まれています。

WinUI (C#) 用 Template Studio は Visual Studio 2022 の拡張機能であり、ウィザード ベースの UI を使用して、新しい .NET WinUI アプリをより迅速に作成できます。 さまざまなプロジェクトの種類と機能から選択して、カスタマイズされたプロジェクト テンプレートを生成できます。

使用できる WinUI プロジェクト テンプレートと項目テンプレートの詳細については、「Visual Studio での WinUI 3 テンプレート」を参照してください。

UWP テンプレート

Visual Studio には、C# または C++ を使用して UWP アプリをビルドするためのさまざまなプロジェクト テンプレートが用意されています。 これらのプロジェクト テンプレートを使用するには、Visual Studio をインストールするときに、ユニバーサル Windows プラットフォーム開発ワークロードを含める必要があります。 C++ プロジェクト テンプレートの場合は、ユニバーサル Windows プラットフォーム開発ワークロードの C++ (v142) ユニバーサル Windows プラットフォーム ツール オプション コンポーネントも含める必要があります。

UWP 用 Template Studio は Visual Studio 2022 の拡張機能であり、ウィザード ベースの UI を使用して、新しい .NET UWP アプリをより迅速に作成できます。 さまざまなプロジェクトの種類と機能から選択して、カスタマイズされたプロジェクト テンプレートを生成できます。

C# および UWP のプロジェクト テンプレート

Visual Studio で新しいプロジェクトを作成するときに UWP C# プロジェクト テンプレートを利用するには、言語を [C#]、プラットフォームを [Windows]、プロジェクトの種類を [UWP] としてフィルター処理します。

UWP C# project templates

これらのプロジェクト テンプレートを使用して C# UWP アプリを作成できます。

テンプレート 説明
空のアプリ (ユニバーサル Windows) UWP アプリを作成します。 生成されるプロジェクトには、UI のビルドを開始するために使用できる Windows.UI.Xaml.Controls.Page クラスから派生した基本的なページが含まれています。
単体テスト アプリ (ユニバーサル Windows) UWP アプリ用の C# 単体テスト プロジェクトを作成します。 詳細については、「C# コードの単体テスト」を参照してください。

これらのプロジェクト テンプレートを使用して C# UWP アプリの部分をビルドできます。

テンプレート 説明
クラス ライブラリ (ユニバーサル Windows) マネージド コードで記述された他の UWP アプリが使用できる C# のマネージド クラス ライブラリ (DLL) を作成します。
Windows ランタイム コンポーネント (ユニバーサル Windows) アプリが記述されたプログラミング言語に関係なく、すべての UWP アプリが使用できる C# の Windows ランタイム コンポーネントを作成します。
省略可能なコード パッケージ (ユニバーサル Windows) アプリによって読み込むことができる実行可能 C# コードを含む、省略可能なパッケージを作成します。 詳細については、実行可能コードを含む省略可能なパッケージに関するページを参照してください。

C++ および UWP のプロジェクト テンプレート

C++ UWP アプリのビルドに使用できるテクノロジは 2 種類あります。

  • 推奨されるテクノロジは C++/WinRT です。 これは C++ 言語プロジェクションで、ヘッダー ファイルに全面的に実装され、最新の WinRT API への最上位アクセス権を提供するように設計されています。
  • または、古い C++/CX の拡張セットを使用することもできます。 C++/CX は引き続きサポートされますが、代わりに C++/WinRT を使用することをお勧めします。

Visual Studio で新しいプロジェクトを作成するときに UWP C++ プロジェクト テンプレートを利用するには、言語を [C++]、プラットフォームを [Windows]、プロジェクトの種類を [UWP] としてフィルター処理します。

注意

既定では、Visual Studio のユニバーサル Windows プラットフォーム開発ワークロードで利用できるのは C++/CX プロジェクト テンプレートのみです。 C++/WinRT プロジェクト テンプレートを利用するには、C++/WinRT VSIX パッケージをインストールする必要があります。

UWP C++ project templates

これらのプロジェクト テンプレートを使用して C++ UWP アプリを作成できます。

テンプレート 説明
空のアプリ (C++/WinRT) XAML ユーザー インターフェイスを備えた C++/WinRT UWP アプリを作成します。 生成されるプロジェクトには、UI のビルドを開始するために使用できる Windows.UI.Xaml.Controls.Page クラスから派生した基本的なページが含まれています。
コア アプリ (C++/WinRT) CoreApplication を使用して、XAML ユーザー インターフェイスではなくさまざまな UI フレームワークと統合する、C++/WinRT UWP アプリを作成します。 このプロジェクト テンプレートを使用した、DirectX を使用する単純なゲームの作成方法を説明するチュートリアルは、DirectX を使用した単純な UWP ゲームの作成に関するページを参照してください。
空のアプリ (ユニバーサル Windows - C++/CX) XAML ユーザー インターフェイスを備えた C++/WinRT UWP アプリを作成します。 生成されるプロジェクトには、UI のビルドを開始するために使用できる、WinUI ライブラリの Windows.UI.Xaml.Controls.Page クラスから派生した基本的なページが含まれています。
DirectX 11 および XAML アプリ (ユニバーサル Windows - C++/CX) XAML UI コントロールを使用できるように DirectX 11 と SwapChainPanel を使用する UWP アプリを作成します。 詳細については、「DirectX ゲーム プロジェクト テンプレート」を参照してください。
DirectX 11 アプリ (ユニバーサル Windows - C++/CX) DirectX 11 を使用する UWP アプリを作成します。 詳細については、「DirectX ゲーム プロジェクト テンプレート」を参照してください。
DirectX 12 アプリ (ユニバーサル Windows - C++/CX) DirectX 12 を使用する UWP アプリを作成します。 詳細については、「DirectX ゲーム プロジェクト テンプレート」を参照してください。
単体テスト アプリ (ユニバーサル Windows - C++/CX) UWP アプリ用の C++ 単体テスト プロジェクトを作成します。 詳細については、「C++ UWP DLL をテストする方法」を参照してください。

これらのプロジェクト テンプレートを使用して C++ UWP アプリの部分をビルドできます。

テンプレート 説明
Windows ランタイム コンポーネント (C++/WinRT) アプリが記述されたプログラミング言語に関係なく、すべての UWP アプリが使用できる C++/WinRT の Windows ランタイム コンポーネントを作成します。
Windows ランタイム コンポーネント (ユニバーサル Windows) アプリが記述されたプログラミング言語に関係なく、すべての UWP アプリが使用できる C++/CX の Windows ランタイム コンポーネントを作成します。
DLL (ユニバーサル Windows) UWP アプリで使用できる、C++/CX のダイナミックリンク ライブラリ (DLL) を作成するためのプロジェクト。 詳細については、「DLL (C++/CX)」を参照してください。
スタティック ライブラリ (ユニバーサル Windows) UWP アプリで使用できる、C++/CX のスタティック ライブラリ (LIB) を作成するためのプロジェクト。 詳細については、「スタティック ライブラリ (C++/CX)」を参照してください。

C++ デスクトップ (Win32) テンプレート

Visual Studio では、ネイティブの C++ で Win32 API に直接アクセスできるデスクトップ Windows アプリをビルドするためのさまざまなプロジェクト テンプレートが提供されます。 これらのプロジェクト テンプレートを使用するには、Visual Studio をインストールするときに、C++ によるデスクトップ開発ワークロードを含める必要があります。 このワークロードには、デスクトップ アプリ、コンソール アプリ、およびライブラリをビルドするためのプロジェクト テンプレートが含まれています。

推奨されるテクノロジは C++/WinRT です。 これは C++ 言語プロジェクションで、ヘッダー ファイルに全面的に実装され、最新の WinRT API への最上位アクセス権を提供するように設計されています。

C++ デスクトップ アプリのプロジェクト テンプレート

Visual Studio で新しいプロジェクトを作成するときに、デスクトップ アプリ用の C++ プロジェクト テンプレートを利用するには、言語を [C++]、プラットフォームを [Windows]、プロジェクトの種類を [デスクトップ] としてフィルター処理します。

Native C++ app project templates

テンプレート 説明
Windows デスクトップ アプリケーション (C++/WinRT) Windows デスクトップ用の C++/WinRT クライアント アプリケーションを作成します。 詳細については、「Windows デスクトップ アプリケーション (C++/WinRT)」を参照してください。 このプロジェクト テンプレートには、C++/WinRT VSIX が必要です。
Windows デスクトップ アプリケーション C++ を使用した従来の Windows デスクトップ アプリを作成します。 詳細については、「チュートリアル: 従来の Windows デスクトップ アプリケーションを作成する」を参照してください。
Windows デスクトップ ウィザード 従来の Windows デスクトップ アプリ、コンソール アプリ、ダイナミックリンク ライブラリ (DLL)、スタティック ライブラリのいずれかのプロジェクトを作成するために使用できる、ステップバイステップのウィザードを提供します。 詳細については、「Windows デスクトップ ウィザード」および「チュートリアル: 従来の Windows デスクトップ アプリケーションを作成する」を参照してください。
Windows アプリケーション パッケージ プロジェクト MSIX パッケージにデスクトップ アプリをビルドするために使用できるプロジェクトを作成します。 これによって提供される最新のデプロイ エクスペリエンスを使用すると、パッケージ拡張機能による Windows の機能との統合などを行うことができます。 詳細については、Windows アプリケーション パッケージ プロジェクトに関するページを参照してください。

C++ コンソール アプリのプロジェクト テンプレート

コンソール アプリの C++ プロジェクト テンプレートを利用するには、言語を [C++]、プラットフォームを [Windows]、プロジェクトの種類を [コンソール] としてフィルター処理します。

Native C++ console project templates

テンプレート 説明
Windows コンソール アプリケーション (C++/WinRT) ユーザー インターフェイスがない C++/WinRT コンソール アプリを作成します。 詳細については、「C++/WinRT のクイックスタート」を参照してください。 このプロジェクト テンプレートには、C++/WinRT VSIX が必要です。
コンソール アプリ ユーザー インターフェイスがないコンソール アプリを作成します。 詳細については、「チュートリアル: 標準 C++ プログラムの作成」を参照してください。
空のプロジェクト アプリケーション、ライブラリ、または DLL を作成するための空のプロジェクト。 必要なコードまたはリソースを追加する必要があります。

C++ ライブラリのプロジェクト テンプレート

ライブラリの C++ プロジェクト テンプレートを利用するには、言語を [C++]、プラットフォームを [Windows]、プロジェクトの種類を [ライブラリ] としてフィルター処理します。

Native C++ library project templates

テンプレート 説明
ダイナミックリンク ライブラリ (DLL) ダイナミックリンク ライブラリ (DLL) を作成するためのプロジェクト。 詳細については、「チュートリアル: ダイナミック リンク ライブラリの作成と使用」を参照してください。
スタティック ライブラリ スタティック ライブラリ (LIB) を作成するためのプロジェクト。 詳細については、「チュートリアル: スタティック ライブラリを作成して使用する」を参照してください。

C++ デスクトップ アプリの項目テンプレート

C++ プロジェクト テンプレートには、プロジェクトへの新しいファイルやリソースの追加といったタスクを実行するために使用できる多数の項目テンプレートが含まれています。 包括的な一覧は、「Visual C++ の新しい項目の追加テンプレートの使用方法」を参照してください。

.NET テンプレート

Visual Studio では、.NET と C# を使用するデスクトップ Windows アプリをビルドするためのさまざまなプロジェクト テンプレートが提供されます。 これらのプロジェクト テンプレートを使用するには、Visual Studio をインストールするときに、.NET デスクトップ開発ワークロードを含める必要があります。

Visual Studio で新しいプロジェクトを作成するときにデスクトップ C# プロジェクト テンプレートを利用するには、言語を [C#]、プラットフォームを [Windows]、プロジェクトの種類を [デスクトップ] としてフィルター処理します。

.NET C# project templates

これらのプロジェクト テンプレートを使用して、C# と .NET を使用するアプリを作成できます。

テンプレート 説明
WPF アプリケーション .NET 6 以降を対象とする WPF アプリを作成します。 このプロジェクト テンプレートのチュートリアルは、WPF アプリケーションの作成に関するページを参照してください。
WPF アプリ (.NET Framework) .NET Framework を対象とする WPF アプリを作成します。 このプロジェクト テンプレートのチュートリアルについては、「チュートリアル: 初めての WPF アプリケーションを作成する」を参照してください。
Windows フォーム アプリ .NET 6 以降を対象とする Windows フォーム アプリを作成します。
Windows フォーム アプリ (.NET Framework) .NET Framework を対象とする Windows フォーム アプリを作成します。 このプロジェクト テンプレートのチュートリアルについては、「Visual Studio で C# を使用して Windows フォーム アプリを作成する」を参照してください。
Windows アプリケーション パッケージ プロジェクト MSIX パッケージに WPF または Windows フォーム アプリをビルドするために使用できるプロジェクトを作成します。 これによって提供される最新のデプロイ エクスペリエンスを使用すると、パッケージ拡張機能による Windows の機能との統合などを行うことができます。 詳細については、Windows アプリケーション パッケージ プロジェクトに関するページを参照してください。