I suggest you ...

Visual Studio 2017, C#, Mono Cross Platform Linux?

So what is the method to use Visual Studio 2017 (or 2015) to develop & build a cross platform desktop GUI application with Linux? The advertising all indicates Xamarin is the way to go...You go to Mono website and the current pages indicate to no longer use monodevelop on Windows, and point to downloading / install Xamarin to VS. I know Xamarin is now Microsoft and built on Mono, so that sounds reasonable. OK, install Xamarin to VS2017 - except nothing there indicates that it works with Linux / Mono... just Android / Apple, etc.

Listed in the Extensions section on VS2017 you'll find a lame "mono-tools" helper app that has a warning to not install to VS2017 (Really?? Why is it listed??)...when it is installed the XBuild function sort of works, the debugger does not (hard-crashes VS2017, which I thought wasn't supposed to happen...I guess that's why the install warning is there). Haven't seen the other "monodebugger" remote debugger tool work right either in VS2017.

I dropped back to VS2015 and for that there is a "Monohelper" tool that works a bit better with XBuild...but again doesn't want to install to VS2017, at least not that I see.

SO: With VS2015 / 2017... is there any current Visual Studio-based toolchain configuration that works for cross-platform C# dot NET development with Mono / Linux?

157 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Joyce shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    3 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      Submitting...
      • Rokas Kupstys commented  ·   ·  Flag as inappropriate

        We really could use some help building and debugging mono applications on Windows. Actually we can build mon applications today, although it requires using a nasty hack:

        @echo off

        REG ADD HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5,Profile=Mono
        REG ADD HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\SKUs\.NETFramework,Version=v4.5,Profile=Mono
        set "NETDIR=C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5"
        mkdir "%NETDIR%\Profile"
        mklink /d "%NETDIR%\Profile\Mono" "C:\Program Files\Mono\lib\mono\4.5"
        mkdir "%NETDIR%\Profile\Mono\RedistList"
        echo ^<?xml version="1.0" encoding="utf-8"?^> > "%NETDIR%\Profile\Mono\RedistList\FrameworkList.xml"
        echo ^<FileList Redist="Mono-4.5" Name="Mono 4.5 Profile" RuntimeVersion="4.5" ToolsVersion="4.0"^> ^</FileList^> >> "%NETDIR%\Profile\Mono\RedistList\FrameworkList.xml"

        This enables mono target framework in C# project settings.

        Also there is mono debugger extension for VS Code: https://github.com/Microsoft/vscode-mono-debug which has remote debugger support. This is all we need except in Visual Studio.

        So close, yet so far. I would not mind writing opensource extension myself, but who would pay for that time spent..?

      • Garlon commented  ·   ·  Flag as inappropriate

        It's hard to believe this is a technical issue considering the effort to support iOS and Android. I'm sure there's some within MS that want to save a place for MonoDevelop on Linux. As with many other developer platform "discussions", it's unlikely that will happen. There are large bases of both Windows and Linux developers, and then there's an audience that needs to support both - and they want to do it with a single tool chain. It's about having lots of choices, and being seen as the company that provides that service. That seems to be the MS vision. Take the next step.

      Feedback and Knowledge Base