关键在于安装对应工作负载:Windows 窗体应用需“.NET 桌面开发”,C++ Win32 项目需“使用 C++ 的桌面开发”,WinUI 3 需“Windows 应用程序开发”并启用开发者模式,未安装则模板不可见,必须通过“工具→获取工具和功能”勾选后重启 VS。

Visual Studio 创建 Windows 桌面应用,关键不在“能不能”,而在于选对项目模板和工作负载——选错会导致 Windows 窗体应用 模板不可见、WinUI 项目编译失败,或 C++ 项目连 Win32 头文件都找不到。
确认已安装对应工作负载
没装对工作负载,新建项目时根本看不到模板。不是搜索不到,是压根没加载。
- 对于
Windows 窗体应用 (.NET Framework)或Windows 窗体应用 (.NET):必须安装.NET 桌面开发工作负载(不是“.NET Core 开发”或“ASP.NET”) - 对于 C++
Win32 项目或MFC 应用程序:必须勾选使用 C++ 的桌面开发,且建议同时选中Windows 10/11 SDK和CMake 工具 - 对于
WinUI 3(现代桌面 UI):需安装Windows 应用程序开发工作负载(VS 17.10+ 叫这个名字),并启用系统级“开发者模式”
检查方式:菜单栏 → 工具 → 获取工具和功能 → 切换到“工作负载”页签,确认对应项已打勾。重装不解决,必须在这里手动勾选并重启 VS。
创建项目时模板名称和筛选条件要精准
搜索框里输“windows form”可能匹配不到,因为模板名是带空格和括号的完整字符串。
Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。
-
Windows 窗体应用 (.NET Framework):适用于 .NET Framework 4.7.2+,控件拖拽最稳定,但不支持 WinUI 或 MAUI -
Windows 窗体应用 (.NET):对应 .NET 5/6/7/8,跨平台能力更强,但设计器在某些高 DPI 下偶有渲染偏移 -
WinUI 空白应用 (打包):生成 MSIX 包,必须用Windows App SDK运行时,不能直接双击 exe 运行 -
Windows 桌面应用 (C++):实际是 Win32 项目,模板名就是Windows 桌面应用,不是“Win32”或“C++ Desktop”
别依赖模糊搜索。先在“项目类型”下拉菜单里选 桌面,再按语言过滤,比纯关键词更可靠。
创建后立刻验证设计器和引用是否就绪
项目建完不代表能干活。常见卡点在设计器打不开、System.Windows.Forms 报红、或 MainWindow.xaml 提示“无法加载设计器”。
- WinForms 项目:打开
Form1.cs [设计],若右下角状态栏显示正在加载设计器...超过 10 秒,大概率是目标框架不匹配——检查项目属性 →目标框架是否为.NET 6.0或.NET Framework 4.7.2,而非.NET Standard 2.0 - WinUI 项目:打开
MainWindow.xaml后若只有 XML 编辑器、无实时预览,说明Microsoft.UI.XamlNuGet 包未自动还原,手动执行dotnet restore或点击“解决方案资源管理器”顶部的“还原 NuGet 包” - C++ Win32 项目:若
#include <windows.h>报错,检查项目属性 →常规→Windows SDK 版本是否与已安装 SDK 一致(如10.0.26100.0),且字符集设为使用 Unicode 字符集
运行前注意输出路径和依赖分发方式
双击 Debug\YourApp.exe 跑不起来,不一定是代码问题,而是环境缺失。
- WinForms .NET Framework:目标机器必须装对应版本的
.NET Framework Runtime(如 4.8),不能靠 .NET 8 运行时兼容 - WinForms .NET(Core):可发布为自包含式(
self-contained),但体积大;若选framework-dependent,则用户需预装对应 .NET Runtime - WinUI 3:必须通过 MSIX 安装,或手动部署
Microsoft.WindowsAppRuntime.Bootstrap.dll,直接运行 exe 会弹出0x80073D54错误 - C++ Win32:若用到
vcruntime140.dll,需确保目标机装了Visual C++ Redistributable,或静态链接 CRT(项目属性 →C/C++ → 代码生成 → 运行库改为/MT)
真正容易被忽略的是:WinUI 和 UWP 项目默认启用“仅限 x64”,而你调试时可能在 x86 模式下启动,结果进程一闪而退,连错误日志都不留——务必检查工具栏的“目标平台”下拉框是否与项目配置一致。

















