diff options
Diffstat (limited to 'src/WixToolset.Core.TestPackage')
| -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 | } |
