Windows アプリ用の Visual Studio プロジェクトおよび項目テンプレートVisual Studio project and item templates for Windows apps

Visual Studio 2019 によって提供される多数のプロジェクト テンプレートと項目テンプレートは、C# または C++ を使用して Windows 10 デバイス用のアプリをビルドするときに役立ちます。Visual Studio 2019 provides many project and item templates that help you build apps for Windows 10 devices by using C# or C++. このトピックではテンプレートについて説明しますが、これによって、シナリオに合わせてテンプレートを選ぶことができます。This topic describes the templates and helps you choose one for your scenario.

  • プロジェクト テンプレートには、プロジェクト ファイル、コード ファイル、アプリをビルドするように構成されているその他のアセット、またはアプリで読み込んで使用できるコンポーネントが含まれます。Project templates include project files, code files, and other assets that are configured to build an app or a component that can be loaded and used by an app.
  • 項目テンプレートは、共通して使用されるコードと、プロジェクトに追加すると開発時間を短縮できる XAML を含むプロジェクト ファイルです。Item templates are project files that contain commonly used code and XAML that can be added to a project to reduce development time. たとえば、項目テンプレートを使用すると、新しいウィンドウ、ページ、またはコントロールをアプリに追加できます。For example, you can use an item template to add a new window, page, or control to your app.

WinUI テンプレートWinUI templates

Windows UI ライブラリ (WinUI) は、デスクトップ (.NET およびネイティブ Win32) と UWP アプリ プラットフォームにおける、Windows アプリ用の最新のネイティブ ユーザー インターフェイス (UI) プラットフォームです。The Windows UI Library (WinUI) is the modern native user interface (UI) platform for Windows apps across desktop (.NET and native Win32) and UWP app platforms. WinUI 3 は、WinUI の最新メジャー バージョンであり、WinUI をデスクトップ Windows アプリ用の完全な UX フレームワークに変換します。WinUI 3 is the latest major version of WinUI, and it transforms WinUI into a full UX framework for desktop Windows apps.

WinUI 3 は、Project Reunion の一部として入手できます。WinUI 3 is available as part of Project Reunion. これには、Visual Studio 2019 用の VSIX パッケージが含まれています。このパッケージにより、WinUI ベースのインターフェイスを備えたアプリのビルドを開始するのに役立つプロジェクト テンプレートと項目テンプレートが提供されます。It includes a VSIX package for Visual Studio 2019 that provides project and item templates that help you get started building apps with a WinUI-based interface.

Project Reunion VSIX パッケージと WinUI プロジェクト テンプレートをインストールする手順については、「開発環境を設定する」を参照してください。For instructions to install the Project Reunion VSIX package and the WinUI project templates, see Set up your development environment. 使用できる WinUI プロジェクト テンプレートと項目テンプレートの詳細については、「WinUI 3 プロジェクトを作成する」を参照してください。For more information about the available WinUI project and item templates, see Create WinUI 3 projects.

UWP テンプレートUWP templates

Visual Studio には、C# または C++ を使用して UWP アプリをビルドするためのさまざまなプロジェクト テンプレートが用意されています。Visual Studio provides a variety of project templates for building UWP apps with C# or C++. これらのプロジェクト テンプレートを使用するには、Visual Studio をインストールするときに、ユニバーサル Windows プラットフォーム開発 ワークロードを含める必要があります。To use these project templates, you must include the Universal Windows Platform development workload when you install Visual Studio. C++ プロジェクト テンプレートの場合は、ユニバーサル Windows プラットフォーム開発 ワークロードの C++ (v142) ユニバーサル Windows プラットフォーム ツール オプション コンポーネントも含める必要があります。For the C++ project templates, you must also include the C++ (v142) Universal Windows Platforms tools optional component for the Universal Windows Platform development workload.

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

Visual Studio で新しいプロジェクトを作成するときに UWP C# プロジェクト テンプレートを利用するには、言語を [C#] 、プラットフォームを [Windows] 、プロジェクトの種類を [UWP] としてフィルター処理します。To access the UWP C# project templates when you create a new project in Visual Studio, filter the language to C#, the platform to Windows, and the project type to UWP.

UWP C# プロジェクト テンプレート

これらのプロジェクト テンプレートを使用して C# UWP アプリを作成できます。You can use these project templates to create C# UWP apps.

テンプレートTemplate 説明Description
空のアプリ (ユニバーサル Windows)Blank App (Universal Windows) UWP アプリを作成します。Creates a UWP app. 生成されるプロジェクトには、UI のビルドを開始するために使用できる Windows.UI.Xaml.Controls.Page クラスから派生した基本的なページが含まれています。The generated project includes a basic page that derives from the Windows.UI.Xaml.Controls.Page class that you can use to start building your UI.
単体テスト アプリ (ユニバーサル Windows)Unit Test App (Universal Windows) UWP アプリ用の C# 単体テスト プロジェクトを作成します。Creates a unit test project in C# for a UWP app. 詳細については、「C# コードの単体テスト」を参照してください。For more information, see Unit test C# code.

これらのプロジェクト テンプレートを使用して C# UWP アプリの部分をビルドできます。You can use these project templates to build pieces of a C# UWP app.

テンプレートTemplate 説明Description
クラス ライブラリ (ユニバーサル Windows)Class Library (Universal Windows) マネージド コードで記述された他の UWP アプリが使用できる C# のマネージド クラス ライブラリ (DLL) を作成します。Creates a managed class library (DLL) in C# that can be used by other UWP apps written in managed code.
Windows ランタイム コンポーネント (ユニバーサル Windows)Windows Runtime Component (Universal Windows) アプリが記述されたプログラミング言語に関係なく、すべての UWP アプリが使用できる C# の Windows ランタイム コンポーネントを作成します。Creates a Windows Runtime component in C# that can be consumed by any UWP app, regardless of the programming language in which the app is written.
省略可能なコード パッケージ (ユニバーサル Windows)Optional Code Package (Universal Windows) アプリによって読み込むことができる実行可能 C# コードを含む、省略可能なパッケージを作成します。Creates an optional package with executable C# code that can be loaded by an app. 詳細については、実行可能コードを含む省略可能なパッケージに関するページを参照してください。For more information, see Optional packages with executable code.

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

C++ UWP アプリのビルドに使用できるテクノロジは 2 種類あります。There are two different technologies you can use to build C++ UWP apps:

  • 推奨されるテクノロジは C++/WinRT です。The recommended technology is C++/WinRT. これは C++ 言語プロジェクションで、ヘッダー ファイルに全面的に実装され、最新の WinRT API への最上位アクセス権を提供するように設計されています。This is a C++ language projection that is implemented entirely in header files, and designed to provide you with first-class access to the modern WinRT API.
  • または、古い C++/CX の拡張セットを使用することもできます。Alternatively, you can use the older C++/CX set of extensions. C++/CX は引き続きサポートされますが、代わりに C++/WinRT を使用することをお勧めします。C++/CX is still supported, but we recommend that you use C++/WinRT instead.

Visual Studio で新しいプロジェクトを作成するときに UWP C++ プロジェクト テンプレートを利用するには、言語を [C++] 、プラットフォームを [Windows] 、プロジェクトの種類を [UWP] としてフィルター処理します。To access the UWP C++ project templates when you create a new project in Visual Studio, filter the language to C++, the platform to Windows, and the project type to UWP.

注意

既定では、Visual Studio の ユニバーサル Windows プラットフォーム開発 ワークロードで利用できるのは C++/CX プロジェクト テンプレートのみです。By default, the Universal Windows Platform development workload in Visual Studio only provides access to the C++/CX project templates. C++/WinRT プロジェクト テンプレートを利用するには、C++/WinRT VSIX パッケージをインストールする必要があります。To access the C++/WinRT project templates, you must install the C++/WinRT VSIX package.

UWP C++ プロジェクト テンプレート

これらのプロジェクト テンプレートを使用して C++ UWP アプリを作成できます。You can use these project templates to create C++ UWP apps.

