MSBuild & ClCompile versions

mathiask's Avatar


21 Jan, 2015 03:41 PM


I have a question regarding MSBuild and ClCompile Versions. If I build my node.js project the file "C:\Program Files (x86)\MSBuild\12.0\Bin\msbuild.EXE" (Version 12) is beeing called but the "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\CL.exe" only in Version 10. So is there a mix of Visual Studio 2010 and 2013 here? If I build it on my desktop with VS2013 Update 4 both paths contain the "12.0".

Best regards

  1. Support Staff 1 Posted by Feodor Fitsner on 21 Jan, 2015 08:15 PM

    Feodor Fitsner's Avatar

    Yeah, there are VS 2010, 2012 and 2013 installed:

  2. 2 Posted by mathiask on 21 Jan, 2015 08:22 PM

    mathiask's Avatar

    Ok, that is great! And how can I select between this versions in a node.js project? Current appveyor.yml is

  3. 3 Posted by mathiask on 21 Jan, 2015 09:23 PM

    mathiask's Avatar

    Ah I got a solution. There is a config variable in the .gyp file that changes the default toolset. So this was my lack of knowledge. Thanks for the fast support and keep up the good work!

  4. Support Staff 4 Posted by Feodor Fitsner on 21 Jan, 2015 09:25 PM

    Feodor Fitsner's Avatar

    Cool, thanks for the update!

    Btw, if you're willing to do a paragraph-two describing the problem and solution we could add that here: (just published).

  5. 5 Posted by mathiask on 21 Jan, 2015 09:46 PM

    mathiask's Avatar

    For sure, I can do this tomorrow! Oh nice, updated node/iojs page. Btw, is it possible to specify both platforms for this command "Update-NodeJsInstallation <version> [x86|x64]", so that my matrix runs x86 and x64?

  6. Support Staff 6 Posted by Feodor Fitsner on 21 Jan, 2015 10:01 PM

    Feodor Fitsner's Avatar

    Yeah, you could introduce another "dimension" to the matrix:

      - nodejs_version: "0.10"
      - nodejs_version: "1.0"
      - x86
      - x64
      - ps: Install-Product node $env:nodejs_version $env:platform

    This will create a build with 4 jobs for all combinations of node version and platform.

    Good question - will update docs with this example.

  7. 7 Posted by mathiask on 22 Jan, 2015 07:37 PM

    mathiask's Avatar

    To build with different Visual Studio Versions you can pass an argument to NPM: "npm install --msvs_version=2013". Available version strings are 2005,2005e,2008,2008e,2010,2010e,2012,2012e,2013 and 2013e(2013 only in newer NPM(node-gyp) versions, so updating NPM before build is recommended. "e" is for Express versions). But with 2010e AND x64 I got a build error that the linker can't find the kernel32.lib but according to your link with installed software the platform SDK that is required for express versions is installed. So I did not find a solution yet.

  8. 8 Posted by Rui Abreu Ferre... on 30 Jan, 2015 12:30 AM

    Rui Abreu Ferreira's Avatar

    FYI if you prefer instead of passing the argument to gyp you can also set an environment var GYP_MSVS_VERSION=2013

  9. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 01:53 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts


? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac