Wondering what’s next for npm?Check out our public roadmap! »


    1.3.1 • Public • Published


    Build projects with MSBuild and XBuild using Grunt

    Getting Started

    This plugin targets Grunt ^1.3. While it may work on older versions it's generally good practice to always use an up to date version of Grunt!

    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:


    The "msbuild" task


    In your project's Gruntfile, add a section named msbuild to the data object passed into grunt.initConfig().

        msbuild: {
            dev: {
                src: ['ConsoleApplication5.csproj'],
                options: {
                    projectConfiguration: 'Debug',
                    targets: ['Clean', 'Rebuild'],
                    maxCpuCount: 4,
                    buildParameters: {
                        WarningLevel: 2
                    customArgs:[ '/noautoresponse', '/detailedsummary'],
                    verbosity: 'quiet',
                    msbuildPath: 'C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\MSBuild\\Current\\Bin\\amd64\\MSBuild.exe',


    Name Description Default
    projectConfiguration Configuration to pick Release
    targets Targets to run Build
    maxCpuCount Number of cores to use 1
    nodeReuse If msbuild should hang around true
    failOnError If this grunt-msbuild should fail on error true
    consoleLoggerParameters Customize Console Logger
    visualStudioVersion Set VisualStudio version property to a special version i.e. 15
    platform Platform msbuild should use i.e. "Win32"
    buildParameters Additional properties
    customArgs Additional args, see MSBuild Command-Line Reference
    verbosity Verbosity level (quiet, minimal, normal, detailed or diagnostic) normal
    nologo If msbuild should hide logo true
    msbuildPath Path to MSBuild.exe. Required if inferMsbuildPath is not set to true.
    inferMsbuildPath If the msbuildpath should be inferred using vswhere. Overrides the given msbuildPath value. false
    vswhereProducts Ignored if inferMsbuildPath is false. Parameter of 'products' option of vswhere.exe. One or more product IDs to find. Defaults to Community, Professional, and Enterprise. Specify "*" by itself to search all product instances installed. See https://aka.ms/vs/workloads for a list of product IDs. *
    vswhereVersion Ignored if inferMsbuildPath is false. Parameter of 'version' option of vswhere.exe. A version range for instances to find. Example: [15.0,16.0) will find versions 15.*.

    For more information, see MSBuild Command-Line Reference.

    MSBuild version selection

    If inferMsbuildPath is set to true, grunt-msbuild will try to infer the msbuildpath using vswhere.exe. Otherwise, you should set msbuildPath option. msbuildPath is used to target your msbuild version.

    Example values for msbuildPath:

    C:\\Program Files (x86)\\MSBuild\\MSBuild\\<VERSION>\\Bin\\amd64\\MSBuild.exe
    C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\<YOUR_EDITION>\\MSBuild\\15.0\\Bin\\amd64\\MSBuild.exe
    C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\<YOUR_EDITION>\\MSBuild\\Current\\Bin\\amd64\\MSBuild.exe
    msbuild  (This will work if msbuild is available on the path for example)


    All contributions welcome :) Add to the VS integration tests for any new or changed functionality if possible.

    Issues and installing previous versions

    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 grunt-msbuild@0.1.12

    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

    Release Notes

    Version Notes
    1.2 Added options vswhereProduct & vswhereVersion. Switched from vswhere 2.6.7 to 2.8.4.
    1.0 This version replaces the version option with msbuildPath to support MSBuild versions moving forward from Visual Studio 2019.
    0.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 ...


    npm i grunt-msbuild

    DownloadsWeekly Downloads






    Unpacked Size

    472 kB

    Total Files


    Last publish


    • avatar