网易首页 > 网易号 > 正文 申请入驻

Rx.NET 7.0 拆分 Windows UI 支持,大幅缩减应用部署体积

0
分享至


作者 | Edin Kapić

译者 | 马可薇

Rx.NET 7.0 现已 发布。这一版本的改动重点明确,主要是为缩小 Windows 应用的部署体积。新版本将 WPF、Windows Forms、UWP 和 Windows Runtime 集成功能从核心System.Reactive包中拆分出去,避免自包含应用在明明用不到这些框架的情况下,仍然被带入几十 MB 的框架依赖。

Reactive Extensions for .NET 提供了基于IObservable 的编程模型,以及用于组合异步和事件驱动数据流的一系列操作符。自从 2023 年 1 月英国公司 endjin 接手 Rx.NET 的维护工作,此后的几个版本主要集中在 现代化改造和清理长期积累的技术债务,而不是继续大规模增加操作符。Rx.NET 7.0 延续了这一思路,新版本的核心功能改动基本就这一项。

问题主要出现在同时使用自包含部署或 Native AOT,以及 Windows 特定 TFM(Target Framework Moniker,目标框架名字)的应用中,例如net8.0-windows10.0.19041。引用System.Reactive后,即使应用完全没有使用 WPF 或 Windows Forms,也可能导致完整的 WPF 和 Windows Forms 框架被打包进最终部署产物。根据 endjin 的说明,不启用裁剪时,这可能额外增加约 90 MB;启用裁剪后仍会增加约 47 MB;如果使用 Native AOT 构建,额外体积约为 11 MB。

Rx.NET 7.0 通过将 UI 相关功能拆分到独立的 NuGet 包中解决了这个问题,分别是System.Reactive.Windows.FormsSystem.Reactive.WpfSystem.Reactive.WindowsRuntimeSystem.Reactive.Uwp。升级后,如果应用确实用到了这些集成能力,就需要显式添加对应的 NuGet 包。对于没有使用这些功能的项目,则无需修改源代码,而受影响的自包含部署则可以明显瘦身。

维护团队也尽量保证了拆包之后的二进制兼容性。旧版 UI API 仍然保留在 NuGet 包提供的运行时程序集(runtime assemblies)中,只是从引用程序集(reference assemblies)里移除了。这样一来,使用 Rx.NET 6.1 编译好的组件理论上仍然可以继续运行;而重新编译的应用则无法在没有添加对应包的情况下,不知不觉依赖 Windows UI 功能。System.Reactive7.0 还加入了一个 Analyzer,可以检测受影响的源代码,并提示需要添加哪个包。

当然,这一版本也带来了一些破坏性变更。Rx.NET 7.0 不再支持 .NET 6 和 .NET 7,但继续支持 .NET 8、.NET 9、.NET 10、.NET Framework 4.7.2、.NET Standard 2.0 和 UWP。此外,该版本还修正了OfType的可空性标注(nullability annotations)。运行时行为并没有变化,但由于方法签名发生了变化,按照语义化版本(Semantic Versioning)的规则,这项改动在技术上也需要提升主版本号。

对于仍在使用旧式packages.config机制的项目,还存在一个特殊情况。由于这种格式无法区分 NuGet 的reflib资产,这类项目即使没有显式引用新的 UI 包,仍然可能看到这些 UI API。Rx.NET 维护团队并不支持这种配置,并表示未来可能会移除为兼容这一机制而保留的代码。

此前 Rx.NET 用户的 讨论 已经提到过 Windows 特定的打包问题,以及项目是否能够跟上现代 .NET 部署模型的问题。有开发者反映,在某些目标框架组合下,他们不得不自行绕过缺失的 Windows Scheduler API;也有人希望 Rx.NET 能进一步改善裁剪、AOT 支持以及包文档。目前 7.0 发布后的公开讨论还比较有限,因此现在判断社区对这一版本的整体反响还为时过早。

随着 7.0 发布,endjin 表示,接手 Rx.NET 维护工作时制定的路线图主要目标已经完成。后续工作可能会转向进一步减少内存分配、引入代码生成、探索对类似ref元素的支持,以及增加更多操作符。System.Reactive7.0 已经可以通过 NuGet 获取;有关此次拆包设计以及后续开发计划的细节,则可以在 Rx.NET GitHub 仓库 中查看。

查看英文原文:

Rx.NET 7.0 Reduces Deployment Size by Splitting Windows UI Support (https://www.infoq.com/news/2026/08/rx-net-7/)

声明:本文由 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
上海大巨蛋到底能花落谁家?上海竟然有5个地方正在激烈争夺!

上海大巨蛋到底能花落谁家?上海竟然有5个地方正在激烈争夺!

奇葩游戏酱
2026-09-12 10:39:33
全智贤与孙千同框引热议:身高体态相近被称“东北全智贤”

全智贤与孙千同框引热议:身高体态相近被称“东北全智贤”

东方不败然多多
2026-09-11 19:29:35
CCTV5+直播周启豪VS张本智和,国乒主力回京,林诗栋亚运会换队友

CCTV5+直播周启豪VS张本智和,国乒主力回京,林诗栋亚运会换队友

体育大学僧
2026-09-12 08:31:42
燕麦再次被关注,调查发现:早餐吃燕麦,或有4大改善

燕麦再次被关注,调查发现:早餐吃燕麦,或有4大改善

荷兰豆爱健康
2026-09-12 01:13:07
井柏然:我这个年纪,就别再演现偶了

井柏然:我这个年纪,就别再演现偶了

韩小娱
2026-09-12 10:33:11
两性心理学:女人想和你上床了,不是发微信,也不是打电话,而是偷偷做这两件事

两性心理学:女人想和你上床了,不是发微信,也不是打电话,而是偷偷做这两件事

心理观察局
2026-09-12 07:12:03
30天倒计时!离看SGA奥斯卡级假摔还有30天!

30天倒计时!离看SGA奥斯卡级假摔还有30天!

贵圈真乱
2026-09-12 12:52:43
46岁生日这天,姚明留下的这串数字仍无人能及

46岁生日这天,姚明留下的这串数字仍无人能及

甜度百分百21
2026-09-12 12:55:24
离婚4年后,黄晓明首谈失败婚姻,结婚时不成熟做了错误的评估

离婚4年后,黄晓明首谈失败婚姻,结婚时不成熟做了错误的评估

椰黄娱乐
2026-09-11 10:58:22
前队友弗莱:42岁詹姆斯只能当76人三当家 排在恩比德布朗之后

前队友弗莱:42岁詹姆斯只能当76人三当家 排在恩比德布朗之后

醉卧浮生
2026-09-12 08:11:18
甲钴胺这样吃比较危险!医生多次劝告:很多人还在吃,要尽快改正

甲钴胺这样吃比较危险!医生多次劝告:很多人还在吃,要尽快改正

刘哥谈体育
2026-09-10 04:59:32
樊振东一幕火了!球队濒临淘汰,起身给邱党现场讲战术

樊振东一幕火了!球队濒临淘汰,起身给邱党现场讲战术

观星娱记
2026-09-12 09:22:53
休媒不满KD排杰威之后!建议追加兰组4巨头 暗示火箭无交易阿杜打算

休媒不满KD排杰威之后!建议追加兰组4巨头 暗示火箭无交易阿杜打算

颜小白的篮球梦
2026-09-12 10:40:17
马斯克SpaceX星舰14次飞行定档9月18日,首次执行商业收入型任务

马斯克SpaceX星舰14次飞行定档9月18日,首次执行商业收入型任务

IT之家
2026-09-12 12:45:12
破老规矩,郑钦文跌到121位,赞助商反而排队送1.5亿,凭啥?

破老规矩,郑钦文跌到121位,赞助商反而排队送1.5亿,凭啥?

顾史
2026-09-12 12:27:57
伦纳德真完了!鲍尔默疯了,刑事调查启动,最坏的结果出现了

伦纳德真完了!鲍尔默疯了,刑事调查启动,最坏的结果出现了

体育新角度
2026-09-11 20:40:22
首进大满贯决赛!谢尔顿3-1逆转赢美国德比,PK兹维列夫争冠

首进大满贯决赛!谢尔顿3-1逆转赢美国德比,PK兹维列夫争冠

全景体育V
2026-09-12 11:03:34
41岁Coco被曝:回河南老家相亲了好几次,全黄了!大家听到她和那个人的感情经历后,都说了一句相同的话...

41岁Coco被曝:回河南老家相亲了好几次,全黄了!大家听到她和那个人的感情经历后,都说了一句相同的话...

美芽
2026-08-06 12:35:35
湖南女子与丈夫丁克40年,备受宠爱,退休后才知丈夫已三世同堂

湖南女子与丈夫丁克40年,备受宠爱,退休后才知丈夫已三世同堂

晓艾故事汇
2024-12-12 20:17:15
有网友起诉宋祖德,法院告诉他,人已经去世了

有网友起诉宋祖德,法院告诉他,人已经去世了

电影票房预告片
2026-09-11 22:49:22
2026-09-12 13:16:49
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
12931文章数 52057关注度
往期回顾 全部

科技要闻

苹果折叠屏比小米华为贵5000元,该怎么选

头条要闻

媒体:女生被包办婚姻外逃 派出所凭啥把住址告知父母

头条要闻

媒体:女生被包办婚姻外逃 派出所凭啥把住址告知父母

体育要闻

老鹰真正的底气来自于什么?

娱乐要闻

港媒曝钟丽淇疑患渐冻症,本人发文

财经要闻

继房子茅台之后 中产的第"神话"也破灭了

汽车要闻

买菜车也有小乐趣 风云T7不止是台合格家用SUV

态度原创

时尚
家居
本地
艺术
军事航空

女友BELLA+封面 | Fort&Peat:长日无尽

家居要闻

2026建博会(广州) 公装联探展交流活动

本地新闻

Onestage x 乐华娱乐暑期巡回选拔2026

艺术要闻

211米!义乌第二高楼,封顶了

军事要闻

胡塞武装:9天攻占5400平方公里

无障碍浏览 进入关怀版