aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.BuildTasks/ToolsetTask_InProc.cs')
-rw-r--r--src/WixToolset.BuildTasks/ToolsetTask_InProc.cs14
1 files changed, 10 insertions, 4 deletions
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 }