diff --git a/Documentation/UsingJenkinsBuildArtifacts.md b/Documentation/UsingJenkinsBuildArtifacts.md
index 2d953300de6..70fa50d329e 100644
--- a/Documentation/UsingJenkinsBuildArtifacts.md
+++ b/Documentation/UsingJenkinsBuildArtifacts.md
@@ -2,8 +2,8 @@
The [**Project xamarin-android** Jenkins page][xa-jenkins-page] has a link
to the [Latest Azure Artifacts][xa-macOS-azure-artifacts], which contains an
-`oss-xamarin.android*.zip` file for every Jenkins build on macOS.
-The `oss-xamarin.android*.zip` file can be downloaded and used, without
+`oss-xamarin.android*.zip` and `Xamarin.Android.Sdk*.vsix` file for every
+Jenkins build on macOS. These files can be downloaded and used, without
requiring a local `xamarin-android` repo build.
[xa-jenkins-page]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/
@@ -23,20 +23,15 @@ download the `oss-xamarin.android*.zip` file, e.g.
[oss-xa-macOS]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android/lastSuccessfulBuild/Azure/processDownloadRequest/xamarin-android/oss-xamarin.android_v7.2.99.19_Darwin-x86_64_master_3b893cd.zip
+Windows users using Visual Studio 2017 may instead download the
+`Xamarin.Android.Sdk*.vsix` file.
+
macOS users may just extract this into their **Downloads** folder using
**Archive Utility.app** or `unzip` from **Terminal.app**. This will result
in a file such as:
$HOME/Downloads/oss-xamarin.android_v7.2.99.19_Darwin-x86_64_master_3b893cd/bin/Debug/bin/xabuild
-Windows users should right-click this file within Explorer and click
-**Extract All...**, and in the **Extract Compressed (Zipped) Folders** dialog
-enter a *short* path such as `C:\xa-sdk`. This is necessary because some
-of the contained filenames are quite long. This will result in a path
-such as:
-
- C:\xa-sdk\oss-xamarin.android_v7.2.99.19_Darwin-x86_64_master_3b893cd\bin\Debug\bin\mono-symbolicate.cmd
-
Linux/x86_64 users can go to the
[Latest xamarin-android-linux Azure Artifacts page][xa-linux-azure-artifacts]
and download the `oss-xamarin.android*.zip` file, e.g.
@@ -45,6 +40,20 @@ and download the `oss-xamarin.android*.zip` file, e.g.
[xa-linux-azure-artifacts]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-linux/lastSuccessfulBuild/Azure/
[oss-xa-Linux]: https://jenkins.mono-project.com/view/Xamarin.Android/job/xamarin-android-linux/lastSuccessfulBuild/Azure/processDownloadRequest/xamarin-android/oss-xamarin.android_v7.2.99.19_Linux-x86_64_master_3b893cd.zip
+## Windows Installation
+
+Windows users can right-click the `oss-xamarin.android*.zip` file within
+Windows Explorer and click **Extract All...**, and in the
+**Extract Compressed (Zipped) Folders** dialog enter a *short* path such as
+`C:\xa-sdk`. This is necessary because some of the contained filenames are
+quite long. This will result in a path such as:
+
+ C:\xa-sdk\oss-xamarin.android_v7.2.99.19_Darwin-x86_64_master_3b893cd\bin\Debug\bin\mono-symbolicate.cmd
+
+Alternatively, if you download the `Xamarin.Android.Sdk*.vsix` file, you can
+double-click the file to install the Xamarin.Android SDK extension into
+Visual Studio 2017.
+
# Using Jenkins Build Artifacts
## Command-line use: Linux and macOS
@@ -104,6 +113,7 @@ For example (using the paths from [Android SDK Setup](#Android_SDK_Setup)):
samples\HelloWorld\HelloWorld.csproj
+
# Android SDK Setup
Please see the [Android Studio][android-studio] page to download the
diff --git a/Xamarin.Android.sln b/Xamarin.Android.sln
index 4c718d8463d..703d3c282a0 100644
--- a/Xamarin.Android.sln
+++ b/Xamarin.Android.sln
@@ -107,6 +107,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "javadoc2mdoc", "tools\javad
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Xamarin.Android.Build.Tests.Shared", "src\Xamarin.Android.Build.Tasks\Tests\Xamarin.Android.Build.Tests\Xamarin.Android.Build.Tests.Shared.shproj", "{BD1D66BF-5AC7-4926-8EBE-B2198A112EB0}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "create-vsix", "build-tools\create-vsix\create-vsix.csproj", "{94756FEB-1F64-411D-A18E-81B5158F776A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AnyCPU = Debug|AnyCPU
@@ -489,6 +491,14 @@ Global
{A87352E6-CE7F-4346-B6B1-586AE931C0A7}.XAIntegrationDebug|AnyCPU.Build.0 = Debug|Any CPU
{A87352E6-CE7F-4346-B6B1-586AE931C0A7}.XAIntegrationRelease|AnyCPU.ActiveCfg = Debug|Any CPU
{A87352E6-CE7F-4346-B6B1-586AE931C0A7}.XAIntegrationRelease|AnyCPU.Build.0 = Debug|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.Debug|AnyCPU.Build.0 = Debug|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.Release|AnyCPU.ActiveCfg = Release|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.Release|AnyCPU.Build.0 = Release|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.XAIntegrationDebug|AnyCPU.ActiveCfg = Debug|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.XAIntegrationDebug|AnyCPU.Build.0 = Debug|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.XAIntegrationRelease|AnyCPU.ActiveCfg = Debug|Any CPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}.XAIntegrationRelease|AnyCPU.Build.0 = Debug|Any CPU
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{8FF78EB6-6FC8-46A7-8A15-EBBA9045C5FA} = {E351F97D-EA4F-4E7F-AAA0-8EBB1F2A4A62}
@@ -540,6 +550,7 @@ Global
{E0890301-F75F-40E7-B008-54C28B3BA542} = {864062D3-A415-4A6F-9324-5820237BA058}
{A87352E6-CE7F-4346-B6B1-586AE931C0A7} = {864062D3-A415-4A6F-9324-5820237BA058}
{BD1D66BF-5AC7-4926-8EBE-B2198A112EB0} = {CAB438D8-B0F5-4AF0-BEBD-9E2ADBD7B483}
+ {94756FEB-1F64-411D-A18E-81B5158F776A} = {E351F97D-EA4F-4E7F-AAA0-8EBB1F2A4A62}
EndGlobalSection
GlobalSection(MonoDevelopProperties) = preSolution
Policies = $0
diff --git a/build-tools/create-vsix/.gitignore b/build-tools/create-vsix/.gitignore
new file mode 100644
index 00000000000..bf944802a6b
--- /dev/null
+++ b/build-tools/create-vsix/.gitignore
@@ -0,0 +1 @@
+Xamarin.Android.Sdk.pkgdef
diff --git a/build-tools/create-vsix/Resources/AndroidSdkPackage.ico b/build-tools/create-vsix/Resources/AndroidSdkPackage.ico
new file mode 100644
index 00000000000..d323b07fb8d
Binary files /dev/null and b/build-tools/create-vsix/Resources/AndroidSdkPackage.ico differ
diff --git a/build-tools/create-vsix/VSPackage.resx b/build-tools/create-vsix/VSPackage.resx
new file mode 100644
index 00000000000..bd37b1e6a5d
--- /dev/null
+++ b/build-tools/create-vsix/VSPackage.resx
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+ Xamarin.Android SDK
+
+
+ Xamarin.Android Reference Assemblies and MSBuild support.
+
+
+ Resources/AndroidSdkPackage.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+
\ No newline at end of file
diff --git a/build-tools/create-vsix/Xamarin.Android.Sdk.pkgdef.in b/build-tools/create-vsix/Xamarin.Android.Sdk.pkgdef.in
new file mode 100644
index 00000000000..789067c0eb4
--- /dev/null
+++ b/build-tools/create-vsix/Xamarin.Android.Sdk.pkgdef.in
@@ -0,0 +1,7 @@
+[$RootKey$\InstalledProducts\AndroidSdkPackage]
+@="#110"
+"Package"="{d0e8d881-b09d-40bf-923b-b3efddc53c16}"
+"PID"="@PACKAGE_VERSION@.@PACKAGE_VERSION_BUILD@ (@PACKAGE_HEAD_BRANCH@/@PACKAGE_HEAD_REV@)"
+"ProductDetails"="#112"
+"LogoID"="#400"
+
diff --git a/build-tools/create-vsix/create-vsix.csproj b/build-tools/create-vsix/create-vsix.csproj
new file mode 100644
index 00000000000..57869f2496a
--- /dev/null
+++ b/build-tools/create-vsix/create-vsix.csproj
@@ -0,0 +1,74 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {94756FEB-1F64-411D-A18E-81B5158F776A}
+ Library
+ Xamarin.Android.Sdk
+ Xamarin.Android.Sdk
+ v4.6
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ False
+ <_BuildVsix Condition=" '$(CreateVsixContainer)' == 'True' And Exists ('$(VsSDKInstall)') ">True
+ <_BuildVsix Condition=" '$(_BuildVsix)' == '' ">False
+ bin\$(Configuration)
+
+
+
+
+
+ Always
+ True
+
+
+
+
+ True
+ VSPackage
+
+
+
+
+
+ Designer
+
+
+
+
+
+
+
+ _CreateDependencies;
+ $(BuildDependsOn);
+ _CopyToBuildConfiguration
+
+
+
+
+
+ _CreateDependencies;
+ $(BuildDependsOn);
+
+
+
+
+
+
+
+
+ {7CE69551-BD73-4726-ACAA-AAF89C84BAF8}
+ xa-prep-tasks
+ False
+ False
+
+
+
diff --git a/build-tools/create-vsix/create-vsix.targets b/build-tools/create-vsix/create-vsix.targets
new file mode 100644
index 00000000000..4629ae60695
--- /dev/null
+++ b/build-tools/create-vsix/create-vsix.targets
@@ -0,0 +1,133 @@
+
+
+
+
+
+
+
+
+
+ False
+
+ $(PrepareForBuildDependsOn);
+ AddContent
+
+ ..\..\bin\$(Configuration)\lib\
+
+
+
+ True
+
+ MSBuild
+
+
+ True
+
+ ReferenceAssemblies
+
+
+
+
+
+
+
+ %(RecursiveDir)
+
+
+
+ Xamarin/Android
+
+
+
+ Xamarin/Android/lib/host-win
+
+
+
+ Xamarin/%(RecursiveDir)
+
+
+
+
+
+ Xamarin/Android/%(RecursiveDir)
+
+
+
+
+ Microsoft/Framework/%(RecursiveDir)
+
+
+
+
+
+
+
+
+
+ $(ProductVersion).$(_XACommitCount)
+
+
+
+
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_Branch>$(_XABranch.Replace ('/', '-'))
+ <_Branch>$(_Branch.Replace ('\', '-'))
+
+
+
+
diff --git a/build-tools/create-vsix/packages.config b/build-tools/create-vsix/packages.config
new file mode 100644
index 00000000000..5046ee42b7d
--- /dev/null
+++ b/build-tools/create-vsix/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/build-tools/create-vsix/source.extension.vsixmanifest b/build-tools/create-vsix/source.extension.vsixmanifest
new file mode 100644
index 00000000000..720655de3d9
--- /dev/null
+++ b/build-tools/create-vsix/source.extension.vsixmanifest
@@ -0,0 +1,18 @@
+
+
+
+
+ Xamarin.Android SDK
+ Xamarin.Android SDK
+ Resources\AndroidSdkPackage.ico
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build-tools/mono-runtimes/mono-runtimes.targets b/build-tools/mono-runtimes/mono-runtimes.targets
index 70db99465aa..5350aa04a36 100644
--- a/build-tools/mono-runtimes/mono-runtimes.targets
+++ b/build-tools/mono-runtimes/mono-runtimes.targets
@@ -331,7 +331,7 @@
DestinationFiles="@(_InstallUnstrippedRuntimeOutput)"
/>
@@ -546,6 +546,14 @@
SourceFiles="$(IntermediateOutputPath)\%(_MonoCrossRuntime.Identity)\mono\mini\mono-sgen%(_MonoCrossRuntime.ExeSuffix)"
DestinationFiles="$(OutputPath)\%(_MonoCrossRuntime.InstallPath)%(_MonoCrossRuntime.CrossMonoName)%(_MonoCrossRuntime.ExeSuffix)"
/>
+
+
diff --git a/build-tools/scripts/BuildEverything.mk b/build-tools/scripts/BuildEverything.mk
index 0f19ecfc810..a36fe024504 100644
--- a/build-tools/scripts/BuildEverything.mk
+++ b/build-tools/scripts/BuildEverything.mk
@@ -76,6 +76,7 @@ _MSBUILD_ARGS = \
CONFIGURATIONS ?= Debug Release
.PHONY: leeroy jenkins leeroy-all opentk-jcw framework-assemblies runtime-libraries task-assemblies
+.PHONY: create-vsix
jenkins: prepare leeroy $(ZIP_OUTPUT)
@@ -120,6 +121,10 @@ _BUNDLE_ZIPS_INCLUDE = \
_BUNDLE_ZIPS_EXCLUDE = \
$(ZIP_OUTPUT_BASENAME)/bin/*/bundle-*.zip
+create-vsix:
+ $(foreach conf, $(CONFIGURATIONS), \
+ MONO_IOMAP=all MONO_OPTIONS=--arch=64 msbuild $(MSBUILD_FLAGS) build-tools/create-vsix/create-vsix.csproj /p:Configuration=$(conf) /p:CreateVsixContainer=True ; )
+
package-oss-name:
@echo ZIP_OUTPUT=$(ZIP_OUTPUT)
diff --git a/build-tools/scripts/XAVersionInfo.targets b/build-tools/scripts/XAVersionInfo.targets
new file mode 100644
index 00000000000..f3da84f0607
--- /dev/null
+++ b/build-tools/scripts/XAVersionInfo.targets
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build-tools/xa-prep-tasks/xa-prep-tasks.targets b/build-tools/xa-prep-tasks/xa-prep-tasks.targets
index a3899c9cec3..68a02d07b8d 100644
--- a/build-tools/xa-prep-tasks/xa-prep-tasks.targets
+++ b/build-tools/xa-prep-tasks/xa-prep-tasks.targets
@@ -1,63 +1,53 @@
-
-
-
-
+
<_AzureBaseUri>https://xamjenkinsartifact.blob.core.windows.net/xamarin-android/xamarin-android/bin/
-
+
+ <_XAPrefix>..\..\bin\$(Configuration)\lib\xbuild\Xamarin\Android
<_VersionFile>..\..\bin\$(Configuration)\Version
<_VersionCommitFile>..\..\bin\$(Configuration)\Version.commit
<_VersionRevFile>..\..\bin\$(Configuration)\Version.rev
+ <_XAVersionFile>$(_XAPrefix)\Version
+ <_XAVersionCommitFile>$(_XAPrefix)\Version.commit
+ <_XAVersionRevFile>$(_XAPrefix)\Version.rev
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
diff --git a/src/Mono.Android/Mono.Android.targets b/src/Mono.Android/Mono.Android.targets
index 75b269a2600..61e9d947461 100644
--- a/src/Mono.Android/Mono.Android.targets
+++ b/src/Mono.Android/Mono.Android.targets
@@ -1,10 +1,7 @@
-
-
-
-
+
@@ -25,41 +22,15 @@
/>
-
-
-
-
-
-
-
-
-
-
-
-
+ Replacements="@PACKAGE_VERSION@=$(ProductVersion);@PACKAGE_VERSION_BUILD@=$(XAVersionCommitCount);@PACKAGE_HEAD_REV@=$(XAVersionHash);@PACKAGE_HEAD_BRANCH@=$(XAVersionBranch)">
{B8F799C5-D7CE-4E09-9CE6-BAA4173E7EC8}
sqlite-xamarin
False
+ False
{3F1F2F50-AF1A-4A5A-BEDB-193372F068D7}
Xamarin.Android.Build.Tasks
False
+ False
diff --git a/src/Mono.Posix/Mono.Posix.csproj b/src/Mono.Posix/Mono.Posix.csproj
index 38623200664..14f1a3f53fb 100644
--- a/src/Mono.Posix/Mono.Posix.csproj
+++ b/src/Mono.Posix/Mono.Posix.csproj
@@ -253,6 +253,7 @@
{3F1F2F50-AF1A-4A5A-BEDB-193372F068D7}
Xamarin.Android.Build.Tasks
False
+ False
diff --git a/src/OpenTK-1.0/OpenTK.csproj b/src/OpenTK-1.0/OpenTK.csproj
index c049428604a..b147cd3c66d 100644
--- a/src/OpenTK-1.0/OpenTK.csproj
+++ b/src/OpenTK-1.0/OpenTK.csproj
@@ -613,6 +613,7 @@
{3F1F2F50-AF1A-4A5A-BEDB-193372F068D7}
Xamarin.Android.Build.Tasks
False
+ False
diff --git a/src/System.Drawing.Primitives/System.Drawing.Primitives.csproj b/src/System.Drawing.Primitives/System.Drawing.Primitives.csproj
index 0fb93e4ef8f..724f452cf61 100644
--- a/src/System.Drawing.Primitives/System.Drawing.Primitives.csproj
+++ b/src/System.Drawing.Primitives/System.Drawing.Primitives.csproj
@@ -73,6 +73,7 @@
{3F1F2F50-AF1A-4A5A-BEDB-193372F068D7}
Xamarin.Android.Build.Tasks
False
+ False
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/MonoDroid.FSharp.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Novell/MonoDroid.FSharp.targets
similarity index 100%
rename from src/Xamarin.Android.Build.Tasks/MonoDroid.FSharp.targets
rename to src/Xamarin.Android.Build.Tasks/MSBuild/Novell/MonoDroid.FSharp.targets
diff --git a/src/Xamarin.Android.Build.Tasks/Novell.MonoDroid.CSharp.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Novell/Novell.MonoDroid.CSharp.targets
similarity index 100%
rename from src/Xamarin.Android.Build.Tasks/Novell.MonoDroid.CSharp.targets
rename to src/Xamarin.Android.Build.Tasks/MSBuild/Novell/Novell.MonoDroid.CSharp.targets
diff --git a/src/Xamarin.Android.Build.Tasks/Novell.MonoDroid.Common.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Novell/Novell.MonoDroid.Common.targets
similarity index 100%
rename from src/Xamarin.Android.Build.Tasks/Novell.MonoDroid.Common.targets
rename to src/Xamarin.Android.Build.Tasks/MSBuild/Novell/Novell.MonoDroid.Common.targets
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Before.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Before.targets
new file mode 100644
index 00000000000..2fb46ab55b9
--- /dev/null
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Bindings.Before.targets
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'Xamarin.Android.Sdk.props'))\Xamarin.Android.Sdk.props
+
+
+
+
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common.After.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common.After.targets
new file mode 100644
index 00000000000..53f56e036ec
--- /dev/null
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common.After.targets
@@ -0,0 +1,17 @@
+
+
+
+
+
+
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common.Before.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common.Before.targets
new file mode 100644
index 00000000000..7101a6d7a6e
--- /dev/null
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common.Before.targets
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+ $([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), 'Xamarin.Android.Sdk.props'))\Xamarin.Android.Sdk.props
+
+
+
+
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Microsoft.Cpp.Android.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Microsoft.Cpp.Android.targets
new file mode 100644
index 00000000000..85676337a0e
--- /dev/null
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Microsoft.Cpp.Android.targets
@@ -0,0 +1,84 @@
+
+
+
+
+ 3.0
+ $(VCTargetsPath)\Application Type\Android\$(ApplicationTypeRevision)\
+ $(AndroidTaskPath)Microsoft.Build.CPPTasks.Android.dll
+ true
+ false
+
+
+
+
+
+
+
+ <_NativeAndroidProjectReference
+ Include="@(_MSBuildProjectReferenceExistent->WithMetadataValue('TargetPlatformIdentifier', 'Android'))" />
+
+ <_NativeAndroidProjectReferenceWithConfiguration
+ Include="@(_NativeAndroidProjectReference->HasMetadata('SetConfiguration'))" />
+ <_NativeAndroidProjectReferenceWithoutConfiguration
+ Include="@(_NativeAndroidProjectReference)"
+ Exclude="@(_NativeAndroidProjectReferenceWithConfiguration)" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(NativeLibraryAbi)
+
+
+ PreserveNewest
+
+
+
+
+
+
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Xamarin.Android.Windows.targets b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Xamarin.Android.Windows.targets
new file mode 100644
index 00000000000..87fc11e19e5
--- /dev/null
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Android/Xamarin.Android.Common/ImportAfter/Xamarin.Android.Windows.targets
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Xamarin.Android.Sdk.props b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Xamarin.Android.Sdk.props
new file mode 100644
index 00000000000..f7c815569ef
--- /dev/null
+++ b/src/Xamarin.Android.Build.Tasks/MSBuild/Xamarin/Xamarin.Android.Sdk.props
@@ -0,0 +1,58 @@
+
+
+
+
+
+ $([System.IO.File]::ReadAllText('$(VsInstallRoot)\Common7\IDE\devenv.isolation.ini'))
+ $(DevEnvIni.IndexOf('InstallationID='))
+ $([MSBuild]::Add('$(InstallationIDEqualsIndex)', '15'))
+ $(DevEnvIni.Substring($(InstallationIDEqualsIndex), 8))
+
+
+
+
+ $(VsInstallRoot)\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\
+ $(TargetFrameworkRootPath)MonoAndroid\v1.0
+ true
+
+
+
+
+ $(VsInstallRoot)\MSBuild\Xamarin\Android
+ $(VsInstallRoot)\MSBuild\Xamarin\Android
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Environment.SetEnvironmentVariable("XAMARIN_ANDROID_REGKEY", string.Format(@"SOFTWARE\Xamarin\VisualStudio\{0}_{1}\Android", VisualStudioVersion, InstallationID), EnvironmentVariableTarget.Process);
+ Log.LogMessage(Environment.GetEnvironmentVariable("XAMARIN_ANDROID_REGKEY"));
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
index 9384656dc83..03b9b82d881 100644
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj
@@ -132,13 +132,6 @@
-
- PreserveNewest
- Designer
-
-
- PreserveNewest
-
@@ -155,22 +148,6 @@
-
- Designer
- PreserveNewest
-
-
- Designer
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
-
@@ -181,10 +158,6 @@
-
- PreserveNewest
-
-
@@ -290,15 +263,11 @@
pdb2mdb\SourceLocationProvider.cs
-
-
- PreserveNewest
-
Linker\Mono.Linker\Annotations.cs
@@ -518,10 +487,18 @@
Utilities\MD2Managed.cs
-
+
+
+
+
+
+
+ PreserveNewest
+
+
diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets
index d0ecdcf7f62..58b558d8c66 100644
--- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets
+++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.targets
@@ -2,20 +2,100 @@
+
+
<_SharedRuntimeBuildPath Condition=" '$(_SharedRuntimeBuildPath)' == '' ">..\..\bin\$(Configuration)\lib\xbuild-frameworks\MonoAndroid\
<_GeneratedProfileClass>$(IntermediateOutputPath)Profile.g.cs
- $(BuildDependsOn);
- _CopyExtractedMultiDexJar;
- _BuildMonoSymbolicateScripts;
+ _GenerateXACommonProps;
+ $(BuildDependsOn);
+ _CopyExtractedMultiDexJar;
+ _BuildMonoSymbolicateScripts;
<_AndroidSdkLocation Condition="'$(_AndroidSdkLocation)'==''">$(AndroidSdkDirectory)
<_MultiDexAarInAndroidSdk>extras\android\m2repository\com\android\support\multidex\1.0.1\multidex-1.0.1.aar
<_SupportLicense Condition="Exists('$(_AndroidSdkLocation)\extras\android\m2repository\NOTICE.txt')">$(_AndroidSdkLocation)\extras\android\m2repository\NOTICE.txt
<_SupportLicense Condition="Exists('$(_AndroidSdkLocation)\extras\android\m2repository\m2repository\NOTICE.txt')">$(_AndroidSdkLocation)\extras\android\m2repository\m2repository\NOTICE.txt
+
+
+ PreserveNewest
+ ..\..\Novell\Novell.MonoDroid.Common.targets
+
+
+ PreserveNewest
+ ..\..\Novell\Novell.MonoDroid.CSharp.targets
+
+
+ PreserveNewest
+ ..\..\Novell\MonoDroid.FSharp.targets
+
+
+ PreserveNewest
+ ..\Xamarin.Android.Sdk.props
+
+
+ PreserveNewest
+ Xamarin.Android.Bindings.Before.targets
+
+
+ PreserveNewest
+ Xamarin.Android.Common\ImportAfter\Microsoft.Cpp.Android.targets
+
+
+ PreserveNewest
+ \Xamarin.Android.Common\ImportAfter\Xamarin.Android.Windows.targets
+
+
+ PreserveNewest
+ Xamarin.Android.Common.After.targets
+
+
+ PreserveNewest
+ Xamarin.Android.Common.Before.targets
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+ Designer
+
+
+ Designer
+ PreserveNewest
+
+
+ PreserveNewest
+ Designer
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
+ PreserveNewest
+
+
<_SharedRuntimeAssemblies Include="@(MonoProfileAssembly->'$(_SharedRuntimeBuildPath)v1.0\%(Identity)')" />
<_SharedRuntimeAssemblies Include="$(_SharedRuntimeBuildPath)v1.0\Mono.Data.Sqlite.dll" />
@@ -28,7 +108,17 @@
<_SharedRuntimeAssemblies Include="$(_SharedRuntimeBuildPath)$(AndroidFrameworkVersion)\OpenTK.dll" />
<_SharedRuntimeAssemblies Include="$(_SharedRuntimeBuildPath)$(AndroidFrameworkVersion)\OpenTK-1.0.dll" />
-
+
+
+
+
{3F1F2F50-AF1A-4A5A-BEDB-193372F068D7}
Xamarin.Android.Build.Tasks
False
+ False
diff --git a/src/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks.csproj b/src/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks.csproj
index 6fb5ca5eeeb..43020894c96 100644
--- a/src/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks.csproj
+++ b/src/Xamarin.Android.Tools.BootstrapTasks/Xamarin.Android.Tools.BootstrapTasks.csproj
@@ -50,11 +50,6 @@
-
-
- PreserveNewest
-
-
{E248B2CA-303B-4645-ADDC-9D4459D550FD}