能创建但模板是否出现及能否编译运行,取决于是否安装对应工作负载:.net控制台项目需“.net桌面开发”工作负载,c++项目需“使用c++的桌面开发”,纯c项目需选win32空项目并手动添加.c文件;目标框架应选.net 8.0或10.0而非.net framework 4.x。

能创建,但模板是否出现、能否成功编译运行,取决于你装了哪个工作负载——不是装了VS就能直接点“控制台应用”就完事的。
找不到“控制台应用”模板?检查工作负载安装
VS 2019 及之后版本(包括 VS 2022)默认不带任何语言工作负载。你看到的模板列表是动态过滤出来的,没装对应组件,它就压根不显示。
-
.NET控制台项目(C# / VB):必须安装.NET 桌面开发工作负载(它会一并装好.NET SDK) -
C++控制台项目:必须安装使用 C++ 的桌面开发工作负载 -
C语言项目(非 C++):Visual Studio 不原生支持纯 C 项目模板;你得选Win32 控制台应用程序,并在向导中勾选空项目,再手动添加.c文件(注意后缀必须是.c,否则编译器按 C++ 规则处理)
如果搜索“控制台”后空白或只有模糊结果,别折腾模板筛选器——直接点“安装更多工具和功能”,进 Visual Studio Installer,勾选对应工作负载,点“修改”。
Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。
创建时目标框架选错会导致后续报错
新建 .NET 控制台项目时,“其他信息”页里要选 目标框架。选错会影响 Console.ReadLine()、DateTime.Now 等基础 API 的可用性,甚至让项目无法加载。
- 新手建议选
.NET 8.0或.NET 10.0 (长期支持)—— 它们兼容性好,文档全,且支持顶级语句(不用写class Program { static void Main() { ... } }) - 避免选
.NET Framework 4.x(除非维护老系统),它和现代 .NET SDK 工具链行为差异大,dotnet run命令不适用 - 如果项目创建后,在
Program.cs里看到红色波浪线标出Console未定义,大概率是目标框架与 SDK 不匹配,右键项目 → “属性” → 检查TargetFramework是否为net8.0或类似值
运行后窗口一闪而过?别急着加 Console.Read()
这是最常被教程误导的操作。加 Console.Read() 或 Console.ReadKey() 是临时调试手段,不是标准做法。
- 按
Ctrl+F5(启动但不调试):VS 会自动在程序退出前加一行“按任意键继续”,此时不需要代码干预 - 按
F5(启动调试):窗口默认不会停留,因为调试器接管了生命周期;这时加Console.Read()才有意义,但更推荐在最后一行设断点,用调试器观察变量 - 真正该关注的是:你的程序逻辑是否执行完毕?比如
Console.WriteLine("done");后有没有提前return或异常抛出?一闪而过往往说明程序已正常结束,只是你看漏了输出
最容易被忽略的一点:C++ 项目生成的 HelloWorld.exe 默认放在 x64\Debug\ 或 x86\Debug\ 下,路径里有空格或中文会导致命令行运行失败;而 .NET 项目的输出目录由 bin\Debug\net8.0\ 这类结构决定,改名或移动 .csproj 后务必重新生成,否则运行的还是旧二进制。










