From 58f4b7fac4d6eafcc0f6a920ceaaaef97c4e285f Mon Sep 17 00:00:00 2001 From: Jonathan Pryor Date: Sat, 17 Mar 2018 08:24:13 -0400 Subject: [PATCH] [Xamarin.Android.Build.Tasks] Install FSharp.Core 4.3.1 Fixes: https://github.com/mono/mono/issues/7511 Fixes: https://github.com/xamarin/xamarin-android/issues/1438 Context: https://github.com/xamarin/xamarin-android/pull/1289 PR #1289 bumps xamarin-android to use the mono/2018-02 branch, and is encountering an error when executing the `Xamarin.Android.Build.Tests.AndroidUpdateResourcesTest.CheckResourceDesignerIsCreated()` test, with the following error: /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/bin/Debug/lib/xamarin.android/xbuild/Xamarin/Android/Xamarin.Android.Common.targets: error : Error executing task GenerateResourceDesigner: Could not load file or assembly 'FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Error executing task GenerateResourceDesigner: System.IO.FileNotFoundException: Could not load file or assembly 'FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. File name: 'FSharp.Core, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' at System.CodeDom.Compiler.CodeDomProvider.CreateGenerator (System.IO.TextWriter output) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-02/external/bockbuild/builds/mono-x64/external/corefx/src/System.CodeDom/src/System/CodeDom/Compiler/CodeDomProvider.cs:123 at Xamarin.Android.Tasks.GenerateResourceDesigner.WriteFile (System.String file, System.CodeDom.CodeTypeDeclaration resources, System.String language, System.Boolean isFSharp, System.Boolean isCSharp) [0x0012a] in /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/src/Xamarin.Android.Build.Tasks/Tasks/GenerateResourceDesigner.cs:217 at Xamarin.Android.Tasks.GenerateResourceDesigner.Execute () [0x0065b] in /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/src/Xamarin.Android.Build.Tasks/Tasks/GenerateResourceDesigner.cs:155 at Microsoft.Build.BuildEngine.TaskEngine.Execute () [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-02/external/bockbuild/builds/mono-x64/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/TaskEngine.cs:134 at Microsoft.Build.BuildEngine.BuildTask.Execute () [0x0008d] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-02/external/bockbuild/builds/mono-x64/mcs/class/Microsoft.Build.Engine/Microsoft.Build.BuildEngine/BuildTask.cs:101 The mono/2018-02 branch bumps the `FSharp.Core.dll` assembly that is distributed with mono to have an assembly version of 4.4.1. The `FSharp.Compiler.CodeDom` NuGet package that `Xamarin.Android.Build.Tasks.dll` references requires FSharp.Core 4.3.1, hence the `FileNotFoundException`. The (hopeful) fix? Install the required `FSharp.Core.dll` version, so that `FSharp.Compiler.CodeDom` can work as desired. --- src/Xamarin.Android.Build.Tasks.tpnitems | 4 ++++ .../Xamarin.Android.Build.Tasks.csproj | 3 +++ src/Xamarin.Android.Build.Tasks/packages.config | 1 + 3 files changed, 8 insertions(+) diff --git a/src/Xamarin.Android.Build.Tasks.tpnitems b/src/Xamarin.Android.Build.Tasks.tpnitems index f193f02fd51..a085e3423e3 100644 --- a/src/Xamarin.Android.Build.Tasks.tpnitems +++ b/src/Xamarin.Android.Build.Tasks.tpnitems @@ -24,6 +24,10 @@ + + $(MSBuildThisFileDirectory)\..\build-tools\license-data\Apache-2.0.txt + https://github.com/fsharp/fsharp/ + This is free and unencumbered software released into the public domain. 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 ec61e37af41..a7da157e62e 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Build.Tasks.csproj @@ -48,6 +48,9 @@ ..\..\packages\FSharp.Compiler.CodeDom.1.0.0.1\lib\net40\FSharp.Compiler.CodeDom.dll + + ..\..\packages\FSharp.Core.3.1.2.5\lib\net40\FSharp.Core.dll + diff --git a/src/Xamarin.Android.Build.Tasks/packages.config b/src/Xamarin.Android.Build.Tasks/packages.config index b2a2d793fed..25cedecb4d5 100644 --- a/src/Xamarin.Android.Build.Tasks/packages.config +++ b/src/Xamarin.Android.Build.Tasks/packages.config @@ -1,5 +1,6 @@  + \ No newline at end of file