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

news2025/1/4 16:21:15

使用 .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
  • UWPWinUI 3
  • 任何以前的 .NET 版本到最新 .NET 版本
  • Azure Functions v1,v2,v3v4(独立)
  • 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):

  • WCFWCF 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.0
    upgrade-assistant upgrade <PROJECT_PATH> --operation SideBySide --targetFramework LTS
--destination <NEW_PROJECT_NAME_OR_PATH>

OPTIONS:
    -h, --help       Prints help information
    -v, --version    Prints version information

COMMANDS:
    upgrade    Upgrade project or its features. This command lets you pick upgrade options and
               guides through upgrade process

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

Selected options
───────────────────────────────────────────────────────────
 No options specified, follow steps below to continue

 Steps
─────────────────
 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)

  Navigation
    Exit

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

  • 就地项目升级

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

  • 并行项目升级

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

Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Source project     C:\Code\winforms\MatchingGame\MatchingGame.csproj

 Steps
───────────────────────────────
 Source project / Upgrade type
───────────────────────────────

How do you want to upgrade project MatchingGame?

> In-place project upgrade
  Side-by-side project upgrade

  Navigation
    Back
    Exit

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

Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Source project     C:\Code\Work\dotnet\dotnet-docs\docs\core\porting\snippets\upgrade-assistant-wpf-framework\winforms\MatchingGame\MatchingGame.csproj
 Ugrade type        Inplace

 Steps
──────────────────────────────────────────────────
 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)

  Navigation
    Back
    Exit

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

关于 .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.coloradmin.cn/o/1282526.html

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

相关文章

《我想假如在这里度过大学生活》火了,不愧是四川最美校园

近日&#xff0c;网上一篇关于成都理工大学校园环境的《我想假如在这里度过大学生活》火了。文章中的提到的大学环境优美&#xff0c;诗意盎然。一则则假如&#xff0c;带我们领略了校园的自然之美&#xff0c;发展之美、同时也感受到了大学时代的美好。 美丽的图书馆、阳光明媚…

想要备考PMP?PMP培训机构怎么选?

PMP是由项目管理协会&#xff08;Project Management Institute&#xff0c;简称PMI&#xff09;发起的项目管理专业人士资格认证&#xff0c;严格评估项目管理人员知识技能是否具有高品质的资格认证考试。作为近几年热门的证书&#xff0c;我国PMP备考人数和持证人数不断上升。…

【源码篇】基于SpringBoot+thymeleaf实现的蓝天幼儿园管理系统

基于SpringBootthymeleaf实现的蓝天幼儿园管理系统 文章目录 系统说明技术选型成果展示账号地址及其他说明 系统说明 基于SpringBootthymeleaf实现的蓝天幼儿园管理系统是为幼儿园提供的一套管理平台&#xff0c;可以提高幼儿园信息管理的准确性&#xff0c;系统将信息准确无误…

红队攻防之隐匿真实IP

0x01 前言 安全态势日益严峻&#xff0c;各大组织普遍采用了综合的安全产品&#xff0c;如态势感知系统、WAF和硬件防火墙等&#xff0c;这些措施加大了渗透测试和攻防演练的难度。即使是一些基本的漏洞验证、端口扫描&#xff0c;也可能导致测试IP被限制&#xff0c;从而阻碍…

SLAM ORB-SLAM2(10)轨迹跟踪过程

SLAM ORB-SLAM2(10)轨迹跟踪过程 1. 总体过程2. ORB 特征点提取2.1. 相机数据处理2.1.1. 单目相机图像处理2.1.2. 双目相机图像处理2.1.3. RGBD相机图像处理2.2. ORB 特征点3. 地图初始化3.1. 坐标形式3.2. 坐标原点3.3. 地图尺度4. 相机位姿初始估计4.1. 关键帧4.2. 运动模型…

全自动洗衣机什么牌子好?内衣洗衣机便宜好用的牌子

随着内衣洗衣机的流行&#xff0c;很多小伙伴在纠结该不该入手一款内衣洗衣机&#xff0c;专门来洗一些贴身衣物&#xff0c;答案是非常有必要的&#xff0c;因为我们现在市面上的大型洗衣机只能做清洁&#xff0c;无法对我们的贴身衣物进行一个高强度的清洁&#xff0c;而小小…

【数据结构与算法】JavaScript实现二叉搜索树

文章目录 一、二叉搜索树的封装1.插入数据2.遍历数据2.1.先序遍历2.2.中序遍历2.3.后续遍历 3.查找数据3.1.查找最大值&最小值3.2.查找特定值 4.删除数据4.1.情况1&#xff1a;没有子节点4.2.情况2&#xff1a;有一个子节点4.3.情况3&#xff1a;有两个子节点4.4.完整实现 …

【蓝桥杯】二分查找

