# Rx Release History v7.0
Supported on .NET 8, .NET 9, and .NET 10.0.
New features:
net8.0-windows.10.0.19041) can now reference the System.Reactive package without automatically acquiring a reference to the Microsoft.Desktop.App framework (which includes WPF and WinForms). If the application uses either self-contained deployment or AoT, this fixes the problem in which a reference to Rx would massively increase the size of the deployable application.System.Reactive.Windows.Forms for Windows FormsSystem.Reactive.Wpf for WPFSystem.Reactive.WindowsRuntime for WinRT (e.g., CoreDispatcher) supportSystem.Reactive to acquire the Microsoft.Desktop.App framework dependency, it will need to add <UseWPF>true</UseWPF> or <UseWindowsForms>true</UseWindowsForms>Note that the packaging changes for UI-specific functionality constitute a source-level breaking change, but not a binary-level breaking change. Although the UI-framework-specific types have been removed from the public API of System.Reactive, they remain present at runtime. (The NuGet package has both ref and lib folders. The .NET build tools use the ref folder at compile time, and these types have been removed only from the ref assemblies. At runtime the lib folder is used, and the full API of System.Reactive v6 remains available in the assemblies in lib. Thus existing binaries built against Rx 6.0 that find themselves using Rx 7.0 at runtime will continue to work.)
System.Reactive has an analyzer that detects when a project has a build error because it was using UI-specific functionality that used to be in System.Reactive but now lives in a new package that the project does not yet reference. The analyzer produces diagnostics telling the developer what new reference they will require.
Back in Rx 4.0 (the last time there was a major upheaval to the packaging), various NuGet packages that had previously been core components of Rx.NET were demoted to compatibility facades. These contained just type forwarders indicating that the various types they used to define have moved into System.Reactive.
These packages existed to enable code built against older versions of Rx.NET to continue to work when upgraded to Rx 4.0 or later. We have continued to build new versions of these with each subsequent version of .NET, but all that has typically changed is the exact versions in the TFMs. Nobody should be using these facades any more so there is no reason to continue to produce new ones. (And anyone who is still using the old ones can continue to do so.)
So we no longer produce new versions of these packages.
System.Reactive.CompatibilitySystem.Reactive.CoreSystem.Reactive.ExperimentalSystem.Reactive.InterfacesSystem.Reactive.LinqSystem.Reactive.PlatformServicesSystem.Reactive.ProvidersSystem.Reactive.Runtime.RemotingSystem.Reactive.Windows.ThreadingNote that these packages were for many years facades:
System.Reactive.Windows.FormsSystem.Reactive.WindowsRuntimeWith Rx 7, these have returned to their original roles: they are now the home of Windows Forms and WinRT support in Rx. (We have not resurrected the System.Reactive.Windows.Threading package, because its name is a somewhat unhelpful accident of history. WPF functionality now lives in the new System.Reactive.Wpf component.)