From 252504da7b1f6b0e0b86a58946c8480f09f4ef52 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 16:43:08 +0000 Subject: [PATCH 1/2] Initial plan From 38cbe5375c518b201d4fad7ec15b9ceb34ccbcbe Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 22 May 2026 17:05:06 +0000 Subject: [PATCH 2/2] Enable #nullable enable in SolutionBuilder.cs Agent-Logs-Url: https://github.com/dotnet/android/sessions/cab59e12-2042-496b-a394-a730244a44f2 Co-authored-by: jonathanpeppers <840039+jonathanpeppers@users.noreply.github.com> --- .../Xamarin.ProjectTools/Common/SolutionBuilder.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/SolutionBuilder.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/SolutionBuilder.cs index 8c3eea39321..9201694a794 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/SolutionBuilder.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/SolutionBuilder.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; using System.Text; using System.IO; @@ -9,8 +10,8 @@ namespace Xamarin.ProjectTools public class SolutionBuilder : Builder { public IList Projects { get; } - public string SolutionPath { get; set; } - public string SolutionName { get; set; } + public string? SolutionPath { get; set; } + public string SolutionName { get; set; } = ""; public bool BuildSucceeded { get; set; } public SolutionBuilder (string solutionName) : base() @@ -21,6 +22,7 @@ public SolutionBuilder (string solutionName) : base() public void Save () { + ArgumentNullException.ThrowIfNull (SolutionPath); foreach (var p in Projects) { using (var pb = new ProjectBuilder (Path.Combine (SolutionPath, p.ProjectName))) { pb.Save (p); @@ -65,6 +67,7 @@ public void Save () public bool BuildProject(XamarinProject project, string target = "Build") { + ArgumentNullException.ThrowIfNull (SolutionPath); BuildSucceeded = BuildInternal(Path.Combine (SolutionPath, project.ProjectName, project.ProjectFilePath), target, restore: project.ShouldRestorePackageReferences); return BuildSucceeded; } @@ -93,7 +96,7 @@ public bool Clean(params string[] parameters) protected override void Dispose (bool disposing) { if (disposing) - if (BuildSucceeded) + if (BuildSucceeded && !string.IsNullOrEmpty (SolutionPath)) try { Directory.Delete (SolutionPath, recursive: true); } catch (Exception) {