Visual Studio 图标 Visual Studio 端口、迁移和升级项目

每个新版本的 Visual Studio 都支持以前版本中的大部分项目、文件和其他资产。 只要不依赖于新功能,就可以像往常一样使用它们。

我们尝试保留与以前版本的向后兼容性。 但是,对某些项目类型的支持会随着时间的推移而更改。 较新版本的 Visual Studio 可能根本不支持某些项目,或者可能需要更新项目,使其不再向后兼容。

注释

有关迁移问题的当前状态,请参阅 Visual Studio 开发人员社区。 若要详细了解哪些功能特定于哪些 Visual Studio 版本,请参阅 发行说明

重要

某些项目类型需要特定工作负载。 如果尚未安装工作负荷,Visual Studio 将报告未知的或不兼容的项目类型。 在这种情况下,请检查 Visual Studio 安装程序中的安装选项 ,然后重试。 有关 Visual Studio 中的平台支持的详细信息,请参阅 平台目标与兼容性

项目类型

以下列表描述了 Visual Studio 中对早期版本中创建的项目的支持。 如果未列出项目或文件类型,请参阅 本文的 Visual Studio 2022 版本

项目类型 Support
.NET Core 项目 (xproj) Visual Studio 2017 中弃用了 Xproj 项目,并在 Visual Studio 2019 中删除。 有关详细信息,请参阅将 .NET Core 项目迁移到 csproj 格式
ASP.NET Web 应用和启用了 Application Insights 的 ASP.NET Core Web 应用 对于每个 Visual Studio 用户,资源信息存储在每个用户实例的注册表中。 用户在不打开项目,但想要搜索 Azure Application Insights 数据的情况下,可使用此信息。 Visual Studio 对不同版本使用不同的注册表位置,并且不会发生冲突。

用户创建 ASP.NET Web 应用程序、ASP.NET Core Web 应用或 ASP.NET Core Web 应用程序后,资源存储在 .suo 文件中。 用户可以在 Visual Studio 2015 或更高版本中打开项目,只要 Visual Studio 支持跨这两个版本使用的项目和解决方案,资源信息就可以用于每个项目。 用户需要在每个产品上进行一次身份验证。 例如,如果使用 Visual Studio 2017 创建项目并在 Visual Studio 2022 中打开,则用户需要在 Visual Studio 2022 上进行身份验证。
Azure 云服务 Azure 云服务已弃用 ,支持已于 2027 年 3 月结束。 Visual Studio 2026 中已移除为其提供的工具。 迁移到 Service Fabric 托管群集 或使用 此决策矩阵 来确定团队的最佳迁移路径。
Azure 资源组 Visual Studio 2022 中弃用了 Azure 资源组项目,并在 Visual Studio 2026 中删除。 建议迁移到 Bicep
编码的 UI 测试 Visual Studio 2019 中弃用了用于自动化 UI 驱动功能测试的编码 UI 测试,并在 Visual Studio 2026 中删除。 建议使用 Selenium 来测试 Web 应用,使用 Appium 和 WinAppDriver 来测试桌面和 UWP 应用。
数据库单元测试项目(csproj、.vbproj) Visual Studio 2017 及更低版本中的数据单元测试项目使用 GAC 的依赖项版本。 若要升级单元测试项目以使用最新的依赖关系,请在“解决方案资源管理器”中右键单击该项目,然后选择“转换为 SQL Server 单元测试项目...”。
嵌入式和 IoT 工具 Visual Studio 2026 不再支持嵌入式和 IoT 工具组件,包括 RTOS 视图、外围视图、ST 项目导入程序和串行监视器。
F# Visual Studio 2026 可以打开在早期版本中创建的项目。
InstallShield
MSI 安装程序
在 Visual Studio 2010 中创建的安装程序项目可以借助 Microsoft Visual Studio 安装程序项目 在更高版本中打开。 另请参阅 WiX v3 - Visual Studio 扩展。 Visual Studio 不再附带 InstallShield Limited Edition。 请与 Revenera 联系,了解可用性。
LightSwitch 从 Visual Studio 2017 开始,不再支持 LightSwitch。
负载测试 Visual Studio 2019 中弃用了 Web 性能和负载测试功能,并在 Visual Studio 2026 中删除。 使用替代的负载测试工具(例如 Apache JMeter、Akamai CloudTest、Blazemeter)。
Microsoft 测试管理器 Visual Studio 2019 中删除了Microsoft测试管理器和反馈客户端。 利用 Azure Test Plans(Azure DevOps 的一部分)满足手动和探索性测试需求。
模型-视图-控制器框架 (ASP.NET MVC) Visual Studio 2026 支持 MVC 5 项目,并且可以打开但不创建 MVC 4 项目。 有关升级旧项目的信息,请参阅
使用 C++ 进行移动开发 Visual Studio 2026 不再支持 MDD 工具组件“C++ Android 开发工具”和“C++ iOS 开发工具”。
Modeling Visual Studio 可以打开在早期版本中创建的建模项目,但存在以下差异:
  • 建模项目现被称为菜单和模板中的“依赖关系验证”项目。
  • Visual Studio 2017 中删除了 UML 关系图。 UML 文件照常在解决方案资源管理器中列出,但会以 XML 文件形式打开。 使用 Visual Studio 2015 查看、创建或编辑 UML 关系图。
  • 从 Visual Studio 2019 开始,生成建模项目时不再执行体系结构依赖项验证。 相反,验证是在生成每个代码项目时执行的,Visual Studio 会更新代码项目以支持此更改。
