diff options
Diffstat (limited to 'src/WixToolset.Core.TestPackage/WixRunner.cs')
-rw-r--r-- | src/WixToolset.Core.TestPackage/WixRunner.cs | 35 |
1 files changed, 9 insertions, 26 deletions
diff --git a/src/WixToolset.Core.TestPackage/WixRunner.cs b/src/WixToolset.Core.TestPackage/WixRunner.cs index 679956bd..940b55a8 100644 --- a/src/WixToolset.Core.TestPackage/WixRunner.cs +++ b/src/WixToolset.Core.TestPackage/WixRunner.cs | |||
@@ -6,6 +6,8 @@ namespace WixToolset.Core.TestPackage | |||
6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
7 | using System.Threading; | 7 | using System.Threading; |
8 | using System.Threading.Tasks; | 8 | using System.Threading.Tasks; |
9 | using WixToolset.Core.Burn; | ||
10 | using WixToolset.Core.WindowsInstaller; | ||
9 | using WixToolset.Data; | 11 | using WixToolset.Data; |
10 | using WixToolset.Extensibility.Data; | 12 | using WixToolset.Extensibility.Data; |
11 | using WixToolset.Extensibility.Services; | 13 | using WixToolset.Extensibility.Services; |
@@ -26,40 +28,21 @@ namespace WixToolset.Core.TestPackage | |||
26 | return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; | 28 | return new WixRunnerResult { ExitCode = exitCode.Result, Messages = messages.ToArray() }; |
27 | } | 29 | } |
28 | 30 | ||
29 | public static Task<int> Execute(string[] args, IWixToolsetServiceProvider serviceProvider, out List<Message> messages) | 31 | public static Task<int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List<Message> messages) |
30 | { | 32 | { |
33 | coreProvider.AddWindowsInstallerBackend() | ||
34 | .AddBundleBackend(); | ||
35 | |||
31 | var listener = new TestMessageListener(); | 36 | var listener = new TestMessageListener(); |
32 | 37 | ||
33 | messages = listener.Messages; | 38 | messages = listener.Messages; |
34 | 39 | ||
35 | var messaging = serviceProvider.GetService<IMessaging>(); | 40 | var messaging = coreProvider.GetService<IMessaging>(); |
36 | messaging.SetListener(listener); | 41 | messaging.SetListener(listener); |
37 | 42 | ||
38 | var arguments = serviceProvider.GetService<ICommandLineArguments>(); | 43 | var commandLine = coreProvider.GetService<ICommandLine>(); |
39 | arguments.Populate(args); | 44 | var command = commandLine.CreateCommand(args); |
40 | |||
41 | var commandLine = serviceProvider.GetService<ICommandLine>(); | ||
42 | commandLine.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions); | ||
43 | commandLine.Arguments = arguments; | ||
44 | var command = commandLine.ParseStandardCommandLine(); | ||
45 | return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); | 45 | return command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1); |
46 | } | 46 | } |
47 | |||
48 | private static IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, string[] extensions) | ||
49 | { | ||
50 | var extensionManager = serviceProvider.GetService<IExtensionManager>(); | ||
51 | |||
52 | foreach (var type in new[] { typeof(WixToolset.Core.Burn.WixToolsetStandardBackend), typeof(WixToolset.Core.WindowsInstaller.WixToolsetStandardBackend) }) | ||
53 | { | ||
54 | extensionManager.Add(type.Assembly); | ||
55 | } | ||
56 | |||
57 | foreach (var extension in extensions) | ||
58 | { | ||
59 | extensionManager.Load(extension); | ||
60 | } | ||
61 | |||
62 | return extensionManager; | ||
63 | } | ||
64 | } | 47 | } |
65 | } | 48 | } |