Supported Platforms

These are the platforms your Eto.Forms app can run on. For what you need to develop Eto.Forms itself, see Contributing.

Each platform is a NuGet package. The project templates add the right one for you; if you set up a project yourself, reference Eto.Forms plus the platform packages you want.

PlatformPackageRuns onRuntime
WPF (recommended on Windows)Eto.Platform.WpfWindows.NET 6+ or .NET Framework 4.6.2+
WinFormsEto.Platform.WindowsWindows.NET 6+ or .NET Framework 4.6.2+
Mac64 (recommended on macOS)Eto.Platform.Mac64macOS 10.15+.NET 6+ or Mono 6
macOSEto.Platform.macOSmacOS 12+.NET 9+ with the macos workload
GTKEto.Platform.GtkLinux, and Windows or macOS with GTK installed.NET 6+ or Mono 6, GTK 3.20+

Windows

WPF is the best fit for most apps. WinForms is there if you’re embedding Eto.Forms in an existing WinForms app.

macOS

Mac64 uses Eto’s own bindings to Cocoa. It can build the .app bundle on any OS, including Windows and Linux, so it suits cross-platform build machines.

macOS uses Microsoft’s macos workload (dotnet workload install macos). It gives you the full Apple APIs, but can only be built on a Mac.

Both create an .app bundle in your output folder, and release builds include the .NET runtime so users don’t need to install anything.

Linux

GTK 3 is already installed on most desktop distros. The WebView control also needs WebKitGTK (libwebkit2gtk-4.1 or 4.0).

Running GTK on Windows or macOS

For testing, you can run the GTK platform on other systems once GTK 3 is installed:

Then build with -p:BuildPlatform=Gtk.

In development

WinUI (Eto.WinUI) is a work in progress and isn’t ready for use yet.

Other platforms

Other platforms or configurations may work but aren’t supported. If a bug is reported on one, we’ll (kindly) suggest updating to a supported setup. Pull requests for other platforms are welcome, and you can raise new ones for discussion on the forums.