msbuild plugin for gulp. Inspired by grunt-msbuild
This project is not maintained anymore. The main reason is that i no longer work with .NET and MSBuild, which makes it hard to still work on this project in my spare time.
Also note that this plugin is not following the Gulp Guidelines as this is not intended to be used with gulp, which is also the reason why this plugin was blacklisted in the official gulp plugin directory.
If you would like to develop it further feel free to fork this project, i can link your fork here as well if you like.
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 gulp-util
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 gulp-util
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 gulp-util
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 gulp-util
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