Skip to content

Running your application

Curtis Wensley edited this page Jun 25, 2020 · 7 revisions

To run your application, you will need to include one or more of the platform nuget packages in your executable project.

For Windows:

For Linux / Unix:

For macOS:

The Eto.Platform.Mac64 nuget package will create an .app bundle (or folder) in the project output directory, even when built on non-mac platforms. In release builds it will bundle mono or .NET Core, which you can override using <MacBundleMono> or <MacBundleDotNet> properties in your .csproj, which allows the application to run without installing any dependencies. Note that if you build on Windows then copy to macOS you need to perform the following steps after copying:

> chmod +x YourApp.app/Contents/MacOS/YourApp # set the executable bit
> xattr -c YourApp.app # Clear the extended attributes of the .app

If you use a Xamarin.Mac project, it automatically bundles the mono framework inside the .app as well. However, it can only be built on a Mac using VS for Mac. This is required if you want your app to be published on the Mac App Store.

To distribute your app for macOS (even without publishing to the App Store), you need to code sign and notarize your application, otherwise your users will need to execute the xattr -c command above on macOS Catalina 10.15 or later.