Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Setting up a Build Environment

hwthomas edited this page Feb 28, 2022 · 7 revisions

Building dotdevelop on Linux systems

These notes describe, for a small range of popular Linux OS distributions, the software environment required to build the current dotdevelop source code. The same basic infrastructure is required on all of them, but the distributions differ in minor ways as to how this is set up.

The distributions to be covered are:-

  1. Ubuntu/Debian (APT package manager)
  2. CentOS/RHEL (Yum/dnf package manager)
  3. Arch linux (pacman package manager)

Starting from a 'clean' minimal installation of each distribution, the additional software required is:-

Development Tools
These are the basic make,gcc,autotools,etc packages required for compiling and building software. They are generally bundled as a group:- build-essential on ubuntu, Development-Tools on CentOS, and base-devel on Arch.

Mono and MSBuild
The mono-project (www.mono-project.com/download/preview) has the latest prebuilt packages for Mono and MSBuild for the first two platforms, whereas Arch has packages for mono and mono-msbuild-sdk-resolver in its official (extra) repositories.

Once Mono is installed, packages nuget, fsharp, gtk-sharp2, and glade-sharp2 are also required.

.NET
This is still changing (Feb 2022) as Microsoft consolidates the .NET 5.0 and .NET 6.0 platforms. Consequently, the .NET details may need to change at short notice. For now, get dotnet from (https://docs.microsoft.com/en-gb/dotnet/core/install/linux) or the AUR (https://aur.archlinux.org/packages/dotnet) for Arch.
Dotdevelop can be built and run with both .NET5.0 and .NET6.0 sdks installed but will not run user projects if dotnet-sdk-6.0 is installed (only dotnet-sdk-5.0).

As mono and msbuild versions gradually increment, so the capability of dotdevelop to build and run netcoreapp3.1 and .NET5.0 projects is changing. Currently (Feb 2022), with dotnet-sdk-3.1 and dotnet-sdk-5.0 installed, dotdevelop can be built, and will build and run/debug NETFramework and netcoreapp3.1 projects, but although existing net5.0 projects can be loaded, built and debugged (with certain provisos - see comments by @tommih and @whthomas in discord dotdevelop forum), this is an area where considerable DotDevelop progress is urgently needed.

Dotdevelop uses Github Actions to implement a Continuous Integration (CI) workflow, so that any changes and PRs can be automatically tested using the actions in the monodevelop.yml file (https://github.com/dotdevelop/dotdevelop/blob/main/.github/workflows/monodevelop.yml). Currently, this workflow is set up only for ubuntu-20.04 (LTS), but it is intended that this will be extended at some stage, perhaps in a separate 'packaging' section, to the other distributions.

Until this time, the following detailed pages are provided for setting up the build environment for each distribution.

Once running, DotDevelop will load a separate copy of itself which can then be debugged. It saves time if this separate copy is built using the standard make script. Also, set the DotDevelop Global Project=>Build option so that projects can be run without first being built. Otherwise, the internal Build command seems to build more than is strictly necessary.

Clone this wiki locally