Mono Platform





Mono is an open source platform based on the .NET framework to enable the development of Linux and other cross-platform applications. Based on C# and the Common Language Infrastructure (CLI) standards, applications can also be developed in VB.NET, Java, Python, F#, Ruby, Eiffel and others, and includes a Microsoft compatible API.

Share tech news, updates, or what's on your mind.

Sign up to Post

I've Switched to Linux recently and i didn't know how to run applications. so after i did some reading i knew about mono-project and i tried it, but the problem is that it's read-only i can't even try custom inputs for my problem solving and that's totally not useful and meaningless to is there a way that i can make mono-project take inputs from

Open in new window

like in windows CMD through terminal or any custom app or through monodevelop it self or i can't ?
help me with that please
Free Tool: Path Explorer
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Hello Folks,

I am developing an application in "Electron.Atom".

I am able to publish & build in windows. But I am stuck for MAC (OSX) and Linux.

Could you please provide steps for MAC (OSX) and Linux?

Best Regards
I would like to add the Platform Type ARM for the latest Monodevelop, version 5.10, running on Ubuntu Linux 16.04 so we can compile for Mono version 4.2.1 C# and do embedded application development. How might we do that? Thank you.
This morning, I ran a small experiment with the following C# Mono code on an Ubuntu Linux 15.10 operating system installed on a Lenovo desktop networked via Samba with an Dell Windows 7 computer:
 // Collect a list of available drives
 string[] drives = System.IO.Directory.GetLogicalDrives();
 // Output the available drives
 foreach (string str in drives)

I found out that the list of available drives is:
1.     /
2.     /run/user/1000/gvfs

After googling, I found that /run/user/1000/gvfs cannot be read according to this article about "Why cannot find read /run/user/1000/gvfs even though it is running as root?"

I would like to how to avoid being unable to read /run/user/1000/gvfs.
   http: //

   We would like to mimic the following Windows API, GetLogicalDrives(), on Ubuntu Linux 15.10 using a series of C# Mono functions.                        