テンプレートTemplate 説明Description
空のアプリ (C++/WinRT)Blank App (C++/WinRT) XAML ユーザー インターフェイスを備えた C++/WinRT UWP アプリを作成します。Creates a C++/WinRT UWP app with a XAML user interface. 生成されるプロジェクトには、UI のビルドを開始するために使用できる Windows.UI.Xaml.Controls.Page クラスから派生した基本的なページが含まれています。The generated project includes a basic page that derives from the Windows.UI.Xaml.Controls.Page class that you can use to start building your UI.
コア アプリ (C++/WinRT)Core App (C++/WinRT) CoreApplication を使用して、XAML ユーザー インターフェイスではなくさまざまな UI フレームワークと統合する、C++/WinRT UWP アプリを作成します。Creates a C++/WinRT UWP app that uses CoreApplication to integrate with a variety of UI frameworks instead of a XAML user interface. このプロジェクト テンプレートを使用した、DirectX を使用する単純なゲームの作成方法を説明するチュートリアルは、DirectX を使用した単純な UWP ゲームの作成に関するページを参照してください。For a walkthrough that demonstrates how to use this project template to create a simple game that uses DirectX, see Create a simple UWP game with DirectX.
空のアプリ (ユニバーサル Windows - C++/CX)Blank App (Universal Windows - C++/CX) XAML ユーザー インターフェイスを備えた C++/WinRT UWP アプリを作成します。Creates a C++/WinRT UWP app with a XAML user interface. 生成されるプロジェクトには、UI のビルドを開始するために使用できる、WinUI ライブラリの Windows.UI.Xaml.Controls.Page クラスから派生した基本的なページが含まれています。The generated project includes a basic page that derives from the Windows.UI.Xaml.Controls.Page class in the WinUI library that you can use to start building your UI.
DirectX 11 および XAML アプリ (ユニバーサル Windows - C++/CX)DirectX 11 and XAML App (Universal Windows - C++/CX) XAML UI コントロールを使用できるように DirectX 11 と SwapChainPanel を使用する UWP アプリを作成します。Creates a UWP app that uses DirectX 11 and a SwapChainPanel so you can use XAML UI controls. 詳細については、「DirectX ゲーム プロジェクト テンプレート」を参照してください。For more information, see DirectX game project templates.
DirectX 11 アプリ (ユニバーサル Windows - C++/CX)DirectX 11 App (Universal Windows - C++/CX) DirectX 11 を使用する UWP アプリを作成します。Creates a UWP app that uses DirectX 11. 詳細については、「DirectX ゲーム プロジェクト テンプレート」を参照してください。For more information, see DirectX game project templates.
DirectX 12 アプリ (ユニバーサル Windows - C++/CX)DirectX 12 App (Universal Windows - C++/CX) DirectX 12 を使用する UWP アプリを作成します。Creates a UWP app that uses DirectX 12. 詳細については、「DirectX ゲーム プロジェクト テンプレート」を参照してください。For more information, see DirectX game project templates.
単体テスト アプリ (ユニバーサル Windows - C++/CX)Unit Test App (Universal Windows - C++/CX) UWP アプリ用の C++ 単体テスト プロジェクトを作成します。Creates a unit test project in C++/CX for a UWP app. 詳細については、「C++ UWP DLL をテストする方法」を参照してください。For more information, see How to test a C++ UWP DLL.

これらのプロジェクト テンプレートを使用して C++ UWP アプリの部分をビルドできます。You can use these project templates to build pieces of a C++ UWP app.

テンプレートTemplate 説明Description
Windows ランタイム コンポーネント (C++/WinRT)Windows Runtime Component (C++/WinRT) アプリが記述されたプログラミング言語に関係なく、すべての UWP アプリが使用できる C++/WinRT の Windows ランタイム コンポーネントを作成します。Creates a Windows Runtime component in C++/WinRT that can be consumed by any UWP app, regardless of the programming language in which the app is written.
Windows ランタイム コンポーネント (ユニバーサル Windows)Windows Runtime Component (Universal Windows) アプリが記述されたプログラミング言語に関係なく、すべての UWP アプリが使用できる C++/CX の Windows ランタイム コンポーネントを作成します。Creates a Windows Runtime component in C++/CX that can be consumed by any UWP app, regardless of the programming language in which the app is written.
DLL (ユニバーサル Windows)DLL (Universal Windows) UWP アプリで使用できる、C++/CX のダイナミックリンク ライブラリ (DLL) を作成するためのプロジェクト。A project for creating a dynamic-link library (DLL) in C++/CX that can be used in a UWP app. 詳細については、「DLL (C++/CX)」を参照してください。For more information, see DLLs (C++/CX).
スタティック ライブラリ (ユニバーサル Windows)Static Library (Universal Windows) UWP アプリで使用できる、C++/CX のスタティック ライブラリ (LIB) を作成するためのプロジェクト。A project for creating a static library (LIB) in C++/CX that can be used in a UWP app. 詳細については、「スタティック ライブラリ (C++/CX)」を参照してください。For more information, see Static libraries (C++/CX).

C++/Win32 テンプレートC++/Win32 templates

