/// <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.AddBundleBackend(); var listener = new TestMessageListener(); messages = listener.Messages; var messaging = coreProvider.GetService <IMessaging>(); messaging.SetListener(listener); if (warningsAsErrors) { messaging.WarningsAsError = true; } var arguments = coreProvider.GetService <ICommandLineArguments>(); arguments.Populate(args); var commandLine = HeatCommandLineFactory.CreateCommandLine(coreProvider); var command = commandLine.ParseStandardCommandLine(arguments); return(command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1)); }
/// <summary> /// Run the application with the given arguments. /// </summary> /// <param name="serviceProvider">Service provider to use throughout this execution.</param> /// <param name="args">The commandline arguments.</param> /// <returns>Returns the application error code.</returns> public Task <int> Run(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string[] args) { var messaging = serviceProvider.GetService <IMessaging>(); messaging.SetListener(listener); var arguments = serviceProvider.GetService <ICommandLineArguments>(); arguments.Populate(args); var commandLine = HeatCommandLineFactory.CreateCommandLine(serviceProvider); var command = commandLine.ParseStandardCommandLine(arguments); return(command?.ExecuteAsync(CancellationToken.None) ?? Task.FromResult(1)); }
/// <summary> /// Run the application with the given arguments. /// </summary> /// <param name="serviceProvider">Service provider to use throughout this execution.</param> /// <param name="args">The commandline arguments.</param> /// <returns>Returns the application error code.</returns> public int Run(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string[] args) { var messaging = serviceProvider.GetService <IMessaging>(); messaging.SetListener(listener); var arguments = serviceProvider.GetService <ICommandLineArguments>(); arguments.Populate(args); var commandLine = HeatCommandLineFactory.CreateCommandLine(serviceProvider); var command = commandLine.ParseStandardCommandLine(arguments); return(command?.Execute() ?? 1); }
protected override void ExecuteCore(IWixToolsetServiceProvider serviceProvider, IMessageListener listener, string commandLineString) { this.Log.LogMessage(MessageImportance.Normal, "heat.exe " + commandLineString); var messaging = serviceProvider.GetService <IMessaging>(); messaging.SetListener(listener); var arguments = serviceProvider.GetService <ICommandLineArguments>(); arguments.Populate(commandLineString); var commandLine = HeatCommandLineFactory.CreateCommandLine(serviceProvider, true); var command = commandLine.ParseStandardCommandLine(arguments); command?.Execute(); }