二分查找 题目描述 输入 n n n 个不超过 1 0 9 10^9 109 的单调不减的&#xff08;就是后面的数字不小于前面的数字&#xff09;非负整数 a 1 , a 2 , … , a n a_1,a_2,\dots,a_{n} a1​,a2​,…,an​&#xff0c;然后进行 m m m 次询问。对于每次询问&#xff0c;给出一…

高精度电流源可以做什么实验用

高精度电流源是一种能够提供精确、稳定且可调的电流输出的设备。它在科学研究、工程领域和实验室中扮演着重要的角色。下面西安安泰将详细介绍高精度电流源的用途和应用。 高精度电流源的主要用途如下&#xff1a; 器件测试&#xff1a;高精度电流源可用于测试电子器件的电流特…

CCC联盟数字车钥匙(九)——Passive Entry

2.3 Passive Entry : BLE设置 一旦完成了BLE配对和加密设置&#xff0c;随后与车辆的连接将使用Passive Entry流程。 对于被动进入&#xff0c;能力交换&#xff08;Capability Exchange&#xff09;是以车辆或设备自上次能力交换之后&#xff0c;是否更新DK协议版本、UWB配置…

易点易动二维码巡检方案:提升企业巡检效率的智慧选择

在当今科技发达的时代&#xff0c;传统的纸质设备巡检方式已经无法满足企业管理的需求。纸质巡检方式存在诸多弊端&#xff0c;如巡检效率低、数据管理困难等问题。然而&#xff0c;随着易点易动二维码巡检方案的出现&#xff0c;企业可以迎来一种全新的巡检方式&#xff0c;极…

100G数据中心升级改造策略

视频流媒体的兴起和物联网设备的大幅增长带来数据量爆炸性增长&#xff0c;人们对算力的需求越来越大&#xff0c;网络的升级改造也成为每个数据中心关注的重点。为了应对网络压力&#xff0c;数据中心需要升级到100G及以上速率&#xff0c;为企业和用户提供高性能计算、存储和…

分享74个节日PPT,总有一款适合您

分享74个节日PPT&#xff0c;总有一款适合您 74个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/18YHKkyJsplx-Gjj7ofpFrg?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

蓝桥杯 动态规划

01 数字三角形 #include<bits/stdc.h> using namespace std; const int N105; using lllong long; ll a[N][N],dp[N][N]; int main(){int n;cin>>n;for(int i1;i<n;i){for(int j1;j<i;j){cin>>a[i][j];}}for(int i5;i>1;i--){for(int j1;j<i;j){…

express搭建后台node接口

在前端的学习中我们使用express来开发接口结合mysql&#xff0c;然后使用可视化的数据库工具来操作数据&#xff0c; web框架是express 文档是jsdoc swagger 数据库模型是sequelize 部署使用PM2来上服务器&#xff0c; 打包你也可以结合webpack配置target node状态 当然你也可以…

LED广告机在密闭箱体内的散热方法

在现代电子产品中&#xff0c;尤其是LED广告机这类大型设备的连续使用过程中&#xff0c;发热问题一直备受关注。以下简要介绍LED广告机在密闭的箱体内如何进行散热降温的有效方法。 1. 设计出风口 LED广告机背面通常设计有镂空矩形&#xff0c;即出风口&#xff0c;以确保空气…

zabbix配置snmp trap--使用snmptrapd和Bash接收器(缺zabbix_trap_handler.sh文中自取)--图文教程

1.前言 我的zabbix的版本是5.0版本&#xff0c;5.0的官方文档没有使用bash接收器的示例&#xff0c;6.0的官方文档有使用bash接收器的示例&#xff0c;但是&#xff0c;下载文件的链接失效&#xff1f;&#xff01; 这里讲解zabbix-server端配置和zabbix web端配置 2.zabbix-…

SQL Server 数据库,创建数据表

2.3表的基本概念 表是包含数据库中所有数据的数据库对象。数据在表中的组织方式与在电子表格中相似&#xff0c;都是 按行和列的格式组织的&#xff0c;每行代表一条唯一的记录&#xff0c;每列代表记录中的一个字段.例如&#xff0c;在包含公 司员工信息的表中&#xff0c;每行…

【Docker】Swarm内部的负载均衡与VIP

在Docker Swarm中&#xff0c;有两种方式可以实现内部的负载均衡&#xff1a;Service VIP和Routing Mesh。 Service VIP&#xff08;Virtual IP&#xff09;&#xff1a;Service VIP是一种基于VIP的负载均衡方式&#xff0c;它为每个服务分配一个虚拟IP地址。当请求到达Servic…

【一周AI简讯】亚马逊推出企业级生成式AI聊天机器人,英伟达黄仁勋称AI将在5年内赶超人类

亚马逊推出企业级生成式AI聊天机器人Amazon Q 周二&#xff0c;亚马逊的云计算部门亚马逊网络服务 (AWS)推出了 Amazon Q&#xff0c;这是一款生成式 AI 聊天机器人。与 ChatGPT 和 Bard 不同&#xff0c;Amazon Q 并不基于单一的 AI 模型。相反&#xff0c;它在一个名为 Bedr…