macOS development manual


Preparing environment

Important!!! The information is valid for versions up to 2024.X

In order to build multi-platform applications using .NET Core on macOS, the first steps are for installing in our MAC machine the required tools. We need to install .NET Core SDK from Microsoft and to allow us to develop easier, we will install an advance editor with a lot of features, Visual Studio Code from Microsoft. Both installations are very easy and the detailed description can be found by these two links:

  1. Install .NET Core SDK for macOS.
  2. Install CS Code for macOS.
  3. Install C# extension to facilitate us to code and debugging.

At the time of this writing, .NET Core has a problem with supporting the GdiPlus library on macOS. There is a solution that will help you to run any .Net libraries using GdiPlus.

“System.Drawing .NET Core on macOS, GDIPlus Exception”
Problem:

You got the whole thing up and running in debug. But when you went for your dotnet run, you got the following crash:

The type initializer for `System.Drawing.GDIPlus` threw an exception. --> System.DllNotFound Exception: Unable to load DLL `gdiplus`: The specified module or one of its dependencies could not be found.
Solution:

First of all, you need to install “Homebrew” - The missing package manager for macOS (or Linux).

Paste that in a macOS Terminal prompt: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

The script explains what it will do and then pauses before it does it.

Homebrew installs the stuff you need that Apple (or your Linux system) didn’t.

Paste that in a macOS Terminal prompt: $ brew install wget

Homebrew installs packages to their own directory and then symlinks their files into /usr/local

Homebrew won’t install files outside its prefix and you can place a Homebrew installation wherever you like.

Homebrew complements macOS (or your Linux system). Install your RubyGems with gem and their dependencies with brew.

Now, we need to install mono-libgdiplus. GdiPlus -compatible API on non-Windows operating systems.

Paste that in a macOS Terminal prompt: $ brew install mono-libgdiplus

If you are running components with versions starting with 2024.X please add the following dependencies using NuGet:

        <PackageReference Include="Svg.Skia" Version="1.0.0.3" />
        <PackageReference Include="SautinSoft.Document" Version="*" />
        <PackageReference Include="System.IO.Packaging" Version="4.4.0" />
        <PackageReference Include="System.Text.Encoding.CodePages" Version="4.5.0" />
        <PackageReference Include="System.Xml.XPath.XmlDocument" Version="4.3.0" />
        <PackageReference Include="SkiaSharp" Version="2.88.6" />
        <PackageReference Include="SkiaSharp.NativeAssets.macOS" Version="2.88.6" />

Congratulations, you have installed all the dependencies needed to run .Net components.

In next paragraphs we will explain in detail how to create simple console application. All of them are based on this VS Code guide:

Get Started with C# and Visual Studio Code

Not only is possible to create .NET Core applications that will run on macOS using Mac as a developing platform. It is also possible to create it using a Windows machine and any modern Visual Studio version, as Microsoft Visual Studio Community 2022.


If you need a new code example or have a question: email us at support@sautinsoft.com or ask at Online Chat (right-bottom corner of this page) or use the Form below:



Questions and suggestions from you are always welcome!

We are developing .Net components since 2002. We know PDF, DOCX, RTF, HTML, XLSX and Images formats. If you need any assistance with creating, modifying or converting documents in various formats, we can help you. We will write any code example for you absolutely free.