diff --git a/.external b/.external
index 94b4aefc41e..766b94d3272 100644
--- a/.external
+++ b/.external
@@ -1 +1,2 @@
xamarin/monodroid:master@237e0bd9f105b9842778ef82161a20c6d4497a40
+mono/mono:2019-06@afcf28a3660b069721e5c441dfe5bb7548e3204f
diff --git a/.gitignore b/.gitignore
index e6b730ef72c..ea1bc48a44a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,7 +3,6 @@
bin
Configuration.Override.props
Configuration.OperatingSystem.props
-msfinal.pub
obj
packages
.DS_Store
diff --git a/.gitmodules b/.gitmodules
index 7cfb9fab01c..4d78bec7701 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -22,10 +22,6 @@
path = external/mman-win32
url = https://github.com/witwall/mman-win32.git
branch = master
-[submodule "external/mono"]
- path = external/mono
- url = https://github.com/mono/mono.git
- branch = 2019-06
[submodule "external/mxe"]
path = external/mxe
url = https://github.com/xamarin/mxe.git
diff --git a/Configuration.props b/Configuration.props
index 0c3cbc43967..2240fd628a2 100644
--- a/Configuration.props
+++ b/Configuration.props
@@ -88,7 +88,7 @@
6.5.0
True
$(MonoRequiredMinimumVersion).98
- $(MSBuildThisFileDirectory)external\mono\external\linker\src
+ $(MSBuildThisFileDirectory)external\mono\sdks\out\android-sources\external\linker\src
$(MSBuildThisFileDirectory)external\opentk
\usr
$(HostHomebrewPrefix)\opt\mingw-zlib\usr
diff --git a/build-tools/conjure-xamarin-android-cecil/conjure-xamarin-android-cecil.cs b/build-tools/conjure-xamarin-android-cecil/conjure-xamarin-android-cecil.cs
new file mode 100644
index 00000000000..d6a9a66923b
--- /dev/null
+++ b/build-tools/conjure-xamarin-android-cecil/conjure-xamarin-android-cecil.cs
@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+
+using Mono.Cecil;
+
+public class ConjureXamarinAndroidCecil
+{
+ const string BaseNameReplacement = "Xamarin.Android.Cecil";
+ const string CecilAssemblyName = BaseNameReplacement;
+ const string CecilMdbAssemblyName = BaseNameReplacement + ".Mdb";
+
+ static readonly List internalsVisibleTo = new List {
+ "Xamarin.Android.Cecil.Pdb, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db",
+ "Xamarin.Android.Cecil.Mdb, PublicKey=0024000004800000940000000602000000240000525341310004000011000000438ac2a5acfbf16cbd2b2b47a62762f273df9cb2795ceccdf77d10bf508e69e7a362ea7a45455bbf3ac955e1f2e2814f144e5d817efc4c6502cc012df310783348304e3ae38573c6d658c234025821fda87a0be8a0d504df564e2c93b2b878925f42503e9d54dfef9f9586d9e6f38a305769587b1de01f6c0410328b2c9733db"
+ };
+
+ public static int Main (string[] args)
+ {
+ if (args.Length < 2) {
+ Console.WriteLine ("Usage: