diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/WixToolset.BuildTasks/HeatTask.cs | 5 | ||||
| -rw-r--r-- | src/WixToolset.BuildTasks/HeatTask_InProc.cs | 16 | ||||
| -rw-r--r-- | src/WixToolset.BuildTasks/ToolsetTask_InProc.cs | 14 | ||||
| -rw-r--r-- | src/WixToolset.BuildTasks/WixBuild_InProc.cs | 7 | ||||
| -rw-r--r-- | src/heat/Program.cs | 10 | ||||
| -rw-r--r-- | src/heat/heat.csproj | 2 | ||||
| -rw-r--r-- | src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs | 4 |
7 files changed, 32 insertions, 26 deletions
diff --git a/src/WixToolset.BuildTasks/HeatTask.cs b/src/WixToolset.BuildTasks/HeatTask.cs index 99cbae77..18c08342 100644 --- a/src/WixToolset.BuildTasks/HeatTask.cs +++ b/src/WixToolset.BuildTasks/HeatTask.cs | |||
| @@ -17,6 +17,11 @@ namespace WixToolset.BuildTasks | |||
| 17 | private bool suppressUniqueIds; | 17 | private bool suppressUniqueIds; |
| 18 | private string[] transforms; | 18 | private string[] transforms; |
| 19 | 19 | ||
| 20 | public HeatTask() | ||
| 21 | { | ||
| 22 | this.RunAsSeparateProcess = true; | ||
| 23 | } | ||
| 24 | |||
| 20 | public bool AutogenerateGuids | 25 | public bool AutogenerateGuids |
| 21 | { | 26 | { |
| 22 | get { return this.autogenerageGuids; } | 27 | get { return this.autogenerageGuids; } |
diff --git a/src/WixToolset.BuildTasks/HeatTask_InProc.cs b/src/WixToolset.BuildTasks/HeatTask_InProc.cs index eb6feafc..dd763608 100644 --- a/src/WixToolset.BuildTasks/HeatTask_InProc.cs +++ b/src/WixToolset.BuildTasks/HeatTask_InProc.cs | |||
| @@ -3,6 +3,9 @@ | |||
| 3 | #if !NETCOREAPP | 3 | #if !NETCOREAPP |
| 4 | namespace WixToolset.BuildTasks | 4 | namespace WixToolset.BuildTasks |
| 5 | { | 5 | { |
| 6 | using System; | ||
| 7 | using System.Threading; | ||
| 8 | using System.Threading.Tasks; | ||
| 6 | using WixToolset.Extensibility; | 9 | using WixToolset.Extensibility; |
| 7 | using WixToolset.Extensibility.Data; | 10 | using WixToolset.Extensibility.Data; |
| 8 | using WixToolset.Extensibility.Services; | 11 | using WixToolset.Extensibility.Services; |
| @@ -12,18 +15,7 @@ namespace WixToolset.BuildTasks | |||
| 12 | { | 15 | { |
| 13 | protected sealed override string TaskShortName => "HEAT"; | 16 | protected sealed override string TaskShortName => "HEAT"; |
| 14 | 17 | ||
| 15 | protected sealed override int ExecuteCore(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string commandLineString) | 18 | protected sealed override Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken) => throw new NotImplementedException(); |
| 16 | { | ||
| 17 | var messaging = serviceProvider.GetService<IMessaging>(); | ||
| 18 | messaging.SetListener(listener); | ||
| 19 | |||
| 20 | var arguments = serviceProvider.GetService<ICommandLineArguments>(); | ||
| 21 | arguments.Populate(commandLineString); | ||
| 22 | |||
| 23 | var commandLine = HeatCommandLineFactory.CreateCommandLine(serviceProvider, true); | ||
| 24 | var command = commandLine.ParseStandardCommandLine(arguments); | ||
| 25 | return command?.Execute() ?? -1; | ||
| 26 | } | ||
| 27 | } | 19 | } |
| 28 | } | 20 | } |
| 29 | #endif | 21 | #endif |
diff --git a/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs b/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs index a3290e60..6c83ee11 100644 --- a/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs +++ b/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs | |||
| @@ -5,6 +5,8 @@ namespace WixToolset.BuildTasks | |||
| 5 | { | 5 | { |
| 6 | using System; | 6 | using System; |
| 7 | using System.Runtime.InteropServices; | 7 | using System.Runtime.InteropServices; |
| 8 | using System.Threading; | ||
| 9 | using System.Threading.Tasks; | ||
| 8 | using Microsoft.Build.Framework; | 10 | using Microsoft.Build.Framework; |
| 9 | using WixToolset.Core; | 11 | using WixToolset.Core; |
| 10 | using WixToolset.Data; | 12 | using WixToolset.Data; |
| @@ -27,13 +29,17 @@ namespace WixToolset.BuildTasks | |||
| 27 | { | 29 | { |
| 28 | this.Log.LogMessage(MessageImportance.Normal, $"({this.ToolName}){commandLineString}"); | 30 | this.Log.LogMessage(MessageImportance.Normal, $"({this.ToolName}){commandLineString}"); |
| 29 | 31 | ||
| 30 | var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); | ||
| 31 | var listener = new MsbuildMessageListener(this.Log, this.TaskShortName, this.BuildEngine.ProjectFileOfTaskNode); | 32 | var listener = new MsbuildMessageListener(this.Log, this.TaskShortName, this.BuildEngine.ProjectFileOfTaskNode); |
| 32 | int exitCode = -1; | 33 | var exitCode = -1; |
| 33 | 34 | ||
| 34 | try | 35 | try |
| 35 | { | 36 | { |
| 36 | exitCode = this.ExecuteCore(serviceProvider, listener, commandLineString); | 37 | var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); |
| 38 | |||
| 39 | var messaging = serviceProvider.GetService<IMessaging>(); | ||
| 40 | messaging.SetListener(listener); | ||
| 41 | |||
| 42 | exitCode = this.ExecuteCoreAsync(serviceProvider, commandLineString, CancellationToken.None).GetAwaiter().GetResult(); | ||
| 37 | } | 43 | } |
| 38 | catch (WixException e) | 44 | catch (WixException e) |
| 39 | { | 45 | { |
| @@ -65,7 +71,7 @@ namespace WixToolset.BuildTasks | |||
| 65 | } | 71 | } |
| 66 | } | 72 | } |
| 67 | 73 | ||
| 68 | protected abstract int ExecuteCore(IWixToolsetServiceProvider serviceProvider, IMessageListener messageListener, string commandLineString); | 74 | protected abstract Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken); |
| 69 | 75 | ||
| 70 | protected abstract string TaskShortName { get; } | 76 | protected abstract string TaskShortName { get; } |
| 71 | } | 77 | } |
diff --git a/src/WixToolset.BuildTasks/WixBuild_InProc.cs b/src/WixToolset.BuildTasks/WixBuild_InProc.cs index 49148c8a..59a42431 100644 --- a/src/WixToolset.BuildTasks/WixBuild_InProc.cs +++ b/src/WixToolset.BuildTasks/WixBuild_InProc.cs | |||
| @@ -3,6 +3,8 @@ | |||
| 3 | #if !NETCOREAPP | 3 | #if !NETCOREAPP |
| 4 | namespace WixToolset.BuildTasks | 4 | namespace WixToolset.BuildTasks |
| 5 | { | 5 | { |
| 6 | using System.Threading; | ||
| 7 | using System.Threading.Tasks; | ||
| 6 | using WixToolset.Data; | 8 | using WixToolset.Data; |
| 7 | using WixToolset.Extensibility; | 9 | using WixToolset.Extensibility; |
| 8 | using WixToolset.Extensibility.Data; | 10 | using WixToolset.Extensibility.Data; |
| @@ -12,10 +14,9 @@ namespace WixToolset.BuildTasks | |||
| 12 | { | 14 | { |
| 13 | protected override string TaskShortName => "WIX"; | 15 | protected override string TaskShortName => "WIX"; |
| 14 | 16 | ||
| 15 | protected override int ExecuteCore(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string commandLineString) | 17 | protected override Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken) |
| 16 | { | 18 | { |
| 17 | var messaging = serviceProvider.GetService<IMessaging>(); | 19 | var messaging = serviceProvider.GetService<IMessaging>(); |
| 18 | messaging.SetListener(listener); | ||
| 19 | 20 | ||
| 20 | var arguments = serviceProvider.GetService<ICommandLineArguments>(); | 21 | var arguments = serviceProvider.GetService<ICommandLineArguments>(); |
| 21 | arguments.Populate(commandLineString); | 22 | arguments.Populate(commandLineString); |
| @@ -24,7 +25,7 @@ namespace WixToolset.BuildTasks | |||
| 24 | commandLine.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, messaging, arguments.Extensions); | 25 | commandLine.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, messaging, arguments.Extensions); |
| 25 | commandLine.Arguments = arguments; | 26 | commandLine.Arguments = arguments; |
| 26 | var command = commandLine.ParseStandardCommandLine(); | 27 | var command = commandLine.ParseStandardCommandLine(); |
| 27 | return command?.Execute() ?? -1; | 28 | return command?.ExecuteAsync(cancellationToken) ?? Task.FromResult(1); |
| 28 | } | 29 | } |
| 29 | 30 | ||
| 30 | private IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, IMessaging messaging, string[] extensions) | 31 | private IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, IMessaging messaging, string[] extensions) |
diff --git a/src/heat/Program.cs b/src/heat/Program.cs index 38d6d401..30a82511 100644 --- a/src/heat/Program.cs +++ b/src/heat/Program.cs | |||
| @@ -4,6 +4,8 @@ namespace WixToolset.Tools.Heat | |||
| 4 | { | 4 | { |
| 5 | using System; | 5 | using System; |
| 6 | using System.Runtime.InteropServices; | 6 | using System.Runtime.InteropServices; |
| 7 | using System.Threading; | ||
| 8 | using System.Threading.Tasks; | ||
| 7 | using WixToolset.Core; | 9 | using WixToolset.Core; |
| 8 | using WixToolset.Data; | 10 | using WixToolset.Data; |
| 9 | using WixToolset.Extensibility; | 11 | using WixToolset.Extensibility; |
| @@ -23,7 +25,7 @@ namespace WixToolset.Tools.Heat | |||
| 23 | /// <param name="args">Commandline arguments for the application.</param> | 25 | /// <param name="args">Commandline arguments for the application.</param> |
| 24 | /// <returns>Returns the application error code.</returns> | 26 | /// <returns>Returns the application error code.</returns> |
| 25 | [MTAThread] | 27 | [MTAThread] |
| 26 | public static int Main(string[] args) | 28 | public static async Task<int> Main(string[] args) |
| 27 | { | 29 | { |
| 28 | var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); | 30 | var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); |
| 29 | var listener = new ConsoleMessageListener("HEAT", "heat.exe"); | 31 | var listener = new ConsoleMessageListener("HEAT", "heat.exe"); |
| @@ -31,7 +33,7 @@ namespace WixToolset.Tools.Heat | |||
| 31 | try | 33 | try |
| 32 | { | 34 | { |
| 33 | var program = new Program(); | 35 | var program = new Program(); |
| 34 | return program.Run(serviceProvider, listener, args); | 36 | return await program.Run(serviceProvider, listener, args); |
| 35 | } | 37 | } |
| 36 | catch (WixException e) | 38 | catch (WixException e) |
| 37 | { | 39 | { |
| @@ -58,7 +60,7 @@ namespace WixToolset.Tools.Heat | |||
| 58 | /// <param name="serviceProvider">Service provider to use throughout this execution.</param> | 60 | /// <param name="serviceProvider">Service provider to use throughout this execution.</param> |
| 59 | /// <param name="args">The commandline arguments.</param> | 61 | /// <param name="args">The commandline arguments.</param> |
| 60 | /// <returns>Returns the application error code.</returns> | 62 | /// <returns>Returns the application error code.</returns> |
| 61 | public int Run(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string[] args) | 63 | public Task<int> Run(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string[] args) |
| 62 | { | 64 | { |
| 63 | var messaging = serviceProvider.GetService<IMessaging>(); | 65 | var messaging = serviceProvider.GetService<IMessaging>(); |
| 64 | messaging.SetListener(listener); | 66 | messaging.SetListener(listener); |
| @@ -68,7 +70,7 @@ namespace WixToolset.Tools.Heat | |||
| 68 | 70 | ||
| 69 | var commandLine = HeatCommandLineFactory.CreateCommandLine(serviceProvider); | 71 | var commandLine = HeatCommandLineFactory.CreateCommandLine(serviceProvider); |
| 70 | var command = commandLine.ParseStandardCommandLine(arguments); | 72 | var command = commandLine.ParseStandardCommandLine(arguments); |
| 71 | return command?.Execute() ?? 1; | 73 | return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); |
| 72 | } | 74 | } |
| 73 | } | 75 | } |
| 74 | } | 76 | } |
diff --git a/src/heat/heat.csproj b/src/heat/heat.csproj index 9d6eeaa7..bdcb4e3b 100644 --- a/src/heat/heat.csproj +++ b/src/heat/heat.csproj | |||
| @@ -21,7 +21,7 @@ | |||
| 21 | </PropertyGroup> | 21 | </PropertyGroup> |
| 22 | 22 | ||
| 23 | <ItemGroup> | 23 | <ItemGroup> |
| 24 | <Compile Include="..\WixToolset.Tools.Core\ConsoleMessageListener.cs" Link="ConsoleMessageListener.cs" /> | 24 | <Compile Include="..\wix\ConsoleMessageListener.cs" Link="ConsoleMessageListener.cs" /> |
| 25 | </ItemGroup> | 25 | </ItemGroup> |
| 26 | 26 | ||
| 27 | <ItemGroup> | 27 | <ItemGroup> |
diff --git a/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs b/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs index f5f03be0..3b4457be 100644 --- a/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs +++ b/src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs | |||
| @@ -33,7 +33,7 @@ namespace WixToolsetTest.MSBuild | |||
| 33 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); | 33 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); |
| 34 | result.AssertSuccess(); | 34 | result.AssertSuccess(); |
| 35 | 35 | ||
| 36 | var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem); | 36 | var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem, true); |
| 37 | Assert.Single(heatCommandLines); | 37 | Assert.Single(heatCommandLines); |
| 38 | 38 | ||
| 39 | var warnings = result.Output.Where(line => line.Contains(": warning")); | 39 | var warnings = result.Output.Where(line => line.Contains(": warning")); |
| @@ -89,7 +89,7 @@ namespace WixToolsetTest.MSBuild | |||
| 89 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); | 89 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); |
| 90 | result.AssertSuccess(); | 90 | result.AssertSuccess(); |
| 91 | 91 | ||
| 92 | var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem); | 92 | var heatCommandLines = MsbuildUtilities.GetToolCommandLines(result, "heat", "file", buildSystem, true); |
| 93 | Assert.Equal(2, heatCommandLines.Count()); | 93 | Assert.Equal(2, heatCommandLines.Count()); |
| 94 | 94 | ||
| 95 | var warnings = result.Output.Where(line => line.Contains(": warning")); | 95 | var warnings = result.Output.Where(line => line.Contains(": warning")); |
