使用 .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
  • 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(升级助手) 的介绍,希望该文章能够对您有所帮助,欢迎更多小伙伴尝试使用该工具升级项目,分享更多的项目升级实战经验。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ASP.NET+ACCES视频点播系统设计

设计思想 设计方法采用模块划分、面向对象的设计思想&#xff0c;主要划分为以下几个模块&#xff1a;视频窗口模块、界面设计模块、实现搜索/点击排行等功能模块、数据库模块、后台管理模块&#xff0c;本人主要完成前三个模块的设计。 开发步骤&#xff1a;①首先进行需求分…

四层LVS与七层Nginx负载均衡的区别

一、四层负载均衡与七层负载均衡&#xff1a; &#xff08;1&#xff09;四层负载均衡&#xff1a; 四层负载均衡工作在 OSI 七层模型的第四层&#xff08;传输层&#xff09;&#xff0c;指的是负载均衡设备通过报文中的目标IP地址、端口和负载均衡算法&#xff0c;选择到达的…

【C语言】字符串函数strlen #strcpy #strcmp #strcat #strstr及其模拟实现

在C语言中&#xff0c;有一种特殊的数据类型&#xff0c;即字符串类型。C 并没有专门定义一个字符串类型&#xff0c;这对我们使用字符串造成了一定的麻烦。但是&#xff0c;C标准库<string.h> 中定义了各种字符串函数&#xff0c;这对于我们来说是一件值得庆幸的事情。…

springboot 在自定义注解中注入bean,解决注入bean为null的问题

问题&#xff1a; 在我们开发过程中总会遇到比如在某些场合中需要使用service或者mapper等读取数据库&#xff0c;或者某些自动注入bean失效的情况 解决方法&#xff1a; 1.在构造方法中通过工具类获取需要的bean 工具类代码&#xff1a; import org.springframework.beans…

深圳找工作的网站

深圳吉鹿力招聘网是一家在深圳做的比较好的招聘网站&#xff0c;提供一站式的专业人力资源服务&#xff0c;包括网络招聘、校园招聘、猎头服务、招聘外包、企业培训以及人才测评等。深圳吉鹿力招聘网在深圳的口碑相当好&#xff0c;是一个很好的选择。 深圳找工作用 吉鹿力招聘…

从零构建属于自己的GPT系列1:数据预处理(文本数据预处理、文本数据tokenizer、逐行代码解读)

&#x1f6a9;&#x1f6a9;&#x1f6a9;Hugging Face 实战系列 总目录 有任何问题欢迎在下面留言 本篇文章的代码运行界面均在PyCharm中进行 本篇文章配套的代码资源已经上传 从零构建属于自己的GPT系列1&#xff1a;文本数据预处理 从零构建属于自己的GPT系列2&#xff1a;语…

VUE:ESLint如何自动修复代码

在vue开发过程中第一步总会遇到一个问题&#xff0c;就是 代码本身没有问题&#xff0c;但是因为这是一个ESLint的错误提示&#xff0c;但是它指出了在文件E:\vscode\vuesua\src\views\HomeView.vue中的第18到33行存在缩进错误。具体来说&#xff0c;第18到25行的缩进应该是2个…

HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例

HarmonyOS4.0系列——03、声明式UI、链式编程、事件方法、以及自定义组件简单案例 声明式 UI ArkTS以声明方式组合和扩展组件来描述应用程序的UI&#xff0c;同时还提供了基本的属性、事件和子组件配置方法&#xff0c;帮助开发者实现应用交互逻辑。 如果组件的接口定义没有包…

iOS代码混淆工具

目录 引言 混淆效果 字符串加密 代码插入 其他混淆选项说明 总结 参考资料 &#x1f512; 这是一篇介绍iOS代码混淆工具的技术博客&#xff0c;旨在帮助开发者提高代码安全性。本工具来自于Github的混淆词库和代码&#xff0c;通过差异化处理和代码合并生成数亿种用于混淆…

什么是SpringMvc、SpringMvc23道常提到问题

1、什么是 SpringMvc&#xff1f; 答&#xff1a;SpringMvc 是 spring 的一个模块&#xff0c;基于 MVC(模型、视图、控制器) 的一个框架&#xff0c;无需中间整合层来整合。 扩展&#xff1a; 在Spring MVC中&#xff0c;各个组件的职责如下&#xff1a; 1.Model&#xff08;模…

