← All stories
● Covered by 1 source · 1 reportMedium impact1 neutral

Rx.NET 7.0 Splits Windows UI Support to Reduce Deployment Size

🔄 Updated 1d ago
New to BrevFeed? We gather this story from every outlet covering it into one summary — ranked by real-world impact, not just the latest headline — so you never miss what matters. What is BrevFeed? →

Key points

  • Rx.NET 7.0 separates WPF, Windows Forms, UWP, and Windows Runtime integration.
  • This reduces deployment size for self-contained applications not using these UI frameworks.
  • Unused UI frameworks could add up to 90 MB to deployment output.
  • New NuGet packages are required for applications using Windows UI functionality.

Rx.NET 7.0 Released with Deployment Size Reduction

Rx.NET 7.0 has been released, focusing on reducing the deployment size of Windows applications. The primary change involves separating Windows UI integration components, such as WPF, Windows Forms, UWP, and Windows Runtime, from the core System.Reactive package. This modification prevents self-contained applications from including tens of megabytes of unused framework dependencies in their deployment output.

Addressing Unnecessary Dependency Bloat

The issue affected applications using self-contained or Native AOT deployment with a Windows-specific target framework moniker (e.g., net8.0-windows10.0.19041). Previously, referencing System.Reactive could cause the entire WPF and Windows Forms frameworks to be included, even if the application did not utilize these UI frameworks. This could add approximately 90 MB without trimming, 47 MB with trimming, and 11 MB for Native AOT builds, according to endjin, the maintainers of Rx.NET.

New Package Structure for UI Functionality

To resolve this, Rx.NET 7.0 moves UI-specific functionality into dedicated NuGet packages: System.Reactive.Windows.Forms, System.Reactive.Wpf, System.Reactive.WindowsRuntime, and System.Reactive.Uwp. Applications that require these integrations must explicitly add the corresponding package after upgrading. Projects not using these UI components will see smaller self-contained deployments without requiring source code changes.

Compatibility and Breaking Changes

Maintainers have worked to preserve binary compatibility despite the package split. Older UI APIs remain in the runtime assemblies of the main NuGet package but are removed from its reference assemblies. This allows precompiled components built against Rx.NET 6.1 to continue functioning, while new applications are prevented from inadvertently depending on Windows UI functionality without the correct package. An analyzer included with System.Reactive 7.0 identifies affected source code and suggests the necessary package. Rx.NET 7.0 also drops support for .NET 6 and .NET 7, continuing support for .NET 8, .NET 9, and .NET 10.

✨ This summary was generated by AI from the outlets' reporting listed below. It is not independently verified and may contain errors — check the original sources. How BrevFeed works →

The daily brief

One email each morning: the day's tech stories, clustered across outlets and summarized. No account needed.

One email a day. Unsubscribe in one click, any time.

Today's brief

Spend a few minutes, get the whole day. Every topic's top stories in one hands-free rundown — listen, watch, or read the transcript.

~7 min · 6 stories · Aug 15

▶ Play today's brief Listen on Spotify

New every morning, and the back catalogue is archived by date.

Primary sources

GitHub dotnet/reactive

Reporting from

Rx.NET 7.0 has been released, separating Windows UI integration components from the main System.Reactive package. This change reduces deployment sizes for self-contained .NET applications that do not use Windows UI frameworks, addressing an issue where unused dependencies added significant overhead.