当前位置: 首页 > news >正文

技术速递|宣布为 .NET 升级助手提供第三方 API 和包映射支持

作者:Marco Goertz

排版:Alan Wang

.NET 升级助手是一个 Visual Studio 扩展和命令行工具,可帮助您将应用从之前的 .NET 和 .NET Framework 升级到最新版本的 .NET。正如我们在之前的文章中所描述的那样,它为升级 Microsoft 库和框架提供了强大的支持。我们很高兴地宣布增加了第三方 API 和包映射支持,这将允许您能够在升级过程中轻松找到过时的第三方 API 和包并将其替换为较新的版本。此新功能简化了向新平台(如从 UWP 到 WinUI 或从 Xamarin Forms 到 .NET MAUI)的过渡,确保了更顺畅、更高效的升级体验。

什么是第三方 API 和包映射支持?

将旧应用程序升级到最新版本的 .NET 的挑战之一是从第三方库中找到等效的 API 和 NuGet 包。当您还要升级到一个新平台时,这尤其具有挑战性,例如从 UWP 升级到 WinUI 或从 Xamarin Forms 升级到 .NET MAUI。对于后者,您需要将 Xamarin.Forms 命名空间替换为 Microsoft.Maui 和/或 Microsoft.Maui.Controls。

但这仅仅是个开始。除了命名空间之外,类型和方法通常也不同,因此您可能需要对代码进行一些更改才能使用新的 API。让我们以 Xamarin.Forms.Color 为例。您不仅需要将命名空间从 Xamarin.Forms 更新为 Microsoft.Maui.Graphics,还需要将 R、G 或 B 等属性更改为 Red、Green 或 Blue,而且静态 Color 属性(例如 AliceBlue)现在属于一个新类型 Colors。为了帮助您完成此任务,.NET 升级助手包含了一套全面的 Microsoft 拥有库的已知映射。但是您可能使用的所有流行的第三方库怎么办?第三方可以为自己的库提供映射吗?

是的,可以!.NET 升级助手现在支持第三方 API 和包映射。此功能允许任何人为其自己的库指定映射,其中包含有关旧 API 和包以及新 API 和包的信息。升级助手将在升级期间使用这些映射以及内置映射来进行代码和项目更改。

如何创建 API 和包映射

若要为 .NET 升级助手创建第三方 API 映射,您需要执行以下操作:

  • 首先阅读 upgrade-assistant github repo 中的 README.md 文件
  • 克隆 repo 并在 Visual Studio 中打开 UpgradeAssistant.Extensions.sln
  • 在 UpgradeAssistant.Mappings 项目的 mappings 下为您的公司创建一个新文件夹,并在其中为您的库创建一个子文件夹
  • 为您的库添加 *.apimap.json 和 *.packagemap.json 文件(使用示例或任何现有映射作为起点)
  • 通过运行 Pack 命令为映射创建 NuGet 包
    在这里插入图片描述

如何测试 API 和包映射

若要使用为 .NET 升级助手创建的映射测试 NuGet 包,您需要执行以下步骤:

  1. 确保您拥有来自 Visual Studio Marketplace 的最新版本的 .NET 升级助手扩展

  2. 创建/打开一个使用您新映射中指定的 API 和包的测试项目,以进行升级

  3. 设置本地源文件夹,例如 C:\LocalFeed

  4. 将之前创建的 Microsoft.UpgradeAssistant.Mappings 包添加到本地源,通过在输出文件夹中运行以下命令:

nuget add Microsoft.UpgradeAssistant.Mappings.1.0.0.nupkg -source C:\LocalFeed
  1. 在第二步的测试项目的解决方案文件夹中创建一个 Nuget.config 文件,内容如下:
<?xml version="1.0" encoding="utf-8"?>
<configuration><packageSources><add key="Local Feed" value="C:\LocalFeed" /></packageSources>
</configuration>
  1. 运行升级助手来升级测试项目

API 和包将根据您创建的映射进行升级。

接下来发生什么?

一旦您验证了新映射按预期工作后,我们鼓励您在 upgrade-assistant github repo 中创建拉取请求。我们将审核您的更改,合并后,CI/CD 管道将创建一个新的 Microsoft.UpgradeAssistant.Mappings 包并将其发布在 nuget.org 上。发布后,现有的 .NET Upgrade Assistant 安装将在升级期间包含新映射。

您正在手动升级到 .NET MAUI 吗?

如果是这样,您是否知道 .NET 升级助手扩展包含用于 Xamarin.Forms -> .NET MAUI 升级的 C# 分析器和代码修复程序?它可以帮助您手动升级从 Xamarin.Forms 项目复制到 .NET MAUI 项目的代码。分析器会查找 Xamarin.Forms 命名空间,轻量级代码修复工具会根据内置映射以及新的第三方 API 映射应用代码更改。您可以试一试。
在这里插入图片描述

总结

第三方 API 和包映射支持是一项新功能,它扩展了 .NET 升级助手的功能,以帮助升级具有第三方库依赖项的项目。您可以通过创建和共享库的升级映射来为 .NET 开发者社区做出贡献。

我们希望此功能对您有用,我们欢迎您通过评论此博客文章或在升级助手 github 存储库中提供反馈和建议。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024亚太杯中文赛数学建模B题word+PDF+代码
  • Spring Boot集成fastjson2快速入门Demo
  • 【大模型LLM面试合集】大语言模型基础_NLP面试题
  • uboot学习:(一)基础认知
  • Linux运维:MySQL中间件代理服务器,mycat读写分离应用实验
  • ceph存储
  • 大语言模型应用--AI工程化落地
  • 高中数学:立体几何-基本立体图形分类
  • DAMA学习笔记(四)-数据建模与设计
  • 【分布式系统】Ceph块存储系统之RBD接口
  • 【通信协议-RTCM】系统参数消息 ---- 对应RTCM十六进制 编码ID(3F5)
  • UE5 03-物体碰撞检测
  • c++ primer plus 第15章友,异常和其他,15.3.8exception 类
  • JDK11中zgc垃圾回收器的探索
  • 【进阶篇-Day7:JAVA中Date、LocalDate等时间API的介绍】
  • 【从零开始安装kubernetes-1.7.3】2.flannel、docker以及Harbor的配置以及作用
  • angular2 简述
  • httpie使用详解
  • MySQL Access denied for user 'root'@'localhost' 解决方法
  • nfs客户端进程变D,延伸linux的lock
  • ng6--错误信息小结(持续更新)
  • oschina
  • PHP 的 SAPI 是个什么东西
  • Python十分钟制作属于你自己的个性logo
  • ubuntu 下nginx安装 并支持https协议
  • Vim Clutch | 面向脚踏板编程……
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • vue-cli在webpack的配置文件探究
  • 爱情 北京女病人
  • 笨办法学C 练习34:动态数组
  • 浏览器缓存机制分析
  • 面试总结JavaScript篇
  • 使用Maven插件构建SpringBoot项目,生成Docker镜像push到DockerHub上
  • 我与Jetbrains的这些年
  • 线性表及其算法(java实现)
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • #etcd#安装时出错
  • #php的pecl工具#
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (4)STL算法之比较
  • (6) 深入探索Python-Pandas库的核心数据结构:DataFrame全面解析
  • (Oracle)SQL优化技巧(一):分页查询
  • (windows2012共享文件夹和防火墙设置
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二十三)Flask之高频面试点
  • (规划)24届春招和25届暑假实习路线准备规划
  • (转)Sql Server 保留几位小数的两种做法
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .NET Core中Emit的使用
  • .NET Standard 的管理策略
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)...