/// <summary> /// Configures binary logging for MSBuild /// </summary> /// <param name="settings"></param> /// <param name="path"></param> /// <param name="imports"></param> public static T SetBinaryLogger <T>(this T settings, AbsolutePath path, MSBuildBinaryLogImports imports) where T : ToolSettings { var existingArgs = settings.ArgumentConfigurator; return(settings.SetArgumentConfigurator( args => existingArgs(args).Add($"/bl:{path};ProjectImports={imports}") )); }
/// <summary> /// Enables the binary logger with the specified log file name and imports. /// </summary> /// <param name="settings">The settings.</param> /// <param name="fileName">The log file name.</param> /// <param name="imports">The imports.</param> /// <returns>The same <see cref="MSBuildSettings"/> instance so that multiple calls can be chained.</returns> public static MSBuildSettings EnableBinaryLogger(this MSBuildSettings settings, string fileName, MSBuildBinaryLogImports imports) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } settings.BinaryLogger = new MSBuildBinaryLogSettings { Enabled = true, FileName = fileName, Imports = imports, }; return(settings); }