适用于 Windows 应用的 Visual Studio 项目和项模板

Visual Studio 2019(及更高版本)提供很多项目和项模板,可帮助你使用 C# 或 C++ 生成适用于 Windows 11 和 Windows 10 设备的应用。 本主题介绍了这些模板,并可帮助你选择一种适用于你的场景的模板。

  • 项目模板包括项目文件、代码文件和其他资产,可配置它们以生成应用或可由应用加载和使用的组件。
  • 项模板是包含常用代码和 XAML 的项目文件,可以将其添加到项目中以减少开发时间。 例如,你可以使用项模板将新的窗口、页面或控件添加到应用。

有关安装和配置 Visual Studio 以获取这些模板访问权限的信息,请参阅 WinUI 入门

WinUI 模板

WinUI 是新式的本机用户界面 (UI) 平台,适用于跨桌面(.NET 和本机 Win32)和 UWP 应用平台的 Windows 应用。 WinUI 3 是 WinUI 的最新主要版本,它将 WinUI 转换为适用于桌面 Windows 应用的完整 UX 框架。

WinUI 3 作为 Windows 应用 SDK 的一部分提供。 其中包括用于 Visual Studio 2019(及更高版本)的 VSIX 包,此包提供项目和项模板,可帮助你使用基于 WinUI 的界面开始生成应用。

