aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.BuildTasks
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.BuildTasks')
-rw-r--r--src/WixToolset.BuildTasks/HeatTask_InProc.cs5
-rw-r--r--src/WixToolset.BuildTasks/ToolsetTask_InProc.cs8
-rw-r--r--src/WixToolset.BuildTasks/WixBuild_InProc.cs43
3 files changed, 12 insertions, 44 deletions
diff --git a/src/WixToolset.BuildTasks/HeatTask_InProc.cs b/src/WixToolset.BuildTasks/HeatTask_InProc.cs
index dd763608..a21a8409 100644
--- a/src/WixToolset.BuildTasks/HeatTask_InProc.cs
+++ b/src/WixToolset.BuildTasks/HeatTask_InProc.cs
@@ -6,16 +6,13 @@ namespace WixToolset.BuildTasks
6 using System; 6 using System;
7 using System.Threading; 7 using System.Threading;
8 using System.Threading.Tasks; 8 using System.Threading.Tasks;
9 using WixToolset.Extensibility;
10 using WixToolset.Extensibility.Data;
11 using WixToolset.Extensibility.Services; 9 using WixToolset.Extensibility.Services;
12 using WixToolset.Harvesters;
13 10
14 public partial class HeatTask 11 public partial class HeatTask
15 { 12 {
16 protected sealed override string TaskShortName => "HEAT"; 13 protected sealed override string TaskShortName => "HEAT";
17 14
18 protected sealed override Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken) => throw new NotImplementedException(); 15 protected sealed override Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken) => throw new NotImplementedException();
19 } 16 }
20} 17}
21#endif 18#endif
diff --git a/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs b/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs
index 6c83ee11..fcf4aea9 100644
--- a/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs
+++ b/src/WixToolset.BuildTasks/ToolsetTask_InProc.cs
@@ -34,12 +34,12 @@ namespace WixToolset.BuildTasks
34 34
35 try 35 try
36 { 36 {
37 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); 37 var coreProvider = WixToolsetServiceProviderFactory.CreateServiceProvider();
38 38
39 var messaging = serviceProvider.GetService<IMessaging>(); 39 var messaging = coreProvider.GetService<IMessaging>();
40 messaging.SetListener(listener); 40 messaging.SetListener(listener);
41 41
42 exitCode = this.ExecuteCoreAsync(serviceProvider, commandLineString, CancellationToken.None).GetAwaiter().GetResult(); 42 exitCode = this.ExecuteCoreAsync(coreProvider, commandLineString, CancellationToken.None).GetAwaiter().GetResult();
43 } 43 }
44 catch (WixException e) 44 catch (WixException e)
45 { 45 {
@@ -71,7 +71,7 @@ namespace WixToolset.BuildTasks
71 } 71 }
72 } 72 }
73 73
74 protected abstract Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken); 74 protected abstract Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken);
75 75
76 protected abstract string TaskShortName { get; } 76 protected abstract string TaskShortName { get; }
77 } 77 }
diff --git a/src/WixToolset.BuildTasks/WixBuild_InProc.cs b/src/WixToolset.BuildTasks/WixBuild_InProc.cs
index 59a42431..a45d2369 100644
--- a/src/WixToolset.BuildTasks/WixBuild_InProc.cs
+++ b/src/WixToolset.BuildTasks/WixBuild_InProc.cs
@@ -5,52 +5,23 @@ namespace WixToolset.BuildTasks
5{ 5{
6 using System.Threading; 6 using System.Threading;
7 using System.Threading.Tasks; 7 using System.Threading.Tasks;
8 using WixToolset.Data; 8 using WixToolset.Core.Burn;
9 using WixToolset.Extensibility; 9 using WixToolset.Core.WindowsInstaller;
10 using WixToolset.Extensibility.Data;
11 using WixToolset.Extensibility.Services; 10 using WixToolset.Extensibility.Services;
12 11
13 public partial class WixBuild 12 public partial class WixBuild
14 { 13 {
15 protected override string TaskShortName => "WIX"; 14 protected override string TaskShortName => "WIX";
16 15
17 protected override Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken) 16 protected override Task<int> ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken)
18 { 17 {
19 var messaging = serviceProvider.GetService<IMessaging>(); 18 coreProvider.AddWindowsInstallerBackend()
19 .AddBundleBackend();
20 20
21 var arguments = serviceProvider.GetService<ICommandLineArguments>(); 21 var commandLine = coreProvider.GetService<ICommandLine>();
22 arguments.Populate(commandLineString); 22 var command = commandLine.CreateCommand(commandLineString);
23
24 var commandLine = serviceProvider.GetService<ICommandLine>();
25 commandLine.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, messaging, arguments.Extensions);
26 commandLine.Arguments = arguments;
27 var command = commandLine.ParseStandardCommandLine();
28 return command?.ExecuteAsync(cancellationToken) ?? Task.FromResult(1); 23 return command?.ExecuteAsync(cancellationToken) ?? Task.FromResult(1);
29 } 24 }
30
31 private IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, IMessaging messaging, string[] extensions)
32 {
33 var extensionManager = serviceProvider.GetService<IExtensionManager>();
34
35 foreach (var type in new[] { typeof(WixToolset.Core.Burn.WixToolsetStandardBackend), typeof(WixToolset.Core.WindowsInstaller.WixToolsetStandardBackend) })
36 {
37 extensionManager.Add(type.Assembly);
38 }
39
40 foreach (var extension in extensions)
41 {
42 try
43 {
44 extensionManager.Load(extension);
45 }
46 catch (WixException e)
47 {
48 messaging.Write(e.Error);
49 }
50 }
51
52 return extensionManager;
53 }
54 } 25 }
55} 26}
56#endif 27#endif