问题

最近想阅读 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 Truncate 与 Delete 机制比较

    使用过Oracle的都知道,Truncate操作由于不需要写redo日志,因此,在性能上会比delete操作更高效,但在实际使用过程中,有时会发现delete比truncate速度更快.以下介绍下二者 ...

  2. 2021年3月-第01阶段-Linux基础-Linux系统的启动流程

    Linux系统的启动流程 理解Linux操作系统启动流程,能有助于后期在企业中更好的维护Linux服务器,能快速定位系统问题,进而解决问题. 上图为Linux操作系统启动流程 1.加载BIOS 计算机 ...

  3. Job for redis-server.service failed because the control process exited with error code(Centos 7 设置Redis开机自启报错)

    报错信息如下: Job for redis-server.service failed because the control process exited with error code.  See ...

  4. MinIO 快速入门指南

    官方文档地址:http://docs.minio.org.cn/docs/ MinIO 是在 GNU Affero 通用公共许可证 v3.0 下发布的高性能对象存储. 它是与 Amazon S3 云存 ...

  5. Beats:使用Elastic Stack对Nginx Web服务器监控

  6. U盘插入电脑后图标是灰色的,打开提示“请将磁盘插入驱动器”

    问题描述: U盘插到win10电脑上后,U盘图标显示灰色,双击打开提示:请将磁盘插入驱动器,无法格式化,在U盘点右键/属性,显示为容量等为0. 解决办法如下: 1.首先要下载一个U盘芯片检测工具chi ...

  7. 9. Fluentd部署:日志

    Fluentd是用来处理其他系统产生的日志的,它本身也会产生一些运行时日志.Fluentd包含两个日志层:全局日志和插件级日志.每个层次的日志都可以进行单独配置. 日志级别 Fluentd的日志包含6 ...

  8. POJ1185 [NOI2001] 炮兵阵地 (状压DP)

    又是一道有合法性检测的状压题. dp[i][j][k]表示第i行状态为j,i-1行状态为k时前i行放置的最大数量. 注意22行统计二进制数中1的个数时的巧妙方法. 1 #include<cstd ...

  9. Go_Goroutine详解

    Goroutine详解 goroutine的概念类似于线程,但 goroutine是由Go的运行时(runtime)调度和管理的.Go程序会智能地将 goroutine 中的任务合理地分配给每个CPU ...

  10. struts2 标签总结

    <s:if>判断字符串的问题: 1.判断单个字符:<s:if test="#session.user.username=='c'"> 这样是从session ...