使用 .NET Upgrade Assistant(升级助手)升级 .NET 老旧版本项目

使用 .NET Upgrade Assistant 升级 .NET 老旧版本项目

  • .NET Upgrade Assistant 概述
  • .NET Upgrade Assistant 功能
    • 1、支持以下代码语言:
    • 2、支持的 `.NET` 升级路径:
    • 3、支持的项目类型:
  • .NET Upgrade Assistant 安装
    • 1、使用 Visual Studio 扩展安装
    • 2、手动下载 Visual Studio 插件安装
  • .NET 升级助手项目升级
    • 1、使用 Visual Studio 扩展升级
    • 2、使用 CLI 工具升级

never give up

.NET Upgrade Assistant 概述

.NET 升级助手是一种工具,旨在帮助用户实现 .NET 应用程序的现代化。

新版本 .NET 全年发布,主要版本每年发布一次。 .NET Upgrade Assistant 升级助手有助于将 .NET、.NET Core 或 .NET Framework 早期版本中的应用升级到最新版本。

.net类库

.NET 升级助手 是一个 Visual Studio 扩展和命令行工具,旨在帮助将应用升级到最新版本的 .NET。

可以通过选择 “帮助”>“发送反馈”>“报告问题”,在 Visual Studio 中提交与 .NET 升级助手 相关的问题。

关于 .NET 版本发布策略,请查看官方文档

  • .NET 支持策略,https://dotnet.microsoft.com/zh-cn/platform/support/policy

.NET Upgrade Assistant 功能

1、支持以下代码语言:

  • C#(CSharp)
  • Visual Basic

2、支持的 .NET 升级路径:

  • .NET Framework 到 .NET
  • .NET Core 到 .NET
  • UWP 到 WinUI 3
  • 任何以前的 .NET 版本到最新 .NET 版本
  • Azure Functions v1,v2,v3 到 v4(独立)
  • Xamarin Forms 到 .NET MAUI

注意:对于 Xamarin -> MAUI .xaml 文件(XAML 文件)转换仅支持升级基本的命名空间。若要进行更全面的转换,请使用 Visual Studio 2022 版本 17.6 或更高版本。

3、支持的项目类型:

  • ASP.NET
  • Azure Functions
  • WPF
  • WinForms
  • Class libraries
  • Console
  • Xamarin.Forms
  • .NET MAUI
  • UWP

即将推出支持的项目类型(Coming soon):

  • WCF 到 WCF Core 升级

如果遇到任何问题或有改进建议,请在 Visual Studio 中报告反馈(请参阅 报告问题)。

Report a Problem(报告问题):

  • https://learn.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio?view=vs-2022

.NET Upgrade Assistant 安装

1、使用 Visual Studio 扩展安装

选择 VS 菜单栏目,选择 扩展(X) -> 管理扩展(M)... 单机,弹出窗口选择【联机】右上角搜索框输入 .NET Upgrade Assistant 点击回车(Enter)键,显示信息如下:

.NET Upgrade Assistant

直接点击下载,等待安装完成即可。

2、手动下载 Visual Studio 插件安装

除了上面使用 Visual Studio 扩展安装的方式,还可以手动下载 Visual Studio 的 .NET Upgrade Assistant 插件,手动安装。

  • 扩展插件下载地址,https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.upgradeassistant

.NET 升级助手

手动安装 VSIX 插件显示信息如下:

VSIX 插件安装

.NET 升级助手项目升级

注意:下面两种升级方式,如果不使用源代码管理,请确保在升级之前备份项目。

1、使用 Visual Studio 扩展升级

安装 .NET Upgrade Assistant(升级助手)扩展后,右键单击 “解决方案资源管理器” 窗口中的 项目/.csproj,然后选择 “升级/Upgrade”。

升级/Upgrade

将打开一个选项卡,该选项卡根据项目类型提供不同的升级样式:

  • 就地项目升级

此选项无需复制即可升级项目。

  • 并行项目升级

复制项目并升级副本,从而保留原始项目。

  • 并行增量

