aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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
-rw-r--r--src/test/WixToolsetTest.BuildTasks/WixToolsetTest.BuildTasks.v3.ncrunchproject3
-rw-r--r--src/test/WixToolsetTest.MSBuild/WixToolsetTest.MSBuild.v3.ncrunchproject3
-rw-r--r--src/wix/Program.cs34
6 files changed, 23 insertions, 73 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
diff --git a/src/test/WixToolsetTest.BuildTasks/WixToolsetTest.BuildTasks.v3.ncrunchproject b/src/test/WixToolsetTest.BuildTasks/WixToolsetTest.BuildTasks.v3.ncrunchproject
index cf22dfa9..f1d03cd7 100644
--- a/src/test/WixToolsetTest.BuildTasks/WixToolsetTest.BuildTasks.v3.ncrunchproject
+++ b/src/test/WixToolsetTest.BuildTasks/WixToolsetTest.BuildTasks.v3.ncrunchproject
@@ -1,5 +1,8 @@
1<ProjectConfiguration> 1<ProjectConfiguration>
2 <Settings> 2 <Settings>
3 <HiddenComponentWarnings /> 3 <HiddenComponentWarnings />
4 <IgnoredTests>
5 <AllTestsSelector />
6 </IgnoredTests>
4 </Settings> 7 </Settings>
5</ProjectConfiguration> \ No newline at end of file 8</ProjectConfiguration> \ No newline at end of file
diff --git a/src/test/WixToolsetTest.MSBuild/WixToolsetTest.MSBuild.v3.ncrunchproject b/src/test/WixToolsetTest.MSBuild/WixToolsetTest.MSBuild.v3.ncrunchproject
index cf22dfa9..f1d03cd7 100644
--- a/src/test/WixToolsetTest.MSBuild/WixToolsetTest.MSBuild.v3.ncrunchproject
+++ b/src/test/WixToolsetTest.MSBuild/WixToolsetTest.MSBuild.v3.ncrunchproject
@@ -1,5 +1,8 @@
1<ProjectConfiguration> 1<ProjectConfiguration>
2 <Settings> 2 <Settings>
3 <HiddenComponentWarnings /> 3 <HiddenComponentWarnings />
4 <IgnoredTests>
5 <AllTestsSelector />
6 </IgnoredTests>
4 </Settings> 7 </Settings>
5</ProjectConfiguration> \ No newline at end of file 8</ProjectConfiguration> \ No newline at end of file
diff --git a/src/wix/Program.cs b/src/wix/Program.cs
index dcf575f7..df0e22e7 100644
--- a/src/wix/Program.cs
+++ b/src/wix/Program.cs
@@ -8,7 +8,9 @@ namespace WixToolset.Tools
8 using System.Threading.Tasks; 8 using System.Threading.Tasks;
9 using WixToolset.Converters; 9 using WixToolset.Converters;
10 using WixToolset.Core; 10 using WixToolset.Core;
11 using WixToolset.Core.Burn;
11 using WixToolset.Core.ExtensionCache; 12 using WixToolset.Core.ExtensionCache;
13 using WixToolset.Core.WindowsInstaller;
12 using WixToolset.Data; 14 using WixToolset.Data;
13 using WixToolset.Extensibility; 15 using WixToolset.Extensibility;
14 using WixToolset.Extensibility.Data; 16 using WixToolset.Extensibility.Data;
@@ -40,6 +42,8 @@ namespace WixToolset.Tools
40 try 42 try
41 { 43 {
42 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider() 44 var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider()
45 .AddWindowsInstallerBackend()
46 .AddBundleBackend()
43 .AddExtensionCacheManager() 47 .AddExtensionCacheManager()
44 .AddConverter(); 48 .AddConverter();
45 49
@@ -81,38 +85,10 @@ namespace WixToolset.Tools
81 var messaging = serviceProvider.GetService<IMessaging>(); 85 var messaging = serviceProvider.GetService<IMessaging>();
82 messaging.SetListener(listener); 86 messaging.SetListener(listener);
83 87
84 var arguments = serviceProvider.GetService<ICommandLineArguments>();
85 arguments.Populate(args);
86
87 var commandLine = serviceProvider.GetService<ICommandLine>(); 88 var commandLine = serviceProvider.GetService<ICommandLine>();
88 commandLine.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, messaging, arguments.Extensions); 89 var command = commandLine.CreateCommand(args);
89 commandLine.Arguments = arguments;
90 var command = commandLine.ParseStandardCommandLine();
91 return command?.ExecuteAsync(cancellationToken) ?? Task.FromResult(1); 90 return command?.ExecuteAsync(cancellationToken) ?? Task.FromResult(1);
92 } 91 }
93 92
94 private static IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, IMessaging messaging, string[] extensions)
95 {
96 var extensionManager = serviceProvider.GetService<IExtensionManager>();
97
98 foreach (var type in new[] { typeof(WixToolset.Core.Burn.WixToolsetStandardBackend), typeof(WixToolset.Core.WindowsInstaller.WixToolsetStandardBackend) })
99 {
100 extensionManager.Add(type.Assembly);
101 }
102
103 foreach (var extension in extensions)
104 {
105 try
106 {
107 extensionManager.Load(extension);
108 }
109 catch (WixException e)
110 {
111 messaging.Write(e.Error);
112 }
113 }
114
115 return extensionManager;
116 }
117 } 93 }
118} 94}