Visual Studio项目创建需选对模板、配对工具链并确认工作负载就位,否则易现MSB8020或C1083错误;C++推荐CMake项目而非空项目;添加文件须通过“添加现有项”;多项目解决方案须正确设置启动项目及依赖关系。

Visual Studio 项目创建不是“点下一步就完事”的流程,关键在于选对模板、配对工具链、确认工作负载是否就位——缺一不可,否则新建完连编译都会报 MSB8020 或 C1083 这类底层错误。
选模板前先核对工作负载是否安装到位
很多新手在“创建新项目”里搜到 Console App 或 Windows Forms App 就直接点,结果生成后右键“生成”失败。根本原因是:VS 安装时没勾选对应语言和平台的工作负载。
- C++ 项目必须安装
使用 C++ 的桌面开发工作负载(含 MSVC 编译器、CMake 工具、Windows SDK) - C# Windows 窗体或 WPF 项目需启用
桌面开发与 .NET工作负载 - ASP.NET Core 项目依赖
ASP.NET 和 Web 开发工作负载,且目标框架(如.NET 10.0)要匹配已安装的 SDK - 检查方式:打开 Visual Studio Installer → 找到当前 VS 版本 → 点“修改”→ 查看已勾选项
C++ 项目别乱选“空项目”,优先用 CMakeLists.txt 驱动
传统 Win32 空项目或控制台模板会生成 .vcxproj 文件,但维护成本高、跨平台差。现代 C++ 项目应默认走 CMake 路线,尤其当你后续要加第三方库(如 vcpkg)、做 CI 或迁移到 Linux 时。
Visual Studio 18.8.1 官方固定版本安装引导程序,当前条目使用微软发布历史中的 Professional Web Installer,适合旧项目兼容、环境回退、复现特定构建链和排查版本差异等场景。
- 新建项目时,在搜索框输入
CMake,选中CMake 项目模板(不是“空项目”或“Win32 项目”) - 项目根目录下必须有
CMakeLists.txt,内容至少包含cmake_minimum_required(VERSION 3.25)和project(MyApp) - VS 会自动识别该文件并加载为 CMake 项目;若只放了
.cpp文件而没CMakeLists.txt,它不会自动配置构建环境 - 验证是否生效:右下角状态栏应显示 “CMake: Ready”,且“解决方案资源管理器”中能看到 CMakeTargets 节点
添加已有代码到项目时,别只拖文件
把写好的 main.cpp 或 utils.h 直接拖进“解决方案资源管理器”看似省事,但常导致编译器找不到头文件、链接失败或调试符号丢失。
- 正确做法:右键项目 →
添加→现有项,而不是拖拽到文件夹视图 - 若添加的是头文件,需在属性页中将
项类型设为不参与生成,避免被误编译 - 第三方静态库(如
libcurl.lib)不能只复制进项目目录,还需在项目属性 →链接器 → 常规 → 附加库目录中填路径,并在输入 → 附加依赖项中写库名 - vcpkg 安装的库推荐用
vcpkg integrate install注册全局,再在 CMakeLists.txt 中用find_package()引入,比手动配路径更稳
多项目解决方案里,启动项目容易设错
一个解决方案含多个项目(如一个主程序 + 一个类库)时,按 F5 运行却提示“无法启动”,大概率是启动项目没设对——VS 不会自动选中带 main() 或 Program.cs 的那个。
- 检查方式:右键解决方案 →
属性→ 左侧选通用属性 → 启动项目→ 确认选中的是可执行项目(类型为控制台应用或Windows 应用程序) - 快捷操作:右键目标项目 →
设为启动项目(注意不是“设为启动项”) - 若启动项目依赖类库,需右键解决方案 →
项目依赖项→ 勾选对应依赖关系,否则生成顺序错乱,链接时报LNK2019 - 特别注意:C++ 类库项目本身不能设为启动项目,必须指向引用它的可执行项目
真正卡住人的往往不是语法,而是项目结构和构建配置之间的隐式耦合——比如 CMakeLists.txt 里 target_link_libraries() 漏写一个库,或者 .vcxproj 里 PlatformToolset 和你本地安装的 MSVC 版本不一致。这些细节不报红,但会让整个项目静默失效。

















