若要升级在早期版本的 Visual Studio 中创建的项目,请在最新版本的 Visual Studio 中打开该项目。 如果仍在并行使用较旧版本的 Visual Studio,则可以选择不升级项目,直到准备好保持与这两个版本的兼容性。
在 Visual Studio 2026 中,通过设置助手增强了此体验。 安装助手提供使用 Visual Studio 安装程序安装缺少的工具,并保留较旧版本或将项目重定向到最新版本。 可以通过右键单击解决方案并选择“重定目标”解决方案,在解决方案资源管理器中打开设置助手。
打开设置助手后,为每个目标选择一个操作,或选择 全部重定目标 以一次性设置所有项目。 然后选择 “应用” 完成本地升级。 项目重定向后,无法将其转换回早期版本。 在升级现有项目和解决方案文件之前,最好创建现有项目和解决方案文件的备份副本。
注意
Visual Studio 2022 及更高版本已弃用对具有 .dsw 或 .dsp 扩展的项目类型进行升级的支持。 可以使用早期版本的 Visual Studio(如 Visual Studio 2019)升级这些项目,然后在 Visual Studio 2022 或更高版本中再次升级这些项目,以使用 Visual Studio 的最新工具和功能。
升级报表
升级项目时,你会收到升级报告。 报告也会作为 UpgradeLog.htm 保存在你的项目文件夹中。 升级报告显示转换过程中发现的问题的摘要。 其中列出了有关所做更改的一些信息,包括:
项目属性。
包含文件。
由于编译器符合性的改进或标准的更改而无法完全编译的代码。
依赖于不再可用的 Visual Studio 或 Windows 功能的代码。 或者,Visual Studio 的默认安装中没有包含,或已从产品中删除的头文件。
由于 API 中的更改(如 API 重命名、函数签名更改或函数弃用)而不再编译的代码。
由于诊断中的更改(如警告变为错误)而不再编译的代码
由于库已更改而导致的链接器错误(尤其是使用 /NODEFAULTLIB 时)。
行为更改所导致的运行时错误或意外结果。
这些工具中引入的错误。 如果发现问题,请通过正常的支持渠道或使用 Visual Studio C++ 开发人员社区 页面将其报告给Microsoft C++团队。
一些升级后的项目和解决方案无需修改即可成功生成。 但是,大多数项目可能需要对项目设置和源代码进行更改。 修复这些问题没有唯一的正确方法,但建议使用分阶段方法。 在开始之前,请查看潜在升级问题概述,了解多种常见错误的详细信息。
将平台工具集、C++ 语言标准和 Windows SDK 版本(如果适用)设置为首选版本。 (“项目”>“属性”>“配置属性”>“常规”)
如果存在大量错误,可以在修复这些错误时暂时禁用某些选项。 若要禁用
/permissive-选项,请使用“项目”>“属性”>“配置属性”>“C/C++”>“语言”。 若要禁用“代码分析”选项,请使用“项目”>“属性”>“配置属性”>“代码分析”。确保所有依赖项都存在,并且包含路径或库位置正确无误。 (“项目”>“属性”>“配置属性”>“VC++ 目录”)
识别并修复由于引用不再存在的 API 而导致的错误。
修复任何阻止编译的其余错误。 有关常见错误的修复,请参阅潜在升级问题概述。
重新启用
/permissive-,并修复以前在 MSVC 中编译的不符合标准的代码导致的任何新错误。启用代码分析,确定不再被视为可接受的潜在问题或已过时的编码模式。 如果代码分析标记了许多错误,你可以禁用部分警告,以便首先关注最重要的错误。 IDE 可帮助快速修复某些类型的问题。
考虑实现代码现代化的其他机会。 例如,将自定义数据结构和算法替换为 C++ 标准库或 Boost 开源库中的自定义数据结构和算法。 通过使用标准功能,可以让其他人更轻松地维护代码。 可以确信,此代码已经过标准委员会和更广泛的 C++ 社区许多专家的充分测试和审查。
对于难以修复的错误,可以搜索解决方案,或在 Microsoft Learn Q&A 上发布问题。 对于 C++ 编译器和工具中的问题,请尝试访问 C++ 开发者社区网站。
本节内容
潜在的升级问题概述
将代码升级到通用 CRT
更新 WINVER 和 _WIN32_WINNT
修复库内部的依赖项
浮点迁移问题
Visual Studio 中已弃用的 C++ 功能
VCBuild 与MSBuild
端口第三方库
另请参阅
Visual Studio 中Microsoft C++的新增功能
Visual C++ 更改历史记录(2003 - 2015)
非标准行为
端口数据应用程序