int main()
  DWORD uDriveMask = GetLogicalDrives();
  printf("The bitmask of the logical drives in hex: %0X\n", uDriveMask);
  printf("The bitmask of the logical drives in decimal: %d\n", uDriveMask);
  if(uDriveMask == 0)
      printf("\nGetLogicalDrives() failed with failure code: %d\n", GetLastError());
      printf("\nThis machine has the following logical drives:\n");
    {// use the bitwise AND, 1–available, …
I recently installed Ubuntu Linux 15.10 on a Lenovo desktop.After a mysterious crash last night while testing point and click of an Mono-.NET 4.5 C# executable which DLLImport's an C++ shared object, the Files GUI manager , /usr/bin/xdg-open , flickers on and off . I removed the package xdg-utils and then installed it again followed by a system reboot and the Files GUI manager , /usr/bin/xdg-open , * still * flickers on and off.

   I goofed up. Nautilus is the file manager. An Xamarin expert advised I have driver issues.
so that either I force the system to disable 3d acceleration (the GUI is 3d accelerated by default), or I should change your graphics card, or I might have to update the driver.

   How do we force Nautilus to disable 3d acceleration?

  Please advise me how to fix this problem. Any help is greatly appreciated
How do we implement this SQL Server syntax

IF(SELECT MAX(DateAdded) FROM RestoreDetectors " +

in Mono- .NET 4.5 C# MySql.Data.MySqlClient version 5.6:

any help is greatly appreciated
On Ubuntu Linux 15.10 , how do I recover mono-.NET4.5 runtime capability only if I delete the following subdirectories /usr/lib/mono/2.0,/usr/lib/mono/3.5,/usr/lib/mono/4.0 and /usr/lib/mono/4.5 ? We would like to conserve disk space so a solution other than sudo apt-get install mono-complete is sought and preferred Also, I just tested sudo apt-get install libmono-system-data2.0-cil and it changed nothing.

I have tried every answer in this Stack Overflow URL, and I am looking for a different solution.

Do I need to refresh the Ubuntu Linux 15.10 repository to make, sudo apt-get install libmono-system4.0-cil, install at least one package? Currently, this install outputs the following message: 0 upgraded, 0 newly installed, 0 to remove and 120 not upgraded. If so, how do I refresh the repository?

Any help is greatly appreciated.
We purged mono-complete & monodevelop and followed the steps in this article:                                           The makefile make process halts early complaining of "editor/GtkWorkarounds.cs(73,40): error CS0246: The type or namespace name `Gtk' could not be found.  

Here is the C# compiler command line used by the Monodevelop main folder Makefie

Target CoreCompile:
                        Tool /home/venkat/lib/mono/4.5/mcs.exe execution started with arguments: /noconfig /codepage:65001 /debug:full /debug+ /optimize- /out:obj/Debug/libstetic.dll /resource:obj/Debug/, /resource:obj/Debug/Stetic.wrapper.objects.xml,objects.xml /resource:obj/Debug/Stetic.wrapper.pixmaps.accellabel.png,accellabel.png /resource:obj/Debug/Stetic.wrapper.pixmaps.actiongroup.png,actiongroup.png /resource:obj/Debug/Stetic.wrapper.pixmaps.add-check-label.png,add-check-label.png /resource:obj/Debug/Stetic.wrapper.pixmaps.add-menu.png,add-menu.png /resource:obj/Debug/Stetic.wrapper.pixmaps.alignment.png,alignment.png /resource:obj/Debug/Stetic.wrapper.pixmaps.arrow.png,arrow.png /resource:obj/Debug/,box-expand.png /resource:obj/Debug/,box-fill.png /resource:obj/Debug/Stetic.wrapper.pixmaps.button.png,button.png /resource:obj/Debug/Stetic.wrapper.pixmaps.calendar.png,calendar.png …
Would anyone know why the following C# marshaiing code might return an erroneous return value?

var insertCommand =  "INSERT INTO message ( text ) VALUES (\"HelloWorld\")";

public static IntPtr StringToHGlobalUTF8(string s, out int length)
            if (s == null)
                length = 0;
                return IntPtr.Zero;

            var bytes = Encoding.UTF8.GetBytes(s);
            var ptr = Marshal.AllocHGlobal(bytes.Length + 1);
            Marshal.Copy(bytes, 0, ptr, bytes.Length);
            Marshal.WriteByte(ptr, bytes.Length, 0);
            length = bytes.Length;

            return ptr;

any help is greatly  appreciated.
1.this works okay.

using System;
using System.Xml;
using System.Xml.Schema;
using System.Xml.Linq;
using System.Linq;

namespace Test
	public static class T
		public static void Main(params string[] args)
			XElement root = new XElement("BuildAddOns");
			XDocument doc = new XDocument(root);
			XElement element1 = new XElement("UserInput");
			element1.SetAttributeValue("Question", "foo");
			element1.SetAttributeValue("Answer", "blahh");
			element1.SetAttributeValue("Type", "String");
			XElement element2 = new XElement("UserInput");
			element2.SetAttributeValue("Question", "foo");
			element2.SetAttributeValue("Answer", "blahh");
			element2.SetAttributeValue("Type", "String");
			var data = from item in doc.Descendants("UserInput")
				select new { question = item.Attribute("Question").Value, answer = item.Attribute("Answer").Value, type = item.Attribute("Type").Value };
			foreach (var p in data )

Open in new window

2. this does not work. Here is the run-time error: FATAL UNHANDLED EXCEPTION: System.ArgumentNullException: Value cannot be null.
Parameter name: source
  at System.Linq.Enumerable.ToList[TSource] (IEnumerable`1 source) <0x40178020 + 0x000f7> in <filename unknown>:0
  at Microsoft.Data.Sqlite.Tests.Program.LoadDocumentFromFile () <0x40177e10 + 0x00027> in <filename unknown>:0
  at Microsoft.Data.Sqlite.Tests.Program.Main () <0x40173d50 + 0x00033> in <filename unknown>:0

string FR = "/home/venkat/Sandbox/ClickITCameraList.xml";
var lines = File.ReadLines(FR).ToList();

Open in new window

3. This compiles and runs on Ubuntu Linux 14.04 but yields the incorrect results, no console ouput, because there exists the xml file pointed by FR with 215640 bytes

var data = from item in File.ReadLines(FR)
                 select new {abc = item };
foreach (var p in data)

Open in new window

Please suggest a a way to fix this problem. Should we change from using .NET 4.5 File to .NET 4.5 FileInfo C# class?
Free Tool: Subnet Calculator
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Is there a way to use in an Ubuntu Linux environment running Monodevelop or DNX/DNU? I am encountering the C# runtime exception "Unable to load SQLIte.Interop.dll" even though I see the DLL in System.IO.Directory.GetCurrentDirectory().
Please tell me how to correct this problem, Thank you.
I would like to add Microsoft System.Windows.Forms to a project.json used by dnx run on Ubuntu 14.04 Linux. My only constraint is that I cannot use exclusively mono components. When I tried mcs InteroperabilityTest.cs /target:winexe /r:System.Drawing,System.Windows.Formseverything compiled fine. But I want to avoid using the mcs compiler and use dnx's C# compiler instead.

The reason I want to use System.Windoiws.Forms.dll is to take advantage of its DataGridView control.

Here is my project.json. The version of .NET for Linux I wish to use is either 4.5.1 or 4.6 or the latest version(please tell me how to install it and its version number and long English name).

    "version": "1.0.0-rc1-15528",
   "dependencies": {
"commands": {
    "hi": "InteroperabilityTest"
 "frameworks": {
    "dotnet": {},
    "dnx451" : {},
   "dnxcore50": {
        "dependencies": {
            "Microsoft.CSharp": "4.0.0-beta-23019",
            "System.Net.Sockets": "4.0.10-beta-23019",
            "System.Text.Encoding": "4.0.10-beta-23019",
            "System.Collections": "4.0.10-beta-23019",
            "System.Xml.XDocument": "4.0.10-beta-23019"


Here is my dnx run error messages when I try to compile InteroperabilityTest.cs.

/home/frank/developmentMono/SmartCamXi_Hybrid/Recorder/InteroperabilityTest/InteroperabilityTest.cs(28,24): DNXCore,Version=v5.0 error CS0246: The type or namespace name 'DataGridView' could not be found (are you missing a using …
I am using this guide:

When I get to the 'sudo make' part, I get the error output:
nuget restore
/bin/bash: nuget: command not found
make[2]: *** [restore-packages] Error 127
make[2]: Leaving directory `/tmp/mono/monodevelop/main'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/tmp/mono/monodevelop/main'
make: *** [all-recursive] Error 1

Open in new window

I tried installing the nuget plugin in my existing MonoDevelop installation, but that doesn't help.

I am trying to avoid another error by installing the newest version of Monodevelop from source. It is this one when I create a MVC3 project:
System.IO.FileNotFoundException: Could not find file "/usr/lib/monodevelop/AddIns/MonoDevelop.AspNet.Mvc/Templates/Common/Index.cshtml".
File name: '/usr/lib/monodevelop/AddIns/MonoDevelop.AspNet.Mvc/Templates/Common/Index.cshtml'
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) [0x00000] in <filename unknown>:0 
  at System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share) [0x00000] in <filename unknown>:0 
  at (wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)
  at System.IO.File.OpenRead (System.String path) [0x00000] in <filename unknown>:0 
  at System.IO.StreamReader..ctor (System.String path, 

Open in new window

When I google this I see that this should be possible, but I can't find any menu item anywhere that does this in MonoDevelop 4.0.12. In Visual Studio it is easy. How do I do this automatically in MonoDevelop?
Hi guys,

I am having trouble getting my software to work on a Raspberry Pi. The application runs fine but when i execute the code that has an external dll import attached to it I receive an error that it cant find the dll.

Here is my code:

[DllImport("UHFReader18_1.dll", CallingConvention = CallingConvention.StdCall)]

I am not sure where to go from here. can i place the dll in a certain path to find it or use something else to communicate with the dll?

btw this is a normal win form application.

Im lost please help i am new to Linux.


We have developed a small application on .NET Framework. How can I make it run in apple OS?

Any help will be greatly appreciated!
Hi Experts.

I want to have python scripts running on a linux box

The problem is, it has to feed from a DLL.
The dll was compiled on windows, but relies on .net4.5 framework

The reason. Working with robotics custom microcontroller, with the sdk developed in windows (relies on 4.5)

The processing is done on a pc, but want to move it to linux

Any suggestions to make this work?

thanks in advance
I have recently been introduced to System.Action returns from dialog forms.  When return a single value, i.e. Action<Boolean> or Action<String> they work well.  

However, I am now trying to create an Action<Bool, String>, which according to the Action documentation is perfectly legal.

But when I do this I get an error saying incompatible anonymous function signature, and there appears to be no way to recover the values.

The constructor in the dialog is as follows.

 private readonly Action<bool, String> _dialogAction;

        public GeneralTextDialogFragment(Activity context, Action<bool, String> dialogResult, InputTypes inputType)
            _context = context;
            _dialogAction = dialogResult;
            ValueType = inputType;

Open in new window

And the calling code is

var dialog = new Fragments.GeneralTextDialogFragment(this, dialogResult =>
                                                                                   var result = dialogResult;

                                                                                   // other stuff goes here.
                                                                                    }, InputTypes.ClassNumber);

Open in new window

But the dialogResult parameter is red underlined, and the result value, I cannot see the two values.

All of this code works perfectly if I select Action<Boolean> or Action<String>.

Can someone please point out where I am going wrong.

Please note this code is being used in Xamarin (Mono) for Android.


Our team develops some new software with the ASP.Net program language.
Atm, we use Ubuntu on our server and don’t like to virtualize a windows server or rent another server machine/virtual pc.
We need some information (mainly experience) about Mono Project.

For example:
• how stable it is
• Is there any problem with it
• Is it compatible with ubuntu (for example version)
On Demand Webinar: Networking for the Cloud Era
On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

How to add entity frame work .dll on mono(asp application on Linux platform) or how to support entity framework through mono or from ubuntu operating system.
I am a C# developer but new to cross-platform development. I need an Android version ASAP, and would be happy to also get a Windows and a Mac from Xamarin. But should I consider MonoCross instead?

I want max re-use of the code and would really love to get BlackBerry and Nokia.

What can you suggest?

I have found Xamarin which supports Android, iOS, Windows and Mac. What is MonoCross?

What platforms does it support?

Any other was to use C# on these platforms?


I am porting a .NET (C#) code to mono platform to be used in Ubuntu.

I need help to create a player that plays a .SWF file.

Please provide relevant resources( links, code etc) to help achieve the task.

I'm using NGUI for my UI in a game that I'm buidling in Unity3D; I'm new to Unity3D. Currently, all my textures are packed into a giant sheet of texture atlas through NGUI's editor tool.

However, I'm starting to realise that in certain parts of the UI, I need the textures to be loaded externally so that when I want to add a new thing into the game, I don't have to recompile the whole game.

For example, I have a button on the UI that represents an in-game item. The button has an icon image of the in-game item on it. Chances are that along the way, I would add new items into the game which players will see on their inventory UI. Therefore, it will be great if I could add the icon image of the in-game item as a texture into the game without having to recompile the whole game, perhaps through an external png file which the game could load from. However, I cannot figure out how I could do this in Unity3D. How can I achieve this in Unity3D? Examples with codes to illustrate the solution will be good.
Hello friends,

What setting in Mono do I change so that whenever I build, the new build goes to the Release folder instead of the Debug folder?

Thanks so much for your assistance.

Mono Platform





Mono is an open source platform based on the .NET framework to enable the development of Linux and other cross-platform applications. Based on C# and the Common Language Infrastructure (CLI) standards, applications can also be developed in VB.NET, Java, Python, F#, Ruby, Eiffel and others, and includes a Microsoft compatible API.

Top Experts In
Mono Platform

No Top Experts for this time period. Answer questions to earn the title!