Template Studio for WinUI (C#) 是一个 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 平台工具”可选组件也必须包括在内

Template Studio for UWP 是一个 Visual Studio 2022 扩展,它使用基于向导的 UI 加速新 .NET UWP 应用的创建。 从各种项目类型和功能中进行选择,以生成为你定制的项目模板。

适用于 C# 和 UWP 的项目模板

要在 Visual Studio 中创建新项目时访问UWP C# 项目模板,请将语言筛选为“C#”,将平台筛选为“Windows”并将项目类型筛选为“UWP” 。

UWP C# 项目模板

可以使用这些项目模板来创建 C# UWP 应用。

模板 说明
空白应用(通用 Windows) 创建 UWP 应用。 生成的项目包括一个基础页面,该页面派生自可用于开始生成 UI 的 Windows.UI.Xaml.Controls.Page 类。
单元测试应用(通用 Windows) 采用 C# 为 UWP 应用创建一个单元测试项目。 有关详细信息,请参阅 单元测试 C# 代码

可以使用这些项目模板来生成 C# UWP 应用的各个部分。

模板 说明
类库(通用 Windows) 使用 C# 创建一个托管类库 (DLL),使其可由以托管代码编写的其他 UWP 应用使用。
Windows 运行时组件(通用 Windows) 使用 C# 创建一个 Windows 运行时组件,使其可由任何 UWP 应用使用,而不管该应用是使用哪种编程语言编写的。
可选代码包(通用 Windows) 使用可执行 C# 代码创建一个可由应用加载的可选包。 有关详细信息,请参阅包含可执行代码的可选包

适用于 C++ 和 UWP 的项目模板

可以使用两种不同的技术来生成 C++ UWP 应用:

  • 推荐的技术是 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++ 项目模板

可以使用这些项目模板来创建 C++ UWP 应用。

模板 说明
空白应用 (C++/WinRT) 使用 XAML 用户界面创建 C++/WinRT UWP 应用。 生成的项目包括一个基础页面,该页面派生自可用于开始生成 UI 的 Windows.UI.Xaml.Controls.Page 类。
核心应用 (C++/WinRT) 创建一个使用 CoreApplication 与各种 UI 框架(而不是 XAML 用户界面)集成的 C++/WinRT UWP 应用。 有关演示如何使用该项目模板来创建使用 DirectX 的简单游戏的演练,请参阅创建使用 DirectX 的简单 UWP 游戏
空白应用(通用 Windows - C++/CX) 使用 XAML 用户界面创建 C++/WinRT UWP 应用。 生成的项目包括一个基础页面,该页面派生自 WinUI 库中可用于开始生成 UI 的 Windows.UI.Xaml.Controls.Page 类。
DirectX 11 和 XAML 应用(通用 Windows - C++/CX) 创建一个使用 DirectX 11 的 UWP 应用和一个 SwapChainPanel,以便可以使用 XAML UI 控件。 有关详细信息,请参阅 DirectX 游戏项目模板
DirectX 11 应用(通用 Windows - C++/CX) 创建使用 DirectX 11 的 UWP 应用。 有关详细信息,请参阅 DirectX 游戏项目模板
DirectX 12 应用(通用 Windows - C++/CX) 创建使用 DirectX 12 的 UWP 应用。 有关详细信息,请参阅 DirectX 游戏项目模板
单元测试应用(通用 Windows - C++/CX) 采用 C++/CX 为 UWP 应用创建一个单元测试项目。 有关详细信息,请参阅如何测试 C++ UWP DLL

可以使用这些项目模板来生成 C++ UWP 应用的各个部分。

模板 说明
Windows 运行时组件 (C++/WinRT) 使用 C++/WinRT 创建一个 Windows 运行时组件,使其可由任何 UWP 应用使用,而不管该应用是使用哪种编程语言编写的。
Windows 运行时组件(通用 Windows) 使用 C++/CX 创建一个 Windows 运行时组件,使其可由任何 UWP 应用使用,而不管该应用是使用哪种编程语言编写的。
DLL (通用 Windows) 一个使用 C++/CX 创建动态链接库 (DLL) 的项目,可以在 UWP 应用中使用。 有关详细信息,请参阅 DLL (C++/CX)
静态库(通用 Windows) 一个使用 C++/CX 创建静态库 (LIB) 的项目,可以在 UWP 应用中使用。 有关详细信息,请参见静态库 (C++/CX)

C++ 桌面 (Win32) 模板

Visual Studio 提供了各种项目模板,用于生成使用本机 C++ 的桌面 Windows 应用以及直接访问 Win32 API。 要使用这些项目模板,在你安装 Visual Studio 时,“使用 C++ 进行桌面开发”工作负载必须包括在内。 此工作负载包括用于生成桌面应用、控制台应用和库的项目模板。

推荐的技术是 C++/WinRT。 这是一种 C++ 语言投影,完全在头文件中实现,旨在提供对新式 WinRT API 的一流访问。

适用于 C++ 桌面应用的项目模板

在 Visual Studio 中创建新项目时,若要访问桌面应用的 C++ 项目模板,请将语言筛选为“C++”,将平台筛选为“Windows”并将项目类型筛选为“桌面”。

本机 C++ 应用项目模板

模板 说明
Windows 桌面应用程序 (C++/WinRT) 创建适用于 Windows 桌面的 C++/WinRT 客户端应用程序。 有关详细信息,请参阅 Windows 桌面应用程序 (C++/WinRT)。 此项目模板需要 C++ /WinRT VSIX
Windows 桌面应用程序 使用 C++ 创建经典 Windows 桌面应用。 有关详细信息,请参阅演练:创建传统的 Windows 桌面应用程序
Windows 桌面向导 提供可用于创建以下一种类型的项目的分步向导:经典 Windows 桌面应用、控制台应用、动态链接库 (DLL) 或静态库。 有关详细信息,请参阅 Window 桌面向导演练:创建传统的 Windows 桌面应用程序
Windows 应用程序打包项目 创建可用于将桌面应用生成到 MSIX 包的项目。 这提供了一种新式部署体验、通过包扩展与 Windows 功能集成的功能以及更多其他功能。 有关详细信息,请参阅 Windows 应用程序打包项目

适用于 C++ 控制台应用的项目模板

要访问适用于控制台应用的 C++ 项目模板,请将语言筛选为“C++”,将平台筛选为“Windows”并将项目类型筛选为“控制台”。 。

本机 C++ 控制台项目模板

模板 说明
Windows 控制台应用程序 (C++/WinRT) 在不使用用户界面的情况下创建一个 C++/WinRT 控制台应用。 有关详细信息,请参阅 C++/WinRT 快速入门。 此项目模板需要 C++ /WinRT VSIX
控制台应用 在不使用用户界面的情况下创建一个控制台应用。 有关详细信息,请参阅演练:创建标准 C++ 程序
空项目 用于创建应用程序、库或 DLL 的空项目。 必须添加所需的任何代码或资源。

适用于 C++ 库的项目模板

要访问适用于库的 C++ 项目模板,请将语言筛选为“C++”,将平台筛选为“Windows”并将项目类型筛选为“库”。 。

本机 C++ 库项目模板

模板 说明
动态链接库 (DLL) 创建动态链接库 (DLL) 的项目。 有关详细信息,请参阅演练:创建和使用动态链接库
静态库 创建静态库 (LIB) 的项目。 有关详细信息,请参阅演练:创建和使用静态库

适用于 C++ 桌面应用的项模板

C++ 项目模板包括许多项模板,可使用它们来执行任务,例如向项目中添加新文件和资源。 有关完整列表,请参阅使用 Visual C++ 添加新项模板

.NET 模板

Visual Studio 提供了各种项目模板,用于生成使用 .NET 和 C# 的桌面 Windows 应用。 要使用这些项目模板,在你安装 Visual Studio 时,“.NET 桌面开发”工作负载必须包括在内

要在 Visual Studio 中创建新项目时访问 .NET C# 项目模板,请将语言筛选为“C#”,将平台筛选为“Windows”并将项目类型筛选为“桌面” 。

.NET C# 项目模板

可以使用这些项目模板创建使用 C# 和 .NET 的应用。

模板 说明
WPF 应用程序 创建一个以 .NET 6(或更高版本)为目标的 WPF 应用。 有关此项目模板的演练,请参阅创建 WPF 应用程序
WPF 应用(.NET Framework) 创建一个以 .NET Framework 为目标的 WPF 应用。 有关此项目模板的演练,请参阅教程:创建你的第一个 WPF 应用程序
Windows 窗体应用 创建一个以 .NET 6(或更高版本)为目标的 Windows 窗体应用。
Windows 窗体应用 (.NET Framework) 创建一个以 .NET Framework 为目标的 Windows 窗体应用。 有关此项目模板的演练,请参阅使用 C# 在 Visual Studio 中创建 Windows 窗体应用
Windows 应用程序打包项目 创建可用于将 WPF 或 Windows 窗体应用生成到 MSIX 包的项目。 这提供了一种新式部署体验、通过包扩展与 Windows 功能集成的功能以及更多其他功能。 有关详细信息,请参阅 Windows 应用程序打包项目