VS 新版本无法打开旧项目问题处理

  • VS 新版本无法打开旧项目问题处理已关闭评论
  • 10 次浏览
  • A+
所属分类:.NET技术
摘要

最近想阅读 WorkflowCore 的源码,苦于代码量巨大,就想将项目回退到 Init Commit 版本 但是在回退版本后,工程内Project 显示已卸载 重新加载后 提示:


问题

最近想阅读 WorkflowCore 的源码,苦于代码量巨大,就想将项目回退到 Init Commit 版本 但是在回退版本后,工程内Project 显示已卸载 重新加载后 提示:

不支持
This version of Visual Studio is unable to open the following projects. The project types may not be installed or this version of Visual Studio may not support them.
For more information on enabling these project types or otherwise migrating your assets, please see the details in the "Migration Report" displayed after clicking OK.

  • WorkflowCore.TestHost, "C:UsersAdministratorsourcereposworkflow-coresrcWorkflowCore.TestHostWorkflowCore.TestHost.xproj"
  • WorkflowCore, "C:UsersAdministratorsourcereposworkflow-coresrcWorkflowCoreWorkflowCore.xproj"
  • WorkflowCore.Persistence.MongoDB, "C:UsersAdministratorsourcereposworkflow-coresrcprovidersWorkflowCore.Persistence.MongoDBWorkflowCore.Persistence.MongoDB.xproj"
  • WorkflowCore.Sample01, "C:UsersAdministratorsourcereposworkflow-coresrcsamplesWorkflowCore.Sample01WorkflowCore.Sample01.xproj"

需要非功能性更改
Visual Studio 将自动对下列项目进行非功能性更改以使它们能够在 Visual Studio 2015、Visual Studio 2013、Visual Studio 2012 和 Visual Studio 2010 SP1 中打开。项目行为不会受到影响。

  • WorkflowCore, "C:UsersAdministratorsourcereposworkflow-coreWorkflowCore.sln"

迁移报告 提示:

srcWorkflowCoreWorkflowCore.xproj:** 无法读取“C:UsersAdministratorAppDataLocalTempqaz4jqm1.ibt”处的迁移后报表。srcWorkflowCoreWorkflowCore.xproj: XProj 项目 WorkflowCore 迁移失败。“dotnet migrate --skip-backup -s -x "C:UsersAdministratorsourcereposworkflow-coresrcWorkflowCoreWorkflowCore.xproj" "C:UsersAdministratorsourcereposworkflow-coresrcWorkflowCoreproject.json" -r "C:UsersAdministratorAppDataLocalTempqaz4jqm1.ibt" --format-report-file-json”退出时出现错误代码 1。srcWorkflowCoreWorkflowCore.xproj: 无法执行,因为找不到指定的命令或文件。 可能的原因包括: *内置的 dotnet 命令拼写错误。 *你打算执行 .NET 程序,但 dotnet-migrate 不存在。 *你打算运行全局工具,但在路径上找不到具有此名称且前缀为 dotnet 的可执行文件。srcWorkflowCoreWorkflowCore.xproj: 将 C:UsersAdministratorsourcereposworkflow-coresrcWorkflowCoreWorkflowCore.xproj 备份到 C:UsersAdministratorsourcereposworkflow-coreBackup10WorkflowCore.xproj。srcWorkflowCoreproject.json: 将 C:UsersAdministratorsourcereposworkflow-coresrcWorkflowCoreproject.json 备份到 C:UsersAdministratorsourcereposworkflow-coreBackup10project.json。

问题原因

VS2022,VS2019 无法打开xproj 类型的旧项目 ,只支持csproj 类型 ,同时高版本的dotNetCore 不支持 dotnet migrate 导致无法迁移成功[1]

解决办法

  1. 找到可以打开的版本[2],这边经过搜索,VS2019 Version >=16.3 的都无法使用 ,试过VS 2019 16.2 的没有成功 也可能是未执行第二步 后来选择的VS2017可以成功

  2. 根据[3]操作完成后使用 VS 打开工程应该已经可以正常加载

    You can list your installed dotnet core sdk versions by this command:

    dotnet --list-sdks 

    Then you can switch back to an older version of the dotnet core sdk (e.g. 2.0.2) by this command:

    dotnet new globaljson --sdk-version 2.0.2 

    This should be performed in the folder where your xproj is located.

    Finally you can migrate your project by:

    dotnet migrate 

注: 第二步生成的global.json 内容为 :

{   "sdk": {     "version": "2.0.2"   } } 

如果项目自带 可以将这个节点加入即可


  1. https://learn.microsoft.com/en-us/dotnet/core/migration/ ↩︎

  2. https://stackoverflow.com/questions/61988090/how-to-run-xproj-file-in-vs2019 ↩︎

  3. https://stackoverflow.com/questions/59875531/upgrading-xproj-in-visual-studio-2019 ↩︎