振弦读数模块开发时的要点

振弦读数模块开发时的要点 振弦读数模块是振弦采集仪中重要的组成部分&#xff0c;以下是开发时需要注意的要点&#xff1a; 1. 确定采样频率和精度&#xff1a;振弦采集仪必须以足够高的频率和精度采集振弦信号&#xff0c;以确保数据的准确性和完整性。 2. 选择合适的传感器…

「Verilog学习笔记」占空比50%的奇数分频

专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点&#xff0c;刷题网站用的是牛客网 根据题意7分频&#xff0c;实际上是第一次电平变化经历了4个上升沿3个下降沿&#xff0c;第二次电平变化是4个下降沿3个上升沿&#xff0c;所以用两个计数器就行了。分别对…

【Python动漫系列】喜羊羊(完整代码)

文章目录 喜羊羊环境需求完整代码程序分析系列文章喜羊羊 喜羊羊是中国大陆一部儿童动画片《喜羊羊与灰太狼》中的主角之一。这部动画片自2005年开始播出,成为许多中国儿童最喜欢的动画之一。 喜羊羊是一只体型较小、毛色洁白的绵羊,性格机灵活泼,聪明机智。他是一只勇敢而…

树_二叉树所有路劲

//给你一个二叉树的根节点 root &#xff0c;按 任意顺序 &#xff0c;返回所有从根节点到叶子节点的路径。 // // 叶子节点 是指没有子节点的节点。 // // 示例 1&#xff1a; // // //输入&#xff1a;root [1,2,3,null,5] //输出&#xff1a;["1->2->5&quo…

Cmkae外部依赖管理

文章目录 一、cmake依赖管理介绍二、源码依管理1. FetchContent与find_package进行集成 2. CPM3. git submodule附加&#xff1a; address_sanitizer 和 undefined sanitizer 一、cmake依赖管理介绍 CMake 是跨平台的构建系统&#xff0c;支持 C/C、Objective-C、Fortran 等多种…

mysql中除了InnoDB以外的其它存储引擎

参考资料&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/storage-engines.html MyISAM存储引擎 https://dev.mysql.com/doc/refman/8.0/en/myisam-storage-engine.html MyISAM 存储引擎是基于比较老的ISAM存储引擎&#xff08;ISAM已经不再可用&#xff09;&#xff…

CSS模块化的理解

说起css模块化&#xff0c;那么先来看看它的发展吧&#xff01; 发展历程 从Web技术来讲 Web 1.0&#xff1a;Web 起源于上世纪 90 年代&#xff0c;当时主要是静态页面&#xff0c;内容呈现形式单一&#xff0c;浏览器技术也比较简单。Web 1.0 的网站主要提供信息传递和查找…

Java Web 学习之路(2) —— 概念、SpringBoot + MyBatis(controller+service+mapper)开发流程与过程梳理

文章目录 前言1. 常见的一些概念1.1 POJO&#xff08;Plain Ordinary Java Object 简单Java对象&#xff09;1.2 DAO和Mapper 2. Java的三层架构2.1 包的层级结构2.2 交互层 controller&#xff08;用户界面、网页&#xff09;jsp文件2.3 业务处理层 service2.4 Mapper层 3. 注…

认识DHT11温湿度传感器并制作温度报警器

Arduino UNO Arduino IDE开发环境 Arduino DHT11温湿度传感器 ​ 一、认识Arduino的DHT11温度湿度传感器 DHT传感器由电容式湿度传感器和热敏电阻两部分组成。除此之外&#xff0c;模块内部还有一些模拟信号到数字信号的转换&#xff0c;将温度湿度以数字信号的方式输…

[oeasy]python0002_终端_CLI_GUI_编程环境_游戏_真实_元宇宙

回忆 上次 了解了 python 语言的特点 历史悠久功能强大深受好评已成趋势 3大主流操作系统 macwindowslinux 我们 选择 linux 作为基础系统 为什么选择 黑乎乎的命令行界面呢&#xff1f;&#x1f914; GUI vs CLI 个人电脑 用图标和菜单组成 图形界面(GUI) Graphic User I…