RoyalApps.Community.FreeRdp.WinForms
2.2.4
Prefix Reserved
dotnet add package RoyalApps.Community.FreeRdp.WinForms --version 2.2.4
NuGet\Install-Package RoyalApps.Community.FreeRdp.WinForms -Version 2.2.4
<PackageReference Include="RoyalApps.Community.FreeRdp.WinForms" Version="2.2.4" />
<PackageVersion Include="RoyalApps.Community.FreeRdp.WinForms" Version="2.2.4" />
<PackageReference Include="RoyalApps.Community.FreeRdp.WinForms" />
paket add RoyalApps.Community.FreeRdp.WinForms --version 2.2.4
#r "nuget: RoyalApps.Community.FreeRdp.WinForms, 2.2.4"
#:package RoyalApps.Community.FreeRdp.WinForms@2.2.4
#addin nuget:?package=RoyalApps.Community.FreeRdp.WinForms&version=2.2.4
#tool nuget:?package=RoyalApps.Community.FreeRdp.WinForms&version=2.2.4
FreeRDP Control
RoyalApps.Community.FreeRdp.WinForms embeds FreeRDP's Windows client in a WinForms application. It launches wfreerdp.exe with a parent-window handle; it does not use Microsoft RDP ActiveX or FreeRdpKit.
- Typed destination, gateway, display, certificate, and redirection settings.
- A bundled client, with support for selecting a compatible custom executable.
- Connection events, credential/certificate retries, and resize/zoom reconnects.
- Opt-in native diagnostics with per-launch configuration and stdout/stderr capture, introduced in 2.2.4.
The current source targets .NET 10 on Windows. Older package releases may have different framework requirements.
Documentation
The VitePress documentation lives in docs/:
- Getting Started
- Configuration
- Lifecycle and Events
- Diagnostics
- Troubleshooting
- Support Matrix
- API Reference
See documentation development and deployment to preview the site locally or publish it to GitHub Pages.

Installation
dotnet add package RoyalApps.Community.FreeRdp.WinForms
For the diagnostics APIs, install version 2.2.4 or later from a feed containing that version.
Quick start
On the WinForms UI thread, add the control to a form or container before connecting:
using System.Windows.Forms;
using RoyalApps.Community.FreeRdp.WinForms;
// In your form's constructor, after initialization:
var rdp = new FreeRdpControl { Dock = DockStyle.Fill };
Controls.Add(rdp);
rdp.Configuration.Server = "desktop.example.test";
// Obtain credentials through your host application's secure credential flow.
rdp.Configuration.Username = username;
rdp.Configuration.Password = password;
Shown += (_, _) => rdp.Connect();
Use rdp.Disconnect() to stop the client. The containing form owns and disposes the control. Keep certificate validation enabled; see the guide before implementing certificate exceptions.
Diagnostics
Set DiagnosticsOptionsProvider before connecting and subscribe to DiagnosticOutput. The provider is evaluated before every native launch, including internal retries.
Output is raw and potentially sensitive. Handlers must be thread-safe and nonblocking. The host owns redaction, bounded buffering, file writing, persistence, and enable/disable policy. See the diagnostics guide for an integration example and lifecycle details.
Demo and development
Open src/RoyalApps.Community.FreeRdp.slnx and run RoyalApps.Community.FreeRdp.WinForms.Demo.
dotnet build src/RoyalApps.Community.FreeRdp.slnx -c Release
dotnet test src/RoyalApps.Community.FreeRdp.WinForms.Tests/RoyalApps.Community.FreeRdp.WinForms.Tests.csproj -c Release
npm ci
npm run docs:dev
License and acknowledgements
MIT License. FreeRDP and other bundled dependencies retain their respective licenses.
Special thanks to Marc-André Moreau and akallabeth for their help.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows7.0 is compatible. |
-
net10.0-windows7.0
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.11)
- System.ComponentModel.Annotations (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 2.2.4 | 105 | 9/6/2026 |
| 2.2.3 | 137 | 8/10/2026 |
| 2.2.2 | 193 | 6/26/2026 |
| 2.2.1 | 233 | 2/12/2026 |
| 2.2.0 | 486 | 11/21/2025 |
| 2.1.5 | 504 | 8/25/2025 |
| 2.1.4 | 416 | 3/27/2025 |
| 2.1.3 | 359 | 2/12/2025 |
| 2.1.2 | 275 | 2/7/2025 |
| 2.1.1 | 289 | 1/20/2025 |
| 2.1.0 | 366 | 11/14/2024 |
| 2.1.0-beta2 | 156 | 10/9/2024 |
| 2.1.0-beta1 | 154 | 9/19/2024 |
| 2.0.2 | 603 | 9/26/2023 |
| 2.0.1 | 322 | 9/20/2023 |
| 2.0.0 | 299 | 9/19/2023 |
| 1.3.1 | 661 | 6/22/2023 |
| 1.3.0 | 570 | 2/17/2023 |
| 1.2.8 | 527 | 11/22/2022 |
| 1.2.7 | 506 | 11/22/2022 |