From fc92b28f87599ac25d35399dc2df2f356a285960 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Thu, 12 Jul 2018 22:27:09 -0700 Subject: Refactor command line parsing to enable extensions there in light.exe Fixes wixtoolset/issues#5845 --- src/WixToolset.BuildTasks/DoIt.cs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/WixToolset.BuildTasks/DoIt.cs') diff --git a/src/WixToolset.BuildTasks/DoIt.cs b/src/WixToolset.BuildTasks/DoIt.cs index aa01f6ec..977a2326 100644 --- a/src/WixToolset.BuildTasks/DoIt.cs +++ b/src/WixToolset.BuildTasks/DoIt.cs @@ -171,21 +171,23 @@ namespace WixToolset.BuildTasks var serviceProvider = new WixToolsetServiceProvider(); - var context = serviceProvider.GetService(); - var messaging = serviceProvider.GetService(); messaging.SetListener(this.Listener); + var arguments = serviceProvider.GetService(); + arguments.Populate(commandLineString); + + var context = serviceProvider.GetService(); context.Messaging = messaging; - context.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider); - context.Arguments = commandLineString; + context.ExtensionManager = this.CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions); + context.Arguments = arguments; var commandLine = serviceProvider.GetService(); var command = commandLine.ParseStandardCommandLine(context); command?.Execute(); } - private IExtensionManager CreateExtensionManagerWithStandardBackends(IServiceProvider serviceProvider) + private IExtensionManager CreateExtensionManagerWithStandardBackends(IServiceProvider serviceProvider, string[] extensions) { var extensionManager = serviceProvider.GetService(); @@ -194,6 +196,11 @@ namespace WixToolset.BuildTasks extensionManager.Add(type.Assembly); } + foreach (var extension in extensions) + { + extensionManager.Load(extension); + } + return extensionManager; } -- cgit v1.2.3-55-g6feb