Visual Studio では、ネイティブの C++ で Win32 API に直接アクセスできるデスクトップ Windows アプリをビルドするためのさまざまなプロジェクト テンプレートが提供されます。Visual Studio provides a variety of project templates for building desktop Windows apps with native C++ and direct access to the Win32 API. これらのプロジェクト テンプレートを使用するには、Visual Studio をインストールするときに、C++ によるデスクトップ開発 ワークロードを含める必要があります。To use these project templates, you must include the Desktop development with C++ workload when you install Visual Studio. このワークロードには、デスクトップ アプリ、コンソール アプリ、およびライブラリをビルドするためのプロジェクト テンプレートが含まれています。This workload includes project templates for building desktop apps, console apps, and libraries.

デスクトップ アプリのプロジェクト テンプレートProject templates for desktop apps

Visual Studio で新しいプロジェクトを作成するときに、従来のデスクトップ アプリ用の C++ プロジェクト テンプレートを利用するには、言語を [C++] 、プラットフォームを [Windows] 、プロジェクトの種類を [デスクトップ] としてフィルター処理します。To access the C++ project templates for classic desktop apps when you create a new project in Visual Studio, filter the language to C++, the platform to Windows, and the project type to Desktop.

ネイティブ C++ アプリ プロジェクト テンプレート

テンプレートTemplate 説明Description
Windows デスクトップ アプリケーションWindows Desktop Application C++ を使用した従来の Windows デスクトップ アプリを作成します。Creates a classic Windows desktop app with C++. 詳しくは、「チュートリアル: 従来の Windows デスクトップ アプリケーションの作成」を参照してください。For more information, see Walkthrough: Create a traditional Windows Desktop application.
Windows デスクトップ ウィザードWindows Desktop Wizard 従来の Windows デスクトップ アプリ、コンソール アプリ、ダイナミックリンク ライブラリ (DLL)、スタティック ライブラリのいずれかのプロジェクトを作成するために使用できる、ステップバイステップのウィザードを提供します。Provides a step-by-step wizard you can use to create one of the following types of projects: a classic Windows desktop app, a console app, a dynamic-link library (DLL), or a static library. 詳細については、「Windows デスクトップ ウィザード」および「チュートリアル:従来の Windows デスクトップ アプリケーションの作成」を参照してください。For more information, see Windows Desktop Wizard and Walkthrough: Create a traditional Windows Desktop application.
Windows アプリケーション パッケージ プロジェクトWindows Application Packaging Project MSIX パッケージにデスクトップ アプリをビルドするために使用できるプロジェクトを作成します。Creates a project that you can use to build a desktop app into an MSIX package. これは、最新のデプロイ エクスペリエンスをもたらし、パッケージ拡張機能を使用して Windows 10 の機能と統合できるなど、さまざまなメリットがあります。This provides a modern deployment experience, the ability to integrate with Windows 10 features via package extensions, and much more. 詳細については、Windows アプリケーション パッケージ プロジェクトに関するページを参照してください。For more information, see Windows Application Packaging Project.

コンソール アプリのプロジェクト テンプレートProject templates for console apps

コンソール アプリの C++ プロジェクト テンプレートを利用するには、言語を [C++] 、プラットフォームを [Windows] 、プロジェクトの種類を [コンソール] としてフィルター処理します。To access the C++ project templates for console apps, filter the language to C++, the platform to Windows, and the project type to Console.

ネイティブ C++ コンソール プロジェクト テンプレート

テンプレートTemplate 説明Description
Windows コンソール アプリケーション (C++/WinRT)Windows Console Application (C++/WinRT) ユーザー インターフェイスがない C++/WinRT コンソール アプリを作成します。Creates a C++/WinRT console app without a user interface. 詳細については、「C++/WinRT のクイックスタート」を参照してください。For more information, see C++/WinRT quick-start. このプロジェクト テンプレートには、C++/WinRT VSIX が必要です。This project template requires the C++/WinRT VSIX.
コンソール アプリConsole App ユーザー インターフェイスがないコンソール アプリを作成します。Creates a console app without a user interface. 詳しくは、「チュートリアル: 標準 C++ プログラムの作成」を参照してください。For more information, see Walkthrough: Creating a Standard C++ Program.
空のプロジェクトEmpty Project アプリケーション、ライブラリ、または DLL を作成するための空のプロジェクト。An empty project for creating an application, library, or DLL. 必要なコードまたはリソースを追加する必要があります。You must add any code or resources required.

ライブラリのプロジェクト テンプレートProject templates for libraries

ライブラリの C++ プロジェクト テンプレートを利用するには、言語を [C++] 、プラットフォームを [Windows] 、プロジェクトの種類を [ライブラリ] としてフィルター処理します。To access the C++ project templates for libraries, filter the language to C++, the platform to Windows, and the project type to Library.

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

