**NOTICE** ------------- **This project has not been built nor maintained since January 2020 and has been archived** If you are interested in working on the project, even when archived you can still create a fork of it.


---


**MonoDevelop** is a full-featured integrated development environment (IDE) for mono using Gtk#. The MonoDevelop core is also the foundation for Visual Studio for Mac. Feel free to file bugs against Visual Studio for Mac here as well. See http://www.monodevelop.com for more info. [![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/mono/monodevelop?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) Directory organization ---------------------- There are two main directories: * `main`: The core MonoDevelop assemblies and add-ins (all in a single tarball/package). * `extras`: Additional add-ins (each add-in has its own tarball/package). Compiling --------- If you are building from Git, make sure that you initialize the submodules that are part of this repository by executing: `git submodule update --init --recursive` If you are running a parallel mono installation, make sure to run all the following steps while having sourced your mono installation script. (source path/to/my-environment-script) See: http://www.mono-project.com/Parallel_Mono_Environments To compile execute: `./configure ; make` There are two variables you can set when running `configure`: * The install prefix: `--prefix=/path/to/prefix` * To install with the rest of the assemblies, use: `--prefix="pkg-config --variable=prefix mono"` * The build profile: `--profile=profile-name` * `stable`: builds the MonoDevelop core and some stable extra add-ins. * `core`: builds the MonoDevelop core only. * `all`: builds everything * `mac`: builds for Mac OS X **PS:** You can also create your own profile by adding a file to the profiles directory containing a list of the directories to build. Disclaimer: Please be aware that the 'extras/JavaBinding' and 'extras/ValaBinding' packages do not currently work. When prompted or by manually selecting them during the './configure --select' step, make sure they stay deselected. (deselected by default) Running ------- You can run MonoDevelop from the build directory by executing: `make run` Debugging --------- You can debug MonoDevelop using Visual Studio (on Windows or macOS) with the `main/Main.sln` solution. Use the `DebugWin32` configuration on Windows and the `DebugMac` configuration on macOS. Installing *(Optional)* ---------- You can install MonoDevelop by running: `make install` Bear in mind that if you are installing under a custom prefix, you may need to modify your `/etc/ld.so.conf` or `LD_LIBRARY_PATH` to ensure that any required native libraries are found correctly. *(It's possible that you need to install for your locale to be correctly set.)* Packaging for OS X ----------------- To package MonoDevelop for OS X in a convenient MonoDevelop.app file, just do this after MonoDevelop has finished building (with `make`): `cd main/build/MacOSX ; make app`. You can run MonoDevelop: `open MonoDevelop.app` or build dmg package: `./make-dmg-bundle.sh` Dependencies ------------ - [Windows](https://github.com/mono/md-website/blob/gh-pages/developers/building-monodevelop.md#prerequisites-and-source) - [Unix](http://www.monodevelop.com/developers/building-monodevelop/#linux) Special Environment Variables ----------------------------- **BUILD_REVISION** If this environment variable exists we assume we are compiling inside wrench. We use this to enable raygun only for 'release' builds and not for normal developer builds compiled on a dev machine with 'make && make run'. Known Problems ----------------------------- ``` "The type `GLib.IIcon' is defined in an assembly that is not referenced" ``` This happens when you accidentally installed gtk-sharp3 instead of the 2.12.x branch version. Make sure to 'make uninstall' or otherwise remove the gtk-sharp3 version and install the older one. xbuild may still cache a reference to assemblies that you may have accidentally installed into your mono installation, like the gtk-sharp3 as described before. You can delete the cache in $HOME/.config/xbuild/pkgconfig-cache-2.xml References ---------- **[MonoDevelop website](http://www.monodevelop.com)** **[Gnome Human Interface Guidelines (HIG)](https://developer.gnome.org/hig/stable/)** **[freedesktop.org standards](http://freedesktop.org/Standards/)** Discussion, Bugs, Patches ------------------------- monodevelop-list@lists.ximian.com *(questions and discussion)* monodevelop-patches-list@lists.ximian.com *(track commits to MonoDevelop)* monodevelop-bugs@lists.ximian.com *(track MonoDevelop bugzilla component)* https://github.com/mono/monodevelop/issues/new *(submit bugs and patches here)*