From 98fa23e91bca6d6a67457df056d0cb6cecf12901 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 13 Jun 2020 09:42:44 -0700 Subject: Use simplified command-line parsing and update loading standard backends --- src/WixToolset.BuildTasks/HeatTask_InProc.cs | 5 +-- src/WixToolset.BuildTasks/ToolsetTask_InProc.cs | 8 ++--- src/WixToolset.BuildTasks/WixBuild_InProc.cs | 43 ++++--------------------- 3 files changed, 12 insertions(+), 44 deletions(-) (limited to 'src/WixToolset.BuildTasks') 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 using System; using System.Threading; using System.Threading.Tasks; - using WixToolset.Extensibility; - using WixToolset.Extensibility.Data; using WixToolset.Extensibility.Services; - using WixToolset.Harvesters; public partial class HeatTask { protected sealed override string TaskShortName => "HEAT"; - protected sealed override Task ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken) => throw new NotImplementedException(); + protected sealed override Task ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken) => throw new NotImplementedException(); } } #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 try { - var serviceProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); + var coreProvider = WixToolsetServiceProviderFactory.CreateServiceProvider(); - var messaging = serviceProvider.GetService(); + var messaging = coreProvider.GetService(); messaging.SetListener(listener); - exitCode = this.ExecuteCoreAsync(serviceProvider, commandLineString, CancellationToken.None).GetAwaiter().GetResult(); + exitCode = this.ExecuteCoreAsync(coreProvider, commandLineString, CancellationToken.None).GetAwaiter().GetResult(); } catch (WixException e) { @@ -71,7 +71,7 @@ namespace WixToolset.BuildTasks } } - protected abstract Task ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken); + protected abstract Task ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken); protected abstract string TaskShortName { get; } } 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 { using System.Threading; using System.Threading.Tasks; - using WixToolset.Data; - using WixToolset.Extensibility; - using WixToolset.Extensibility.Data; + using WixToolset.Core.Burn; + using WixToolset.Core.WindowsInstaller; using WixToolset.Extensibility.Services; public partial class WixBuild { protected override string TaskShortName => "WIX"; - protected override Task ExecuteCoreAsync(IWixToolsetCoreServiceProvider serviceProvider, string commandLineString, CancellationToken cancellationToken) + protected override Task ExecuteCoreAsync(IWixToolsetCoreServiceProvider coreProvider, string commandLineString, CancellationToken cancellationToken) { - var messaging = serviceProvider.GetService(); + coreProvider.AddWindowsInstallerBackend() + .AddBundleBackend(); - var arguments = serviceProvider.GetService(); - arguments.Populate(commandLineString); - - var commandLine = serviceProvider.GetService(); - commandLine.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, messaging, arguments.Extensions); - commandLine.Arguments = arguments; - var command = commandLine.ParseStandardCommandLine(); + var commandLine = coreProvider.GetService(); + var command = commandLine.CreateCommand(commandLineString); return command?.ExecuteAsync(cancellationToken) ?? Task.FromResult(1); } - - private IExtensionManager CreateExtensionManagerWithStandardBackends(IWixToolsetServiceProvider serviceProvider, IMessaging messaging, string[] extensions) - { - var extensionManager = serviceProvider.GetService(); - - foreach (var type in new[] { typeof(WixToolset.Core.Burn.WixToolsetStandardBackend), typeof(WixToolset.Core.WindowsInstaller.WixToolsetStandardBackend) }) - { - extensionManager.Add(type.Assembly); - } - - foreach (var extension in extensions) - { - try - { - extensionManager.Load(extension); - } - catch (WixException e) - { - messaging.Write(e.Error); - } - } - - return extensionManager; - } } } #endif -- cgit v1.2.3-55-g6feb