テンプレートTemplate 説明Description
ダイナミックリンク ライブラリ (DLL)Dynamic-Link Library (DLL) ダイナミックリンク ライブラリ (DLL) を作成するためのプロジェクト。A project for creating a dynamic-link library (DLL). 詳しくは、「チュートリアル: ダイナミックリンク ライブラリの作成と使用」を参照してください。For more information, see Walkthrough: Creating and using a dynamic link library.
スタティック ライブラリStatic Library スタティック ライブラリ (LIB) を作成するためのプロジェクト。A project for creating a static library (LIB). 詳しくは、「チュートリアル: スタティック ライブラリの作成と使用」を参照してください。For more information, see Walkthrough: Create and use a static library.

ネイティブ C++ および Win32 の項目テンプレートItem templates for native C++ and Win32

C++ プロジェクト テンプレートには、プロジェクトへの新しいファイルやリソースの追加といったタスクを実行するために使用できる多数の項目テンプレートが含まれています。The C++ project templates for include many item templates that you can use to perform tasks like adding new files and resources to your project. 包括的な一覧は、「Visual C++ の新しい項目の追加テンプレートの使用方法」を参照してください。For a comprehensive list, see Using Visual C++ Add New Item Templates.

.NET テンプレート.NET templates

Visual Studio では、.NET と C# を使用するデスクトップ Windows アプリをビルドするためのさまざまなプロジェクト テンプレートが提供されます。Visual Studio provides a variety of project templates for building desktop Windows apps that use .NET and C#. これらのプロジェクト テンプレートを使用するには、Visual Studio をインストールするときに、 .NET デスクトップ開発 ワークロードを含める必要があります。To use these project templates, you must include the .NET desktop development workload when you install Visual Studio.

Visual Studio で新しいプロジェクトを作成するときにデスクトップ C# プロジェクト テンプレートを利用するには、言語を [C#] 、プラットフォームを [Windows] 、プロジェクトの種類を [デスクトップ] としてフィルター処理します。To access the .NET C# project templates when you create a new project in Visual Studio, filter the language to C#, the platform to Windows, and the project type to Desktop.

.NET C# プロジェクト テンプレート

これらのプロジェクト テンプレートを使用して、C# と .NET を使用するアプリを作成できます。You can use these project templates to create apps using C# and .NET.

テンプレートTemplate 説明Description
WPF アプリ (.NET Core)WPF App (.NET Core) .NET Core を対象とする WPF アプリを作成します。Creates a WPF app that targets .NET Core. このプロジェクト テンプレートのチュートリアルは、WPF アプリケーションの作成に関するページを参照してください。For a walkthrough of this project template, see Create a WPF application.
WPF アプリ (.NET Framework)WPF App (.NET Framework) .NET Framework を対象とする WPF アプリを作成します。Creates a WPF app that targets the .NET Framework. このプロジェクト テンプレートのチュートリアルは、初めての WPF アプリケーションを作成するチュートリアルのページを参照してください。For a walkthrough of this project template, see Tutorial: Create your first WPF application.
Windows フォーム アプリ (.NET Core)Windows Forms App (.NET Core) .NET Core を対象とする Windows フォーム アプリを作成します。Creates a Windows Forms app that targets .NET Core.
Windows フォーム アプリ (.NET Framework)Windows Forms App (.NET Framework) .NET Framework を対象とする Windows フォーム アプリを作成します。Creates a Windows Forms app that targets the .NET Framework. このプロジェクト テンプレートのチュートリアルについては、「Visual Studio で C# を使用して Windows フォーム アプリを作成する」を参照してください。For a walkthrough of this project template, see Create a Windows Forms app in Visual Studio with C#.
Windows アプリケーション パッケージ プロジェクトWindows Application Packaging Project MSIX パッケージに WPF または Windows フォーム アプリをビルドするために使用できるプロジェクトを作成します。Creates a project that you can use to build a WPF or Windows Forms app into an MSIX package. これは、最新のデプロイ エクスペリエンスをもたらし、パッケージ拡張機能を使用して Windows 10 の機能と統合できるなど、さまざまなメリットがあります。This provides a modern deployment experience, the ability to integrate with Windows 10 features via package extensions, and much more. 詳細については、Windows アプリケーション パッケージ プロジェクトに関するページを参照してください。For more information, see Windows Application Packaging Project.