From 518ffcdc9412659b3e7b87c9406c9af4b1b3bb54 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Thu, 26 Oct 2017 15:34:55 +0100 Subject: [PATCH 1/2] [Xamarin.Android.Build.Tasks] Fix a Hang in Visual Studio DesignTime Build. Fixes https://bugzilla.xamarin.com/show_bug.cgi?id=60080 In a previus attempt to fix an intellisense build (1cd582ec) we caused this issue. The DesignTime build does NOT like our AsyncTask as it locks the IDE. This commit puts the old code back in place which skips the task if we are in DesignTime mode. But so we can easily test it, we emit an message that our test can pick up to ensure we are doing the correct thing. Without the message we have no way of knowing if the task is skipped. --- .../Xamarin.Android.Bindings.targets | 2 ++ src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets | 2 ++ 2 files changed, 4 insertions(+) diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets index 44b4f527ece..4016c475b69 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Bindings.targets @@ -278,7 +278,9 @@ Copyright (C) 2012 Xamarin Inc. All rights reserved. CacheFile="$(IntermediateOutputPath)resourcepaths.cache" YieldDuringToolExecution="$(YieldDuringToolExecution)" DesignTimeBuild="$(DesignTimeBuild)" + Condition=" '$(DesignTimeBuild)' == '' Or '$(DesignTimeBuild)' == 'false' " /> + diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index e02a550664f..3d7f872824c 100755 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -418,7 +418,9 @@ Copyright (C) 2011-2012 Xamarin. All rights reserved. YieldDuringToolExecution="$(YieldDuringToolExecution)" DesignTimeBuild="$(DesignTimeBuild)" ContinueOnError="$(DesignTimeBuild)" + Condition=" '$(DesignTimeBuild)' == '' Or '$(DesignTimeBuild)' == 'false' " /> + From 6939bd5fc58fb2cda220aa39b64b62554c0d7d44 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Thu, 26 Oct 2017 16:28:45 +0100 Subject: [PATCH 2/2] Added updated test. --- .../Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs index 66ad319fe05..bd2905b787d 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/AndroidUpdateResourcesTest.cs @@ -87,7 +87,7 @@ public void DesignTimeBuild ([Values(false, true)] bool isRelease, [Values (fals b.Target = "Compile"; Assert.IsTrue (b.Build (proj, doNotCleanupOnUpdate: true, parameters: new string [] { "DesignTimeBuild=true" }, environmentVariables: envVar), "first build failed"); - Assert.AreEqual (!useManagedParser, b.LastBuildOutput.Contains ("Skipping download of "), + Assert.AreEqual (!useManagedParser, b.LastBuildOutput.Contains ("Skipping GetAdditionalResourcesFromAssemblies"), "failed to skip the downloading of files."); var items = new List (); string first = null;