问题

最近想阅读 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:\Users\Administrator\source\repos\workflow-core\src\WorkflowCore.TestHost\WorkflowCore.TestHost.xproj"
  • WorkflowCore, "C:\Users\Administrator\source\repos\workflow-core\src\WorkflowCore\WorkflowCore.xproj"
  • WorkflowCore.Persistence.MongoDB, "C:\Users\Administrator\source\repos\workflow-core\src\providers\WorkflowCore.Persistence.MongoDB\WorkflowCore.Persistence.MongoDB.xproj"
  • WorkflowCore.Sample01, "C:\Users\Administrator\source\repos\workflow-core\src\samples\WorkflowCore.Sample01\WorkflowCore.Sample01.xproj"

需要非功能性更改

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

  • WorkflowCore, "C:\Users\Administrator\source\repos\workflow-core\WorkflowCore.sln"

迁移报告 提示:

src\WorkflowCore\WorkflowCore.xproj:** 无法读取“C:\Users\Administrator\AppData\Local\Temp\qaz4jqm1.ibt”处的迁移后报表。src\WorkflowCore\WorkflowCore.xproj: XProj 项目 WorkflowCore 迁移失败。“dotnet migrate --skip-backup -s -x "C:\Users\Administrator\source\repos\workflow-core\src\WorkflowCore\WorkflowCore.xproj" "C:\Users\Administrator\source\repos\workflow-core\src\WorkflowCore\project.json" -r "C:\Users\Administrator\AppData\Local\Temp\qaz4jqm1.ibt" --format-report-file-json”退出时出现错误代码 1。src\WorkflowCore\WorkflowCore.xproj: 无法执行,因为找不到指定的命令或文件。 可能的原因包括: *内置的 dotnet 命令拼写错误。 *你打算执行 .NET 程序,但 dotnet-migrate 不存在。 *你打算运行全局工具,但在路径上找不到具有此名称且前缀为 dotnet 的可执行文件。src\WorkflowCore\WorkflowCore.xproj: 将 C:\Users\Administrator\source\repos\workflow-core\src\WorkflowCore\WorkflowCore.xproj 备份到 C:\Users\Administrator\source\repos\workflow-core\Backup10\WorkflowCore.xproj。src\WorkflowCore\project.json: 将 C:\Users\Administrator\source\repos\workflow-core\src\WorkflowCore\project.json 备份到 C:\Users\Administrator\source\repos\workflow-core\Backup10\project.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

