Esempio n. 1
0
        /// <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);
        }