Fedora’s mono-complete isn’t

April 23, 2026
Share

The problem with things that target Microsoft technologies is that sometimes you end up using ancient versions for a lot longer than you’re really expected to.

Take C# for example; the standard library for that language (called some variation of “.NET Core” or “.NET Framework” depending on version) is up to version 10.0 now, but because a lot of popular software has been around for over a decade at this point, if you end up making a plugin for that software you’ll end up targeting version 4.7.2 instead.

If you’re on Windows, it’s less of a problem: Microsoft still distributes older versions of the C# standard library, even today (in newer versions of Windows its either baked in or automatically fetched from the Microsoft Store). If you’re on Linux, it should be almost as easy; simply install Mono and everything up to just before the latest and greatest versions is provided for you.

Except for some reason in Fedora, this isn’t the case, even if you install the mono-complete package; you’ll get full copies of 4.0 and 4.5, but only partials of 4.6 and 4.7.0. Which is probably just enough to run Paint.NET, but not enough to actually develop anything using that framework. Red Hat isn’t likely to start packaging those versions either; they are end of life from Microsoft, after all.

But because the realities of computing don’t always line up with what the major corporations will and won’t support, here’s what I did to get a working .NET Framework 4.7.2 I can compile against on Fedora 43. If you’re curious, I’m building mods for RimWorld, a Unity game from 2017.

  1. Download Arch Linux’s mono package. This is a zstd-compressed tarball containing everything that package installs.
  2. Extract the relevant API versions from /usr/lib/mono within the archive (I grabbed 4.7, 4.7.1, and 4.7.2 for completeness, as these are the most commonly used versions of all time, at least from my relatively limited experience dealing with C#).
  3. Copy these extracted files to /usr/lib/mono on your root filesystem. (4.7 should eventually live at /usr/lib/mono/4.7-api, for instance)
  4. Fortunately, MSBuild for Mono does seem to be included in mono-complete. Unfortunately, however, its not in PATH. You’ll need to call it directly: /usr/lib/mono/msbuild/msbuild

I’ll write a more in-depth post on how to make a RimWorld mod as a Fedora user at a later time, but this is the only real hurdle; everything else is speaking MSBuild’s slightly arcane language.