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)')" />