VS 新版本无法打开旧项目问题处理的更多相关文章

  1. Android新版本SDK打开旧版本项目报错解决

    1.Description Resource Path Location Type Unable to resolve target 'android-19 解决:打开project.properti ...

  2. VS2019打开旧项目导致引用失效的解决方案

    用VS2019打开VS2015创建的MVC项目时所有引用全部失效: 解决方案: 打开项目的csproj文件,删除 Target节点,在重新打开项目. <Target Name="Ens ...

  3. Android Studio升级到3.1.4后打开旧项目警告:The `android.dexOptions.incremental` property is deprecated and it has no effect on the build process.

    现象截图 问题原因&解决方案 在build.gralde中,对Android开发过程中突破的方法数的限制,做了如下解决配置: dexOptions { incremental true jav ...

  4. C++开发新版本vs使用旧版本vs编译的静态库动态库

    关于vs潜在的升级问题概述 (Visual C++)查看官网的介绍:潜在的升级问题概述 (Visual C++).主要问题: 1. 如果使用 /GL(全程序优化)进行编译,则生成的对象文件只能使用生成 ...

  5. qt 旧项目编译运行提示 “启动程序失败,路径或者权限错误?” 原因及解决方法

    qt 旧项目编译运行提示 "启动程序失败,路径或者权限错误?" 原因及解决方法 原因 Qt Creator在打开项目文件的同时会生成.pro.user文件,.pro.user文件叫 ...

  6. iOS适配 旧项目工程在iOS9下不能正常显示

    在iOS开发中,很多时候会用到旧项目,比如版本的升级.使用Demo等等, iOS SDK正在不断的升级,不断的升级给iOS开发带来了新的活力. 然而在iOS SDK新的版本出来之后,旧项目可能会出现新 ...

  7. vs打开项目出现“尚未配置为Web项目XXXX指定的本地IIS URL HTTP://localhost:…… .要打开此项目,需要配置虚拟目录……”提示

    今天打开网上下载的一个源码,出现如标题的这个问题,这是从未遇见的提示.尝试点击是,但是网站还是运行不起来.于是网上搜索,就有了这篇. 解决的方案如下: 注意:也可以用记事本把工程文件(.vcxproj ...

  8. Unity Project Wizard (最近打开的项目记录)

    最近打开工程列表 当用Unity打开过的项目越来越多之后,在最近打开项目记录框中就会变的很长,那么如何才能删除最近打开的记录呢? Unity4.x最近打开的工程记录 Unity5.x最近打开的工程记录 ...

  9. vs2005中删除最近打开的项目和文件的记录

    vs2005中总是保留最近打开的项目和文件的记录,甚至是以删除的它也不删,-_-!下面介绍几种删除的方法: 第一种:建立一个bat文件,以后双击即可清除,内置代码如下: @echo off@REG D ...

  10. VS2013 不能打开DTCMS项目 的解决办法

    <system.webServer> <validation validateIntegratedModeConfiguration="false"/> & ...

随机推荐

  1. KingbaseES V8R6C5B041手工创建集群测试案例

    ​ 案例说明: KingbaseES V8R6C5B041版本和以前的KingbaseES R6有一定的区别,增加了"securecmdd"的工具,并且在install.conf配 ...

  2. SpringBoot多重属性文件配置方案笔记

    SpringBoot多重属性文件配置方案笔记 需要重写PropertyPlaceholderConfigurer 同时要忽略DataSourceAutoConfiguration @SpringBoo ...

  3. Redux(mvc、flux、react-redux)

    其他章节请看: react实战 系列 Redux 关于状态管理,在 Vue 中我们已经使用过 Vuex,在 spug 项目中我们使用了 mobx,接下来我们学习 Redux. 本篇以较为易懂的方式讲解 ...

  4. Windows 2012 R2上搭建IIS管理用户的隔离模式FTP

    Windows 2012 R2上搭建IIS管理用户的隔离模式FTP Windows自带的FTP现在可以提供基于非OS用户的管理,这提高了安全性.即使FTP用户名和密码泄露,也不会对操作系统造成进一步的 ...

  5. 4、StringBuilder类

    StringBuilder类 一个可变的字符序列,此类提供一个与StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全). 该类被设计用作 StringBuf ...

  6. 实践torch.fx第二篇-fx量化实操

    好久不见各位,哈哈,又鸽了好久. 本文紧接上一篇<实践torch.fx第一篇--基于Pytorch的模型优化量化神器>继续说,主要讲如何利用FX进行模型量化. 为什么这篇文章拖了这么久,有 ...

  7. 使用docker-compose部署SonarQube

    sonarqube 安装 1.系统配置,避免启动问题 # 系统配置,避免启动问题 echo "vm.max_map_count=262144" >> /etc/sysc ...

  8. 《吐血整理》高级系列教程-吃透Fiddler抓包教程(24)-Fiddler如何优雅地在正式和测试环境之间来回切换-中篇

    1.简介 在开发或者测试的过程中,由于项目环境比较多,往往需要来来回回地反复切换,那么如何优雅地切换呢?宏哥今天介绍几种方法供小伙伴或者童鞋们进行参考. 2.实际工作场景 2.1问题场景 (1)已发布 ...

  9. JuiceFS 在 Elasticsearch/ClickHouse 温冷数据存储中的实践

    企业数据越存越多,存储容量与查询性能.以及存储成本之间的矛盾对于技术团队来说是个普遍难题.这个难题在 Elasticsearch 与 ClickHouse 这两个场景中尤为突出,为了应对不同热度数据对 ...

  10. PHP全栈开发(八):CSS Ⅸ dispaly & visibility

    display用来设置一个元素如何显示: visibility用来设置一个元素可见还是隐藏. visibility:hidden: 这个语句会使元素在HTML页面中不可见.但是这个元素仍然会占用HTM ...