What version of Mono does Xamarin.Mac use?

iamstowiamstow Member ✭✭

Hi All,

I'm slightly confused by the information floating around out there. When creating a Xamarin.Mac (unified) application, is the version of mono that gets bundled with the package the current version installed on the build machine, or is it a version that is shipped with Xamarin? This point is very important as I am trying to hammer down a HttpWebClient random disconnect error that appears to have been resolved in Mono 5.12.

-Isaiah

Tagged:

Best Answer

  • iamstowiamstow ✭✭
    edited July 2018 Accepted Answer

    Seems like I've answered my own question again, looks like there are several settings that need to be configured in the make.config file to ensure the build targets the correct version of mono. Can anyone confirm that this is true? If this is true, it will likely just be easier to grab the last good build using 5.12 from Xamarin macios repo Jenkins build chain. I'm going to go digging but if anyone can link it that would be greatly appreciated as I really don't want to bundle Mono 5.14 (what Xamarin.macios master is currently targeting) with my app as it is unreleased.

Answers

  • iamstowiamstow Member ✭✭

    Further research has suggested the following: Xamarin.Mac uses msbuild from the machine installed Mono however lib mono is shipped with Xamarin.Mac and in order to use a recent version of libmono, Xamarin.Mac needs to be compiled against it. Source: https://medium.com/@donblas/the-moving-parts-of-xamarin-mac-4d9b9b288043

    My question has now become the following, in order compile Xamarin.Mac against mono 5.12 is it as simple as installing Mono 5.12, syncing down the Xamarin.macios repo and compiling it on the same machine?

    -Isaiah

  • iamstowiamstow Member ✭✭
    edited July 2018 Accepted Answer

    Seems like I've answered my own question again, looks like there are several settings that need to be configured in the make.config file to ensure the build targets the correct version of mono. Can anyone confirm that this is true? If this is true, it will likely just be easier to grab the last good build using 5.12 from Xamarin macios repo Jenkins build chain. I'm going to go digging but if anyone can link it that would be greatly appreciated as I really don't want to bundle Mono 5.14 (what Xamarin.macios master is currently targeting) with my app as it is unreleased.

  • ChrisHamonsChrisHamons USForum Administrator, Xamarin Team Xamurai

    So this a question as much about hacking on Xamarin.Mac (thus https://gitter.im/xamarin/xamarin-macios is a good place), but:

    • The mono packaged into your Xamarin.Mac application in initially based upon the Target Framework you select.
    • The two supported (Modern and Full) link in a mono associated with and built into Xamarin.Mac.
    • The unsupported (System) option links in whatever mono you have installed globally on your system and hopes for the best.
    • You can rebuild Xamarin.Mac by changing the Make.config as you found
    • Mono 5.12 is 2018-02 in Microsoft release speak, which d15-8 is built with.
    • This is in the Alpha/Beta channel today.
    • https://dl.xamarin.com/XamarinforMac/Mac/xamarin.mac-4.6.0.11.pkg if you want a direct link.
    • You can also see our public builds here - https://jenkins.mono-project.com/view/Xamarin.MaciOS/
Sign In or Register to comment.