对于复杂的 Web 应用,这是一个不错的选择。 从 ASP.NET 升级到 ASP.NET Core 需要进行大量的工作,有时还需要手动重构。 此模式将 .NET 项目放在现有 .NET Framework 项目旁,并路由在 .NET 项目中实现的终结点,而所有其他调用将发送到 .NET Framework 应用程序。

此模式允许你逐个缓慢升级 ASP.NET 或库应用。

升级应用后,将显示状态屏幕,其中显示与升级关联的项目相关的所有项目。可以展开每个升级项目,以阅读有关状态的详细信息。

以下列表介绍了状态图标:

  • 已填充绿色复选标记:项目已升级并成功完成。
  • 未填充绿色复选标记:工具找不到有关要升级的项目的任何内容。
  • 黄色警告标志:项目已升级,但应考虑重要信息。
  • 红色 X:项目要升级,但升级失败了。

.net项目升级状态

此外,升级助手执行的操作将记录到 “升级助手” 源下的 “输出” 窗口,如下图所示:

.NET Upgrade Assistant

注意:升级项目后,需要对其进行全面测试。

2、使用 CLI 工具升级

安装 .NET 升级助手 CLI 工具,执行如下命令:

dotnet tool install -g upgrade-assistant

同样地,由于 .NET 升级助 手是作为 .NET 工具安装的,因此运行以下命令可以轻松地更新它:

dotnet tool update -g upgrade-assistant

注意:如果已配置其他 NuGet 源,则安装此工具可能会失败。

使用 --ignore-failed-sources 参数将这些失败处理为警告而不是错误:

dotnet tool install -g --ignore-failed-sources upgrade-assistant

若要使用 WCF 组件升级项目,请使用旧版 CLI 工具。 有关详细信息,请参阅安装(旧版本)。

安装旧版本 CLI:

  • https://learn.microsoft.com/zh-cn/dotnet/core/porting/upgrade-assistant-install-legacy

安装 .NET 升级助手 CLI 工具后,打开 终端 窗口并导航到包含要升级的项目的目录。 可以使用 upgrade-assistant --help 命令查看 CLI 提供的可用选项。

查看升级助手帮助信息

查看升级助手帮助信息:

PS C:\Users\Jeffrey.Chai> upgrade-assistant --help
USAGE:upgrade-assistant [OPTIONS] <COMMAND>EXAMPLES:upgrade-assistant upgrade <PROJECT_PATH>upgrade-assistant upgrade <PROJECT_PATH> --operation Inplace --targetFramework net6.0upgrade-assistant upgrade <PROJECT_PATH> --operation SideBySide --targetFramework LTS
--destination <NEW_PROJECT_NAME_OR_PATH>OPTIONS:-h, --help       Prints help information-v, --version    Prints version informationCOMMANDS:upgrade    Upgrade project or its features. This command lets you pick upgrade options andguides through upgrade process

使用 upgrade-assistant upgrade 命令运行该工具,其中列出了当前文件夹中的所有项目及以下内容。 CLI 工具提供了一种交互式方式来选择要升级的项目。 使用箭头键选择项目,然后按 Enter 运行该项目。 选择要升级的项目。 在本文提供的示例中,当前文件夹下有四个项目:

Selected options
───────────────────────────────────────────────────────────No options specified, follow steps below to continueSteps
─────────────────Source project
─────────────────Which project do you want to upgrade (found 9)?> MatchingGame (winforms\MatchingGame\MatchingGame.csproj)MatchingGame.Logic (winforms\MatchingGame.Logic\MatchingGame.Logic.csproj)StarVoteControl (csharp\StarVoteControl\StarVoteControl.csproj)WebSiteRatings (csharp\WebSiteRatings\WebSiteRatings.csproj)NavigationExit

根据你升级的项目,你可能会看到一个选项,用于指定升级应该如何进行:

  • 就地项目升级

此选项无需复制即可升级项目。

  • 并行项目升级

此选项仅适用于 .NET Framework 项目。 复制项目并升级副本,从而保留原始项目。

Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────Source project     C:\Code\winforms\MatchingGame\MatchingGame.csprojSteps
───────────────────────────────Source project / Upgrade type
───────────────────────────────How do you want to upgrade project MatchingGame?> In-place project upgradeSide-by-side project upgradeNavigationBackExit