MSI 安装程序 (vdproj) 请参阅此页的 InstallShield 部分。
Office 2007 VSTO 需要对 Visual Studio 2022 进行单向升级。
Office 2010 VSTO 如果项目面向 .NET Framework 4,则可以在 Visual Studio 2010 SP1 及更高版本中打开此项目。 所有其他项目需要单向升级。
可移植类库 (PCL) 不再支持可移植类库(PCL)。 Visual Studio 仍将打开并生成它们,但无法创建新的 PCL 项目。 建议将 PCL 项目中的代码迁移到 .NET Standard 项目。 可以使用可选的“.NET 可移植目标包”组件安装 PCL 支持。
Python Windows IoT Core 应用 Visual Studio 2019 删除了 Python Windows IoT Core 应用的支持。 可以继续使用 Visual Studio 2017。
针对 Visual Studio 的 R 工具 已从 Visual Studio 2019 的数据科学工作负载中删除了针对 Visual Studio 的 R 工具。 可以继续使用 Visual Studio 2017 或替代产品(例如 RStudio)。
Service Fabric (sfproj) Service Fabric 应用程序项目已在 Visual Studio 2026 中删除,并将成为 Visual Studio 扩展。 有关可用性的状态,请参阅此 GitHub 问题
SharePoint 2010 使用 Visual Studio 2026 打开 SharePoint 2010 解决方案项目时,它将升级到 SharePoint 2019。 必须在 Visual Studio 中安装“.NET 桌面开发”工作负载才能进行升级。 有关如何升级 SharePoint 项目的详细信息,请参阅升级和更新 SharePoint
SharePoint 2016 无法在 Visual Studio 2022 中打开在 Office 开发人员工具预览版 2 中创建的 SharePoint Add-In 项目。 若要解除此限制,需要在 csproj vbproj 文件中将 MinimumVisualStudioVersion 更新到 12.0 并将 MinimumOfficeToolsVersion 更新到 12.2。
Silverlight Visual Studio 2017 中删除了 Silverlight 项目。
SQL - Redgate Visual Studio 2019 中删除了 Redgate 的 SQL 更改自动化核心、SQL Prompt Core 和 SQL 搜索。 可以升级到 Redgate 的 SQL Toolbelt 中提供的付费 SQL 更改自动化和 SQL 提示产品。
SQL Server Reporting Services 和 SQL Server Analysis Services(SSRS、SSDT、SSAS、MSAS) 通过 Visual Studio Marketplace 中的两个扩展提供对这些项目类型的支持: Microsoft Analysis Services Projects 2022+Microsoft Reporting Services Projects 2022+。 SSDT 支持也包含在数据存储和处理工作负载中。 有关详细信息,请参阅下载并安装适用于 Visual Studio 的 SQL Server Data Tools (SSDT)。
SQL Server Integration Services (SSIS) SQL Server Integration Services 项目支持通过 SQL Server Integration Services 项目 扩展提供。
测试窗口扩展 Visual Studio 2019 中删除了 一些以前公开的测试窗口 API
TypeScript TypeScript SDK 在 Visual Studio 2022 中删除。 编译 TypeScript 的项目应安装 Microsoft.TypeScript.MSBuild NuGet 包。
Visual C++ 可以使用 Visual Studio 2026 来处理使用 Visual Studio 2010 或更高版本创建的C++项目。

你可以升级旧项目(推荐)以利用最新的项目系统支持(这将更新项目文件)和最新的Microsoft C++(MSVC)构建工具。

