Build projects with MSBuild and XBuild using Grunt
This plugin requires Grunt ~0.4.0
. In other words it should work on 0.4.0 or higher.
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-msbuild --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-msbuild');
In your project's Gruntfile, add a section named msbuild
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
msbuild: {
dev: {
src: ['ConsoleApplication5.csproj'],
options: {
projectConfiguration: 'Debug',
targets: ['Clean', 'Rebuild'],
version: 4.0,
maxCpuCount: 4,
buildParameters: {
WarningLevel: 2
},
nodeReuse:true,
customArgs:[ '/noautoresponse', '/detailedsummary'],
verbosity: 'quiet'
}
}
}
});
Name | Description | Default |
---|---|---|
projectConfiguration | Configuration to pick | Release |
targets | Targets to run | Build |
version | .NET version | 4.0 |
maxCpuCount | Number of cores to use | 1 |
nodeReuse | If msbuild should hang around | true |
consoleLoggerParameters | Customize Console Logger | |
buildParameters | Additional properties | |
customArgs | Additional args, see MSBuild Command-Line Reference | |
verbosity | Verbosity level (quiet, minimal, normal, detailed or diagnostic) | normal |
For more information, see MSBuild Command-Line Reference.
Pass a version parameter to the task options as shown above to select a specific MSBuild version.
The version number is used to look up the MSBuild executable. Old MSBuild versions are installed to the corresponding .NET Framework directory (under C:\Windows\Microsoft.NET\Framework
). Recent MSBuild versions are installed to program files (C:\Program Files (x86)\MSBuild
). The following version mappings are used:
Version | .NET Framework directory |
---|---|
1.0 | 1.0.3705 |
1.1 | 1.1.4322 |
2.0 | 2.0.50727 |
3.5 | 3.5 |
4.0 | 4.0.30319 |
Version | MSBuild directory |
---|---|
12.0 | 12.0 |
14.0 | 14.0 |
If a version is not passed, the task will attempt to locate the latest version of MSBuild. Failing that, the task will fallback to 4.0.
If this task is run on OS X or Linux it will assume that xbuild is in the path and use that instead of MSBuild.
All contributions welcome :) Add to the VS integration tests for any new or changed functionality if possible.
If you have any problems with the latest release please log an issue at https://github.com/stevewillcock/grunt-msbuild/issues.
If you need to roll back to an earlier version you can use the following syntax to install a specific version
npm install [email protected]
Also see https://www.npmjs.org/doc/json.html#dependencies for details of how to specify a particular package version in your package.json file
Version | Notes |
---|---|
2.0 | This version replaces exec() with spawn() to improve memory usage and also to support coloured console output. This has been tested internally. |
0.1.12 | Support for MSBuild 12 added |
0.1.11 | ... |