完成此步骤后,如果有多个可升级的目标框架,你将选择一个目标:

Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────Source project     C:\Code\Work\dotnet\dotnet-docs\docs\core\porting\snippets\upgrade-assistant-wpf-framework\winforms\MatchingGame\MatchingGame.csprojUgrade type        InplaceSteps
──────────────────────────────────────────────────Source project / Ugrade type / Target framework
──────────────────────────────────────────────────What is your preferred target framework?> .NET 6.0 (Supported until November, 2024).NET 7.0 (Supported until May, 2024).NET 8.0 (Try latest preview features)NavigationBackExit

注意!注意!注意! 升级项目后,需要对其进行全面测试。

关于 .NET Upgrade Assistant 更多信息,请查看相关文档:

  • .NET 升级助手概述,https://learn.microsoft.com/zh-cn/dotnet/core/porting/upgrade-assistant-overview
  • Github 项目地址,https://github.com/dotnet/upgrade-assistant

effort

通过对 .NET Upgrade Assistant(升级助手) 的介绍,希望该文章能够对您有所帮助,欢迎更多小伙伴尝试使用该工具升级项目,分享更多的项目升级实战经验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.tpcf.cn/news/195163.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大数据基础设施搭建 - Sqoop

文章目录 一、上传压缩包二、解压压缩包三、配置环境变量&#xff08;TODO&#xff09;四、修改配置文件五、拷贝MySQL驱动六、测试能否连接数据库七、import MySQL to HDFS 一、上传压缩包 官网&#xff1a;http://mirrors.hust.edu.cn/apache/sqoop/1.4.6/ 简介&#xff1a;H…

中海达两项技术成果成功入选水利部第四届水文监测仪器设备推介名录

11月30日&#xff0c;由水利部科技推广中心主办&#xff0c;水利部国际合作与科技司和水利部水文司参与指导&#xff0c;长江水利委员会水文局和长江科学院共同协办的第四届水文监测仪器设备推介会在武汉香格里拉大酒店隆重举办&#xff0c;共有79家技术持有单位115项技术参会推…

上海亚商投顾:沪指探底回升 AI应用方向集体爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数早间震荡调整&#xff0c;深成指盘中跌超1%&#xff0c;午后探底回升全线翻红&#xff0c;北证50指数…

模板、STL标准模板库

模板 通常 对 具有相同要求的结果或者类 提供一个模板&#xff0c;根据实际使用时传过来的数据类型&#xff0c;决定函数和类的具体实现。 模板可以让类或者函数支持一种类型&#xff0c;这种通用类型在实际运行的过程中可以使用任何数据类型。 这种编程方式也成为"泛型编…

代码随想录算法训练营第三十三天|509. 斐波那契数 ,70. 爬楼梯 ,746. 使用最小花费爬楼梯