如果改用原始项目 as-is,将项目文件保留为未修改,则必须安装相应的 MSVC 生成工具版本。 对于从 Visual Studio 2010 到 2012 的项目,需要并行安装 Visual Studio。 对于 Visual Studio 2015 及更高版本中的项目,可以使用 Visual Studio 2026 安装相应的 MSVC 生成工具版本。 有关详细信息,请参阅 在 Visual Studio 中使用多重定目标功能构建旧项目
Visual Studio 扩展性/VSIX 为 17.0(VS2022)开发的大多数扩展,因为最低版本在 Visual Studio 2026 中将保持不变。 必须更新安装目标版本范围为 16.0 或更低版本的扩展(即使用 MinimumVersion 16.0 或更低版本),以声明支持 Visual Studio 2022 及更高版本的 MinimumVersion 17.0。 有关可能影响升级到 MinimumVersion 17.0 的不兼容更改的列表,请参阅 Visual Studio 中的 API 破坏性更改。 另请参阅 现代化 Visual Studio 扩展兼容性
Visual Studio 实验室管理 你可以使用 Microsoft 测试管理器或 Visual Studio 2010 SP1 及更高版本打开在以上任一版本中创建的环境。 但对于 Visual Studio 2010 SP1,在可以创建环境之前,Microsoft 测试管理器的版本必须与 Team Foundation Server 的版本匹配。 (重要说明:Team Foundation Server 或 TFS 现在称为 Azure DevOps Server。)
Web 部署 (wdproj) Visual Studio 2012 中已删除对 Web 部署项目的支持,而添加了发布配置文件支持。 在 Visual Studio 2026 中,在文本编辑器中打开 wdproj 文件,并将任何自定义项复制粘贴到 pubxml(发布配置文件)文件中,如 StackOverflow 中所述。
Windows 应用商店应用程序 Visual Studio 2019 中删除了 JavaScript 通用 Windows 项目。 要继续使用这些项目,请使用 Visual Studio 2017。 可以手动下载较旧的 Windows SDK,也可以重新定目标项目以使用较新的 SDK。

不支持使用 project.json 的通用 Windows 项目。 建议升级这些项目以使用包引用。 或者,在 project.json 文件中添加对 Microsoft.NET.Test.Sdk 版本 16.0.0.0 的引用。

Visual Studio 2017 中删除了对 Windows 应用商店 8.1 和 8.0 应用的支持项目。
Xamarin 不再支持 Xamarin。 Visual Studio 2026 中删除了 Xamarin 项目支持。 尽管 Xamarin 不受支持,但你可能继续使用 Visual Studio 2022 版本 17.14 将 Xamarin 项目升级到 .NET MAUI

预 MSBuild 项目

警告

预 MSBuild .NET 项目(即使用早于 MSBuild 的 Visual Studio 版本创建的 .NET 项目)仅在使用 Visual Studio 2022 版本 17.12 升级时才能在项目加载时进行转换。 使用 Visual Studio 版本 17.13 或更高版本时,无法转换这些项目。 转换任何此类项目并保存转换后的项目。

迁移项目

我们尝试保持与以前版本的兼容性,以便在一个版本的 Visual Studio 中创建和修改项目时,它仅适用于以前的版本。 但是,可能会有与以前的版本不兼容的更改。 发生这种情况时,较新版本的 Visual Studio 不会加载项目或提供迁移路径。 可能必须在早期版本的 Visual Studio 中维护该项目。 有关 Visual Studio 2026 中支持的项目类型的详细信息,请参阅 “平台目标与兼容性 ”页。

有时,较新版本的 Visual Studio 可以打开项目,但它必须以可能与以前版本不兼容的方式更新或迁移项目。 Visual Studio 使用以下条件来确定是否需要此类迁移:

  • 与平台目标版本(Visual Studio 2013 RTM 及更高版本)的兼容性。

  • 设计时资产与 Visual Studio 早期版本的兼容性。 Visual Studio 旨在正常使用弃用的设计时资产而失败,而不会损坏它们,以便以前的版本仍可以打开项目。

  • 新的设计时资产是否会破坏与以前版本的兼容性。

有时无法实现兼容性。 然后,Visual Studio 会打开升级向导以进行必要的单向更改。 这些单向更改可能涉及更改项目文件中的 ToolsVersion 属性,该属性明确表示哪个 MSBuild 版本可以将项目的源代码转变为所需的可运行且可部署的项目。

导致项目与 Visual Studio 早期版本不兼容的不是 Visual Studio 版本,而是由 确定的 MSBuild 版本。 如果 Visual Studio 版本包含与项目中的 ToolsVersion 匹配的 MSBuild 工具链,Visual Studio 就可以调用该工具链来生成项目。

为了保持与在早期版本中创建的项目的兼容性,Visual Studio 包含支持 15、14、12 和 4 所需的 MSBuild 工具链 ToolsVersion 。 使用任意这些 ToolsVersion 值的项目都可进行成功的生成。 (再次强调,这取决于 Visual Studio 是否支持项目类型,如平台定位与兼容性中所述。)

无需手动更新或将项目迁移到较 ToolsVersion 新的值。 这样做可能会生成许多错误和警告。 如果 Visual Studio 将来不支持特定 ToolsVersion 项,Visual Studio 将帮助你将项目迁移到以后 ToolsVersion 的值。