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?
Rokas Kupstys commented
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:
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"
mklink /d "%NETDIR%\Profile\Mono" "C:\Program Files\Mono\lib\mono\4.5"
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..?
You may have a look at MDebug (https://www.mdebug.com/)
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.