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