This plugin was blacklisted in the official gulp plugin directory, for apparently
not following the Gulp Guidelines. C'est la vie. Being able to .src
some
solutions and pipeline through an msbuild process seems like a good thing to me.
Contributions welcome.
First, install gulp-msbuild
as a development dependency:
npm install --save-dev gulp-msbuild
Then, add it to your gulpfile.js
:
var gulp = require("gulp");
var msbuild = require("gulp-msbuild");
gulp.task("default", function() {
return gulp.src("./project.sln")
.pipe(msbuild());
});
If you miss any options, feel free to open an issue.
Example
var gulp = require("gulp");
var msbuild = require("gulp-msbuild");
gulp.task("default", function() {
return gulp.src("./project.sln")
.pipe(msbuild({
targets: ['Clean', 'Build'],
toolsVersion: 3.5
})
);
});
Show output of msbuild
Default: false
Show errors of msbuild
Default: true
If the MSBuild job fails with an error, this will cause the gulp-msbuild stream to return an error thus causing the gulp task to fail. This is useful if using an automated build server such as Jenkins where a failing MSBuild should also cause the overall build job to fail.
Default: false
Logs the msbuild command that will be executed.
Default: false
Specify Build Targets
Default:
['Rebuild']
Specify Build Configuration (Release or Debug)
Default: Release
Hint: You can also specify the Build Configuration using the properties option
properties: { Configuration: 'Debug' }
Specify the Solution Platform (e.g. x86, x64, AnyCPU)
Hint: You can also specify the Solution Platform using the properties option
properties: { Platform: 'AnyCPU' }
Specify the .NET Tools-Version
Default: 4.0
Possible Values: 1.0, 1.1, 2.0, 3.5, 4.0, 12.0, 14.0, 15.0, 'auto'
'auto'
attempts to find the latest version >= 12.0, with a fallback to 4.0
This parameter can be omitted by explicitely set them to null
or undefined
.
Specify the Architecture
Default: Auto-detected
Possible Values: x86, x64
Example:
msbuild({ architecture: 'x86' })
Specify Custom Build Properties
Default: none
Example:
msbuild({ properties: { WarningLevel: 2 } })
Hint: Property values can use lodash.template
templates (e.g. "<%= file.path %>"
)
Specify the amount of information to display in the build output
Default: normal
Possible Values: quiet, minimal, normal, detailed, diagnostic
Specify Maximal CPU-Count to use
Default: 0 = Automatic selection
Possible Values: -1 (MSBuild Default), 0 (Automatic), > 0 (Concrete value)
Specify whether to enable or disable the re-use of MSBuild nodes
Default: true = Nodes remain after the build finishes so that subsequent builds can use them
Possible Values: true (MSBuild Default), false
Suppress Startup Banner and Copyright Message of MSBuild
Default: false -> Show Startup Banner and Copyright Message
Specify the parameters for the MSBuild File Logger.
Default: None
Example:
msbuild({ fileLoggerParameters: 'LogFile=Build.log;Append;Verbosity=diagnostic' })
Hint: Logger parameters options can use lodash.template
templates (e.g. "<%= file.path %>"
)
Specify the parameters for the MSBuild Console Logger. (See fileLoggerParameters for a usage example)
Default: None
Hint: Logger parameters options can use lodash.template
templates (e.g. "<%= file.path %>"
)
Specify the parameters for a custom MSBuild Logger.
Default: None
Example:
msbuild({ loggerParameters: 'XMLLogger,./MyLogger.dll;OutputAsHTML' })
Hint: Logger parameters options can use lodash.template
templates (e.g. "<%= file.path %>"
)
Specify custom msbuild arguments, which don't have a own property in gulp-msbuild.
Default: None
Example:
msbuild({ customArgs: ['/noautoresponse'] })
Specify if a gulp end-event should be emitted.
Default: false = No end event is emitted.
Possible Values: true, false
For a more detailed description of each MSBuild Option see the MSBuild Command-Line Reference