509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(…

画图带你理清TCP协议三次握手和四次挥手

TCP 特性 1.确认应答机制 (ACK) 2.超时重传 3.建立连接 - 三次握手 4.断开连接 - 四次挥手 1.确认应答机制 (ACK) 确认应答是可靠传输的最核心机制&#xff0c;接收方反馈一个应答报文(ACK)&#xff0c;表示已收到 假设现在 A 想去 B 家里玩游戏&#xff0c;于是 A 给…

MTKSetings新增高精度定位菜单

菜单开关只有在切换的时候生效,如果默认打开,需底层驱动直接将节点打开。 vendor/mediatek/proprietary/packages/apps/MtkSettings/res/xml/location_services.xml <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2015 The An…

SEO外链工具,免费SEO引蜘蛛工具

随着互联网的迅猛发展&#xff0c;网站的排名成为各类企业的突破口。SEO&#xff08;Search Engine Optimization&#xff09;作为提高网站在搜索引擎中排名的重要手段&#xff0c;其成功与否直接关系到网站能否获得更多的曝光和流量。在SEO的世界中&#xff0c;引蜘蛛与外链的…

6-3 求3*3整数矩阵对角线元素之和

#include<stdio.h>int main(){int a[3][3],sum0;int i ,j;printf("输入元素&#xff1a;\n");for(i0;i<3;i)for(j0;j<3;j)scanf("%d",&a[i][j]);for(i0;i<3;i)sumsuma[i][i];printf("总和为&#xff1a;%d",sum);return 0;}

数位DP(acwing)

https://www.acwing.com/problem/content/1083/ 代码&#xff1a; #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; const int N 35; int l , r; int K , B; int f[N][N]; void init() // …

如何购买阿里云服务器

作为一家全球领先的云计算服务提供商&#xff0c;阿里云提供了多种云产品和解决方案&#xff0c;包括云服务器、对象服务OSS、数据库、存储、SSL、域名和CDN等。阿里云服务器是一种灵活可扩展的云计算服务&#xff0c;适用于各种规模和类型的企业和个人用户。阿里云以其出色的性…

IntelliJ插件开发-版本升级

简介 idea启动过程中&#xff0c;并不会自动去插件市场检查插件是否有更新。发布插件后&#xff0c;需要用户重启IDE&#xff0c;或者点击help -> check for updates&#xff0c;体验不太好。 如何自动检查更新 可以通过以下步骤来实现插件更新&#xff1a; 实现版本管理…

邮件迁移-邮件同步-批量完成邮件迁移解决方案-imapsync

背景&#xff1a; 公司原来使用的邮箱服务器实现方式是james的cassandra-app&#xff0c;如今要启用新的邮件服务器&#xff0c;架构用的是james的distributed-app,升级后&#xff0c;要求邮件数据不丢失&#xff0c;因此要平滑完成邮件的迁移工作&#xff0c;保障升级后邮件不…

Java BIO、NIO、AIO 有什么区别?

Java BIO、NIO、AIO 有什么区别&#xff1f; Java的I/O&#xff08;输入/输出&#xff09;主要有三种模型&#xff1a;BIO&#xff08;Blocking I/O&#xff09;、NIO&#xff08;Non-blocking I/O&#xff09;和AIO&#xff08;Asynchronous I/O&#xff09;。它们之间的主要…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑量化储热的多区域电–热综合能源系统优化调度》

标题 "考虑量化储热的多区域电–热综合能源系统优化调度" 可以分解为几个关键词和短语&#xff0c;我们逐步解读&#xff1a; 考虑量化储热&#xff1a; 考虑&#xff1a; 意味着在解决问题或进行研究时&#xff0c;会综合或纳入特定因素。量化&#xff1a; 将抽象的…

旺店通·企业奇门对接打通金蝶云星空查询店铺接口与客户新增接口

旺店通企业奇门对接打通金蝶云星空查询店铺接口与客户新增接口 数据源系统:旺店通企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌&#xff0c;国内的零售云服务提供商&#xff0c;基于云计算SaaS服务模式&#xff0c;以体系化解决方案&#xff0c;助力零售企业数字化智…

android.view.WindowLeaked解决方法

问题 我在使用WindowManager添加一个button&#xff0c; windowManager.addView(button,layoutParams);然后关闭当前的这个Activity的时候遇到了WindowLeak这个问题&#xff0c;也就是所谓的窗体泄露。 原因 主要原因是因为android只允许在UI主线程操作&#xff0c;我在使用W…

计算机相关行业在大数据库时代下的潮流和趁势

还记得当初自己为什么选择计算机&#xff1f; 随着数据的爆炸性增长&#xff0c;数据科学和数据分析成为了热门的领域。这些专业涉及处理和分析大规模数据集的技术和方法&#xff0c;以从中提取有价值的信息和洞察。数据科学家和数据分析师在各个行业中的需求不断增加&#xf…

编译原理实验词法分析

编译原理实验中的词法分析是编译过程的一个重要环节。它的任务是从左到右读入源程序的字符流&#xff0c;识别出一个个的单词&#xff0c;即基本保留字、标识符、常数、运算符、分隔符五大类。 在识别出下一个单词后&#xff0c;词法分析程序会验证其词法正确性&#xff0c;然…

asp.net FTP客户端设计与开发

4.1 软件总体分析与设计 根据需求分析&#xff0c;按照系统开发的基本观点对功能进行分解&#xff0c;从功能上可对模块作如下划分&#xff1a; 1.连接管理模块:主要完成主机与服务器之间的连接与关闭操作。 2.文件管理模块:主要完成文件的显示、新建文件、删除文件等。 3.文件…