VS 新版本無法打開舊項目問題處理

来源:https://www.cnblogs.com/dongyaosheng/archive/2022/11/22/16914212.html
-Advertisement-
Play Games

一:背景 1.講故事 前幾天群里很熱鬧,看了下在爭論兩個問題: 電腦里要不要裝殺毒軟體 ? 應該裝什麼殺毒軟體 ? 不管殺毒軟體流氓不流氓,在如今病毒肆虐的當下互聯網,裝一個還是能幫我們攔截很多意想不到的東西,為了眼見為實,這一篇我們就聊一個竊聽 鍵盤事件 的惡意代碼。 2. 思路 實現思路非常簡單 ...


問題

最近想閱讀 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 ↩︎


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一.小結 1.一個boolean變數可以存儲值true或false 2.關係運算符(<,<=,==,!=,>,>=)和數值及字元一起運算 3.布爾運算符&&,|| ,| 和 ^對布爾值和布爾變數進行計算 4.當對p1&&p2求值時,java先求p1的值,如果p1為true,再對p2求值;如果p1為f ...
  • 迭代器的功能: 提供一種統一的方式,來透明的遍歷容器 理解 begin()方法,end()方法, ++ , * 的用處 其中 C++11 中提供的foreach的方式,其底層還是通過迭代器來進行遍歷的. #include <iostream> using namespace std; class M ...
  • 1 概述 ArrayList實現了List介面,是 順序容器,允許放入null元素 有一個容量(capacity),表示底層數組的實際大小。如果容量不足,容器會 自動增大底層數組的大小 支持泛型,泛型擦除後,容器的元素都是 Object類型 ArrayList沒有實現同步(synchronized) ...
  • 來源:blog.csdn.net/weixin_61594803 1.SQL數據脫敏實現 MYSQL(電話號碼,身份證)數據脫敏的實現 -- CONCAT()、LEFT()和RIGHT()字元串函數組合使用,請看下麵具體實現 -- CONCAT(str1,str2,…):返回結果為連接參數產生的字元 ...
  • ###知識點 php://filter php://filter是一種元封裝器,是PHP中特有的協議流,設計用於數據流打開時的篩選過濾應用,作用是作為一個“中間流”來處理其他流。 php://filter目標使用以下的參數作為它路徑的一部分。複合過濾鏈能夠在一個路徑上指定。 |名稱|描述|備註| | ...
  • ###結果以json格式輸出,可以用json線上解析,方便查看 package com.xintone.demo; import cn.hutool.json.JSONUtil; import lombok.Data; import org.springframework.util.Collecti ...
  • 關於全局事務的執行,雖然之前的文章中也有所涉及,但不夠細緻,今天再深入的看一下事務的整個執行過程是怎樣的。 1. TransactionManager io.seata.core.model.TransactionManager是事務管理器,它定義了一個全局事務的相關操作 DefaultTransa ...
  • 簡介 在C#中提起控制項綁定數據,大部分人首先想到的是WPF,其實Winform也支持控制項和數據的綁定。 Winform中的數據綁定按控制項類型可以分為以下幾種: 簡單控制項綁定 列表控制項綁定 表格控制項綁定 綁定基類 綁定數據類必須實現INotifyPropertyChanged介面,否則數據類屬性的變更 ...
一周排行
    -Advertisement-
    Play Games
  • Dapr Outbox 是1.12中的功能。 本文只介紹Dapr Outbox 執行流程,Dapr Outbox基本用法請閱讀官方文檔 。本文中appID=order-processor,topic=orders 本文前提知識:熟悉Dapr狀態管理、Dapr發佈訂閱和Outbox 模式。 Outbo ...
  • 引言 在前幾章我們深度講解了單元測試和集成測試的基礎知識,這一章我們來講解一下代碼覆蓋率,代碼覆蓋率是單元測試運行的度量值,覆蓋率通常以百分比表示,用於衡量代碼被測試覆蓋的程度,幫助開發人員評估測試用例的質量和代碼的健壯性。常見的覆蓋率包括語句覆蓋率(Line Coverage)、分支覆蓋率(Bra ...
  • 前言 本文介紹瞭如何使用S7.NET庫實現對西門子PLC DB塊數據的讀寫,記錄了使用電腦模擬,模擬PLC,自至完成測試的詳細流程,並重點介紹了在這個過程中的易錯點,供參考。 用到的軟體: 1.Windows環境下鏈路層網路訪問的行業標準工具(WinPcap_4_1_3.exe)下載鏈接:http ...
  • 從依賴倒置原則(Dependency Inversion Principle, DIP)到控制反轉(Inversion of Control, IoC)再到依賴註入(Dependency Injection, DI)的演進過程,我們可以理解為一種逐步抽象和解耦的設計思想。這種思想在C#等面向對象的編 ...
  • 關於Python中的私有屬性和私有方法 Python對於類的成員沒有嚴格的訪問控制限制,這與其他面相對對象語言有區別。關於私有屬性和私有方法,有如下要點: 1、通常我們約定,兩個下劃線開頭的屬性是私有的(private)。其他為公共的(public); 2、類內部可以訪問私有屬性(方法); 3、類外 ...
  • C++ 訪問說明符 訪問說明符是 C++ 中控制類成員(屬性和方法)可訪問性的關鍵字。它們用於封裝類數據並保護其免受意外修改或濫用。 三種訪問說明符: public:允許從類外部的任何地方訪問成員。 private:僅允許在類內部訪問成員。 protected:允許在類內部及其派生類中訪問成員。 示 ...
  • 寫這個隨筆說一下C++的static_cast和dynamic_cast用在子類與父類的指針轉換時的一些事宜。首先,【static_cast,dynamic_cast】【父類指針,子類指針】,兩兩一組,共有4種組合:用 static_cast 父類轉子類、用 static_cast 子類轉父類、使用 ...
  • /******************************************************************************************************** * * * 設計雙向鏈表的介面 * * * * Copyright (c) 2023-2 ...
  • 相信接觸過spring做開發的小伙伴們一定使用過@ComponentScan註解 @ComponentScan("com.wangm.lifecycle") public class AppConfig { } @ComponentScan指定basePackage,將包下的類按照一定規則註冊成Be ...
  • 操作系統 :CentOS 7.6_x64 opensips版本: 2.4.9 python版本:2.7.5 python作為腳本語言,使用起來很方便,查了下opensips的文檔,支持使用python腳本寫邏輯代碼。今天整理下CentOS7環境下opensips2.4.9的python模塊筆記及使用 ...