diff --git a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ProjectCapabilities.targets b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ProjectCapabilities.targets index a8b04059e23..fef1c290dfb 100644 --- a/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ProjectCapabilities.targets +++ b/src/Xamarin.Android.Build.Tasks/Microsoft.Android.Sdk/targets/Microsoft.Android.Sdk.ProjectCapabilities.targets @@ -17,6 +17,7 @@ Docs about @(ProjectCapability): + diff --git a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetCLI.cs b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetCLI.cs index 32135f406c8..2c003c3a06b 100644 --- a/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetCLI.cs +++ b/src/Xamarin.Android.Build.Tasks/Tests/Xamarin.ProjectTools/Common/DotNetCLI.cs @@ -132,20 +132,20 @@ public bool Publish (string target = null, string runtimeIdentifier = null, stri return Execute (arguments.ToArray ()); } - public bool Run (bool waitForExit = false, string [] parameters = null) + public bool Run (bool waitForExit = false, bool noBuild = true, string [] parameters = null) { string binlog = Path.Combine (Path.GetDirectoryName (projectOrSolution), "run.binlog"); var arguments = new List { "run", "--project", $"\"{projectOrSolution}\"", - "--no-build", - $"/bl:\"{binlog}\"", - $"/p:WaitForExit={waitForExit.ToString (CultureInfo.InvariantCulture)}" }; + if (noBuild) { + arguments.Add ("--no-build"); + } + arguments.Add ($"/bl:\"{binlog}\""); + arguments.Add ($"/p:WaitForExit={waitForExit.ToString (CultureInfo.InvariantCulture)}"); if (parameters != null) { - foreach (var parameter in parameters) { - arguments.Add ($"/p:{parameter}"); - } + arguments.AddRange (parameters); } return Execute (arguments.ToArray ()); } @@ -154,7 +154,7 @@ public bool Run (bool waitForExit = false, string [] parameters = null) /// Starts `dotnet run` and returns a running Process that can be monitored and killed. /// /// Whether to use Microsoft.Android.Run tool which waits for app exit and streams logcat. - /// Optional MSBuild properties to pass (e.g., "Device=emulator-5554"). + /// Additional arguments to pass to `dotnet run`. /// A running Process instance. Caller is responsible for disposing. public Process StartRun (bool waitForExit = true, string [] parameters = null) { @@ -167,9 +167,7 @@ public Process StartRun (bool waitForExit = true, string [] parameters = null) $"/p:WaitForExit={waitForExit.ToString (CultureInfo.InvariantCulture)}" }; if (parameters != null) { - foreach (var parameter in parameters) { - arguments.Add ($"/p:{parameter}"); - } + arguments.AddRange (parameters); } return ExecuteProcess (arguments.ToArray ()); diff --git a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets index ee75d41fb97..c141ffe6a35 100644 --- a/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets +++ b/src/Xamarin.Android.Build.Tasks/Xamarin.Android.Common.targets @@ -1778,6 +1778,8 @@ because xbuild doesn't support framework reference assemblies. <_GeneratedAndroidEnvironment Include="mono.enable_assembly_preload=0" Condition=" '$(AndroidEnablePreloadAssemblies)' != 'True' " /> <_GeneratedAndroidEnvironment Include="DOTNET_MODIFIABLE_ASSEMBLIES=Debug" Condition=" '$(AndroidIncludeDebugSymbols)' == 'true' and '$(AndroidUseInterpreter)' == 'true' " /> <_GeneratedAndroidEnvironment Include="DOTNET_DiagnosticPorts=$(DiagnosticConfiguration)" Condition=" '$(DiagnosticConfiguration)' != '' " /> + + <_GeneratedAndroidEnvironment Include="@(RuntimeEnvironmentVariable->'%(Identity)=%(Value)')" />