/// <summary> /// Emulates calling wix.exe with standard backends. /// </summary> /// <param name="args"></param> /// <param name="coreProvider"></param> /// <param name="messages"></param> /// <param name="warningsAsErrors"></param> /// <returns></returns> public static Task <int> Execute(string[] args, IWixToolsetCoreServiceProvider coreProvider, out List <Message> messages, bool warningsAsErrors = true) { coreProvider.AddWindowsInstallerBackend() .AddBundleBackend(); var listener = new TestMessageListener(); messages = listener.Messages; var messaging = coreProvider.GetService <IMessaging>(); messaging.SetListener(listener); var arguments = new List <string>(args); if (warningsAsErrors) { arguments.Add("-wx"); } var commandLine = coreProvider.GetService <ICommandLine>(); var command = commandLine.CreateCommand(arguments.ToArray()); return(command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1)); }
public static int Execute(string[] args, IServiceProvider serviceProvider, out List <Message> messages) { var listener = new TestMessageListener(); messages = listener.Messages; var messaging = serviceProvider.GetService <IMessaging>(); messaging.SetListener(listener); var arguments = serviceProvider.GetService <ICommandLineArguments>(); arguments.Populate(args); var commandLine = serviceProvider.GetService <ICommandLine>(); commandLine.ExtensionManager = CreateExtensionManagerWithStandardBackends(serviceProvider, arguments.Extensions); commandLine.Arguments = arguments; var command = commandLine.ParseStandardCommandLine(); return(command?.Execute() ?? 1); }