Skip to content

Outdated visualstudio2019-workload-vctools in Node.js 22+ Windows install_tools.bat #59031

Description

@MikeMcC399

Current situation

The version of Visual C++ build tools workload installed by tools/msvs/install_tools/install_tools.bat is not aligned with the version specified in BUILDING > Supported toolchains for Windows:

Node.js branch Windows Supported toolchain install_tools.bat
v20.x Visual Studio >= 2019 with the Windows 10 SDK on a 64-bit host visualstudio2019-workload-vctools
v22.x Visual Studio >= 2022 with the Windows 10 SDK on a 64-bit host visualstudio2019-workload-vctools
v24.x Visual Studio >= 2022 with the Windows 10 SDK on a 64-bit host visualstudio2019-workload-vctools

In all branches, tools/msvs/install_tools/install_tools.bat the following choco command is executed:

choco upgrade -y python visualstudio2019-workload-vctools

This is also what gets executed if a user installs Node.js as a Windows MSI package and then selects to install "Tools for Native Modules"

Image

Expected

For Node.js 22.x and 24.x expect that tools/msvs/install_tools/install_tools.bat installs

Visual C++ build tools workload for Visual Studio 2022 (visualstudio2022-workload-vctools)

instead of

Visual C++ build tools workload for Visual Studio 2019 (visualstudio2019-workload-vctools)

Related

Activity

  1. MeirionHughes commented on Jul 11, 2025

    @MeirionHughes

    I'd like to add that the install_tools.bat doesn't work either for the node 22 > 24 change requiring ClangCL

    on node 24 node_gyp rebuild is called during install (in a workspace that has latest electron and my own native libs) results in trying to use the Clang platform toolset.

    This (apparently) requires an add-on to the *-workload-vctools. But after sinking a day trying to add them, I couldn't get it to work. Neither could I work out how to globally force node-gyp to use a specific platform instead of ClangCL.

    So yes - if someone picks this up - I humbly ask the ClangCL platform requirement is added.

  2. MikeMcC399 commented on Oct 23, 2025

    @MikeMcC399
    Author
  3. MikeMcC399 commented on Oct 24, 2025

    @MikeMcC399
    ContributorAuthor

    Visual Studio 2022 meets the criteria

    Visual Studio >= 2019 with the Windows 10 SDK on a 64-bit host

    Visual Studio 2026 Insiders was announced Sep 9, 2025. This can be expected to transition to General Availability at some date in the not too distant future.

  4. MikeMcC399 commented on Nov 12, 2025

    @MikeMcC399
    ContributorAuthor

    Just since I mentioned it in the previous comment,

    Visual Studio 2026 is here: faster, smarter, and a hit with early adopters was announced on Nov 11, 2025.

    This is a couple of weeks after #60318 was merged.

  5. MikeMcC399 commented on Nov 26, 2025

    @MikeMcC399
    ContributorAuthor

    See also #60861 for compatibility with Visual Studio 2026

  6. MikeMcC399 commented on Jan 21, 2026

    @MikeMcC399
    ContributorAuthor

    @MeirionHughes

    I'd like to add that the install_tools.bat doesn't work either for the node 22 > 24 change requiring ClangCL

    on node 24 node_gyp rebuild is called during install (in a workspace that has latest electron and my own native libs) results in trying to use the Clang platform toolset.

    This (apparently) requires an add-on to the *-workload-vctools. But after sinking a day trying to add them, I couldn't get it to work. Neither could I work out how to globally force node-gyp to use a specific platform instead of ClangCL.

    So yes - if someone picks this up - I humbly ask the ClangCL platform requirement is added.

    If this is still a problem for you, could you open a new issue? I'm struggling to find a public npm package and a latest Node.js version which fails to build binaries due to missing ClangCL components. I believe it should theoretically still be an issue.

  7. MeirionHughes commented on Feb 7, 2026

    @MeirionHughes

    If this is still a problem for you, could you open a new issue? I'm struggling to find a public npm package and a latest Node.js version which fails to build binaries due to missing ClangCL components. I believe it should theoretically still be an issue.

    The problem has gone away; I don't know when, but node 24 and 25 are fine now; no mention of clang in the log; just spawning msbuild:

    gyp info spawn C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\MSBuild\Current\Bin\MSBuild.exe
    gyp info spawn args [
    gyp info spawn args 'build/binding.sln',
    gyp info spawn args '/clp:Verbosity=minimal',
    gyp info spawn args '/nologo',
    gyp info spawn args '/nodeReuse:false',
    gyp info spawn args '/p:Configuration=Release;Platform=x64'
    gyp info spawn args ]
    
  8. added
    windowsIssues and PRs related to the Windows platform.
    installIssues and PRs related to installing Node.js and its installers.
    on Sep 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    installIssues and PRs related to installing Node.js and its installers.windowsIssues and PRs related to the Windows platform.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions