From 688cb205f53f26932302eff9f30d93dcda304e98 Mon Sep 17 00:00:00 2001 From: Mattias Karlsson Date: Mon, 31 Oct 2022 23:43:06 +0100 Subject: [PATCH] (GH-4038) Adds MSBuildSettings to DotNetRunSettings * fixes #4038 --- src/Cake.Common/Tools/DotNet/Run/DotNetRunSettings.cs | 6 ++++++ src/Cake.Common/Tools/DotNet/Run/DotNetRunner.cs | 10 ++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/Cake.Common/Tools/DotNet/Run/DotNetRunSettings.cs b/src/Cake.Common/Tools/DotNet/Run/DotNetRunSettings.cs index 63bec9b122..a4d4101355 100644 --- a/src/Cake.Common/Tools/DotNet/Run/DotNetRunSettings.cs +++ b/src/Cake.Common/Tools/DotNet/Run/DotNetRunSettings.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.Collections.Generic; +using Cake.Common.Tools.DotNet.MSBuild; namespace Cake.Common.Tools.DotNet.Run { @@ -45,5 +46,10 @@ public class DotNetRunSettings : DotNetSettings /// Gets or sets the target runtime. /// public string Runtime { get; set; } + + /// + /// Gets or sets additional arguments to be passed to MSBuild. + /// + public DotNetMSBuildSettings MSBuildSettings { get; set; } } } \ No newline at end of file diff --git a/src/Cake.Common/Tools/DotNet/Run/DotNetRunner.cs b/src/Cake.Common/Tools/DotNet/Run/DotNetRunner.cs index 1e07408322..c9239a0162 100644 --- a/src/Cake.Common/Tools/DotNet/Run/DotNetRunner.cs +++ b/src/Cake.Common/Tools/DotNet/Run/DotNetRunner.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System; +using Cake.Common.Tools.DotNet.MSBuild; using Cake.Core; using Cake.Core.IO; using Cake.Core.Tooling; @@ -14,6 +15,8 @@ namespace Cake.Common.Tools.DotNet.Run /// public sealed class DotNetRunner : DotNetTool { + private readonly ICakeEnvironment _environment; + /// /// Initializes a new instance of the class. /// @@ -27,6 +30,7 @@ public DotNetRunner( IProcessRunner processRunner, IToolLocator tools) : base(fileSystem, environment, processRunner, tools) { + _environment = environment; } /// @@ -108,6 +112,12 @@ private ProcessArgumentBuilder GetArguments(string project, ProcessArgumentBuild builder.Append(settings.RollForward.Value.ToString("F")); } + // MSBuild Settings + if (settings.MSBuildSettings != null) + { + builder.AppendMSBuildSettings(settings.MSBuildSettings, _environment); + } + // Arguments if (!arguments.IsNullOrEmpty()) {