From 07bc340b440a8c11c463bd3861cbe3531e55e705 Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Fri, 20 Jan 2023 16:54:13 -0600 Subject: [PATCH 1/2] Revert "[Xamarin.Android.Build.Tasks] fix cases of missing `@(Reference)` (#7642)" This reverts commit 22f2001. .NET MAUI is hitting a build failure such as: Unable to open file 'obj\Release\net8.0-android\android-x64\aot\x86_64\Microsoft.Maui.Controls.resources\temp.s': Permission denied In 22f2001, we began passing satellite assemblies to the AOT compiler, on accident? I am unsure how a test in xamarin-android didn't catch this, but it may be something that only happens via a `@(ProjectReference)` as occurred in .NET MAUI. For now, let's revert the change and revisit later. We should reopen https://github.com/dotnet/maui/issues/10154 after this is merged. --- .../targets/Microsoft.Android.Sdk.AssemblyResolution.targets | 2 +- src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets index c4a7a91b861..d0845544971 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.AssemblyResolution.targets @@ -44,7 +44,7 @@ _ResolveAssemblies MSBuild target. diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index 14418bb0e23..70a86d1ecab 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -2006,8 +2006,7 @@ because xbuild doesn't support framework reference assemblies. DependsOnTargets="_ResolveAssemblies" > - - <_AndroidResolvedSatellitePaths Condition=" '$(UsingAndroidNETSdk)' != 'true' " Include="@(ReferenceSatellitePaths)" /> + <_AndroidResolvedSatellitePaths Include="@(ReferenceSatellitePaths)" /> <_AndroidResolvedSatellitePaths Include="@(IntermediateSatelliteAssembliesWithTargetPath->'$(OutDir)%(Culture)\$(TargetName).resources.dll')" /> From f30c239c9f1ae9d3bbb3350a84f9d7044424406e Mon Sep 17 00:00:00 2001 From: Jonathan Peppers Date: Fri, 20 Jan 2023 16:58:28 -0600 Subject: [PATCH 2/2] Remove test (merge conflict) --- .../Xamarin.Android.Build.Tests/XASdkTests.cs | 61 ------------------- 1 file changed, 61 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs index 462dcc7228b..062e7fadbca 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.Android.Build.Tests/XASdkTests.cs @@ -1079,67 +1079,6 @@ public void DotNetIncremental ([Values (true, false)] bool isRelease, [Values (" } } - [Test] - public void ProjectDependencies ([Values(true, false)] bool projectReference) - { - // Setup dependencies App A -> Lib B -> Lib C - var path = Path.Combine ("temp", TestName); - - var libB = new XASdkProject (outputType: "Library") { - ProjectName = "LibraryB", - IsRelease = true, - }; - libB.Sources.Clear (); - libB.Sources.Add (new BuildItem.Source ("Foo.cs") { - TextContent = () => @"public class Foo { - public Foo () { - var bar = new Bar(); - } - }", - }); - - var libC = new XASdkProject (outputType: "Library") { - ProjectName = "LibraryC", - IsRelease = true, - }; - libC.Sources.Clear (); - libC.Sources.Add (new BuildItem.Source ("Bar.cs") { - TextContent = () => "public class Bar { }", - }); - - // Add a @(Reference) or @(ProjectReference) - if (projectReference) { - libB.AddReference (libC); - } else { - libB.OtherBuildItems.Add (new BuildItem.Reference ($@"..\{libC.ProjectName}\bin\Release\{libC.TargetFramework}\{libC.ProjectName}.dll")); - } - - // Build libraries - var libCBuilder = CreateDotNetBuilder (libC, Path.Combine (path, libC.ProjectName)); - Assert.IsTrue (libCBuilder.Build (), $"{libC.ProjectName} should succeed"); - var libBBuilder = CreateDotNetBuilder (libB, Path.Combine (path, libB.ProjectName)); - Assert.IsTrue (libBBuilder.Build (), $"{libB.ProjectName} should succeed"); - - var appA = new XASdkProject { - ProjectName = "AppA", - IsRelease = true, - Sources = { - new BuildItem.Source ("Bar.cs") { - TextContent = () => "public class Bar : Foo { }", - } - } - }; - appA.AddReference (libB); - var appBuilder = CreateDotNetBuilder (appA, Path.Combine (path, appA.ProjectName)); - Assert.IsTrue (appBuilder.Build (), $"{appA.ProjectName} should succeed"); - - var apkPath = Path.Combine (FullProjectDirectory, appA.OutputPath, $"{appA.PackageName}-Signed.apk"); - FileAssert.Exists (apkPath); - var helper = new ArchiveAssemblyHelper (apkPath); - helper.AssertContainsEntry ($"assemblies/{libB.ProjectName}.dll"); - helper.AssertContainsEntry ($"assemblies/{libC.ProjectName}.dll"); - } - [Test] public void DotNetDesignTimeBuild () {