Rx.NET 7.0 正式发布。此次更新聚焦一个明确目标:减小 Windows 应用程序的部署体积。新版本将 WPF、Windows Forms、UWP 和 Windows Runtime 的集成代码从主 System.Reactive 包中拆分出去,避免自包含应用因引入无关框架依赖而多出数十兆字节的冗余文件。 Reactive Extensions for .NET 提供了基于 IObservable 的编程模型和操作符,用于组合异步与事件驱动数据流。自 2023 年 1 月英国公司 endjin 接手维护 Rx.NET 以来,近期版本的重点主要是现代化改造和清偿技术债务,而不是大规模新增操作符。7.0 版本延续了这一路线,本质上只包含一项重大功能变化。 此前的问题影响同时使用自包含或 Native AOT 部署,以及 net8.0-windows10.0.19041 这类 Windows 特定目标框架(TFM)的应用程序。当项目引用 System.Reactive 时,即使完全没有使用 WPF 或 Windows Forms,完整的两套 UI 框架也可能被打进部署产物。endjin 测算,这种情况在不启用裁剪时大约增加 90MB,启用裁剪时约增加 47MB,Native AOT 构建时约增加 11MB。 Rx.NET 7.0 的解决方案是把 UI 相关功能移到独立的 NuGet 包中,包括 System.Reactive.Windows.Forms、System.Reactive.Wpf、System.Reactive.WindowsRuntime 和 System.Reactive.Uwp。使用这些集成功能的应用程序,在升级后需要显式添加对应包。不使用这些功能的项目不需要修改源码,而受影响的“自包含”部署体积则可以大幅缩减。 维护团队表示,尽管包被拆分,他们仍尽量保持二进制兼容。旧版 UI API 仍然保留在 NuGet 包内的运行时程序集中,但已从引用程序集中移除。
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
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.