Node: Unable to build with VS2017 after building with VS2015

Created on 2 Jun 2017  路  3Comments  路  Source: nodejs/node

  • Version: master
  • Platform: Windows 10 64-bit
  • Subsystem: build


Steps to reproduce:

  1. Run vcbuild. You can cancel with Ctrl+C as soon as it starts building.
  2. Run vcbuild vs2017.

Result:

Looking for Visual Studio 2017
Found MSVS version 14.0
configure  --dest-cpu=x64 --tag=
creating icu_config.gypi
* Using ICU in deps/icu-small
creating icu_config.gypi
{ 'target_defaults': { 'cflags': [],
                       'default_configuration': 'Release',
                       'defines': [],
                       'include_dirs': [],
                       'libraries': []},
  'variables': { 'asan': 0,
                 'coverage': 'false',
                 'debug_devtools': 'node',
                 'force_dynamic_crt': 0,
                 'host_arch': 'x64',
                 'icu_data_file': 'icudt59l.dat',
                 'icu_data_in': '..\\..\\deps/icu-small\\source/data/in\\icudt59l.dat',
                 'icu_endianness': 'l',
                 'icu_gyp_path': 'tools/icu/icu-generic.gyp',
                 'icu_locales': 'en,root',
                 'icu_path': 'deps/icu-small',
                 'icu_small': 'true',
                 'icu_ver_major': '59',
                 'node_byteorder': 'little',
                 'node_enable_d8': 'false',
                 'node_enable_v8_vtunejit': 'false',
                 'node_install_npm': 'true',
                 'node_module_version': 55,
                 'node_no_browser_globals': 'false',
                 'node_prefix': '/usr/local',
                 'node_release_urlbase': '',
                 'node_shared': 'false',
                 'node_shared_cares': 'false',
                 'node_shared_http_parser': 'false',
                 'node_shared_libuv': 'false',
                 'node_shared_openssl': 'false',
                 'node_shared_zlib': 'false',
                 'node_tag': '',
                 'node_use_bundled_v8': 'true',
                 'node_use_dtrace': 'false',
                 'node_use_etw': 'true',
                 'node_use_lttng': 'false',
                 'node_use_openssl': 'true',
                 'node_use_perfctr': 'true',
                 'node_use_v8_platform': 'true',
                 'node_without_node_options': 'false',
                 'openssl_fips': '',
                 'openssl_no_asm': 0,
                 'shlib_suffix': 'so.55',
                 'target_arch': 'x64',
                 'v8_enable_gdbjit': 0,
                 'v8_enable_i18n_support': 1,
                 'v8_enable_inspector': 1,
                 'v8_no_strict_aliasing': 1,
                 'v8_optimized_debug': 0,
                 'v8_promise_internal_field_count': 1,
                 'v8_random_seed': 0,
                 'v8_use_snapshot': 'true',
                 'want_separate_host_toolset': 0,
                 'want_separate_host_toolset_mkpeephole': 0}}
creating config.gypi
creating config.mk
Warning: Missing input files:
deps\v8\src\..\..\include\v8-inspector-protocol.h
tools\msvs\genfiles\node_perfctr_provider.rc
deps\v8\src\..\..\include\v8-inspector.h
src\tracing\trace_event.hsrc\tree.h
Project files generated.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\cares\car
es.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\http_pars
er\http_parser.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\tools\icu\icu_
implementation.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\tools\icu\icu_
uconfig.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\tools\icu\icu_
uconfig_target.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\v8\src\in
spector\inspector_debugger_script.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\gtest\gte
st.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\v8\src\in
spector\inspector_injected_script.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\v8\src\js
2c.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\uv\libuv.
vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\mkssldef.vcxpr
oj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\node_dtrace_he
ader.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\node_dtrace_us
tack.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\node_etw.vcxpr
oj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\node_dtrace_pr
ovider.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\node_js2c.vcxp
roj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\node_perfctr.v
cxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\openssl\o
penssl.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\v8\src\in
spector\protocol_compatibility.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\specialize_nod
e_d.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\v8_inspector_c
ompress_protocol_json.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\v8\src\v8
_libbase.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\v8\src\v8
_libplatform.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\v8\src\v8
_libsampler.vcxproj]
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: The build t
ools for v141 (Platform Toolset = 'v141') cannot be found. To build using the v141 build tools, please install v141 bui
ld tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-cli
ck the solution, and then selecting "Retarget solution". [C:\Users\Nikolai\Downloads\node_new_DELETETHIS\deps\zlib\zlib
.vcxproj]

It works fine if I close cmd and re-open it. It seems building with VS2015 leaves some bad variables.

cc @refack

build windows

Most helpful comment

It appeared to me, that the reason for the problem was a not needed VCTargetsPath system variable. After removing it, VS 2017 now sees V141 toolset.
I had VS 2017 Community first, maybe that made the problem.

All 3 comments

@seishun it's an edge case with a simple workaround (as you stated), but I'll see if there's a simple solution.

It appeared to me, that the reason for the problem was a not needed VCTargetsPath system variable. After removing it, VS 2017 now sees V141 toolset.
I had VS 2017 Community first, maybe that made the problem.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

addaleax picture addaleax  路  3Comments

akdor1154 picture akdor1154  路  3Comments

styfle picture styfle  路  3Comments

dfahlander picture dfahlander  路  3Comments

fanjunzhi picture fanjunzhi  路  3Comments