ibmdb / node-ibm_db

IBM DB2 and IBM Informix bindings for node
MIT License
192 stars 150 forks source link

MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe". #362

Closed penbachi closed 6 years ago

penbachi commented 6 years ago

I am trying to install ibm-db with downloaded cli driver in my classpath. (IBM_DB_INSTALLER_URL) Getting below error when I am install npm install ibm_db command. Please help with this. Stuck here for a long time. I am using node v8.9.4.

Unhandled rejection FILE_ENDED

C:\apps\repos\pmdev-cli\node_modules\ibm_db>if not defined npm_config_node_gyp (node "C:\apps\nodejs8\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp. js" configure build --IS_DOWNLOADED=true --IBM_DB_HOME=$IBM_DB_HOME ) else (node "C:\apps\nodejs8\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" configure build --IS_DOWNLOADED=true --IBM_D B_HOME=$IBM_DB_HOME ) Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe". If the component is not installed, either 1) install the Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5, or 2) install Microsoft Visual Studio 2008. [C:\apps\repos\pmdev-cli\node_modules\ibm_db\build\binding.sln]

{ Error: Command failed: node-gyp configure build --IS_DOWNLOADED=true --IBM_DB_HOME=$IBM_DB_HOME gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\apps\nodejs8\node_modules\npm\node_modules\node-gyp\lib\build.js:258:23) gyp ERR! stack at emitTwo (events.js:126:13) gyp ERR! stack at ChildProcess.emit (events.js:214:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12) gyp ERR! System Windows_NT 10.0.15063 gyp ERR! command "C:\apps\nodejs8\node.exe" "C:\apps\nodejs8\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "configure" "build" "--IS_DOWNLOADED=true" "--IBM_DB_HOME=$IBM_DB_HOME" gyp ERR! cwd C:\apps\repos\pmdev-cli\node_modules\ibm_db gyp ERR! node -v v8.9.4 gyp ERR! node-gyp -v v3.6.2 gyp ERR! not ok

at ChildProcess.exithandler (child_process.js:275:12)
at emitTwo (events.js:126:13)
at ChildProcess.emit (events.js:214:7)
at maybeClose (internal/child_process.js:925:16)
at Socket.stream.socket.on (internal/child_process.js:346:11)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
at Pipe._handle.close [as _onclose] (net.js:554:12)

killed: false, code: 1, signal: null, cmd: 'node-gyp configure build --IS_DOWNLOADED=true --IBM_DB_HOME=$IBM_DB_HOME' }

rhtpandeyIN commented 6 years ago

Hi @penbachi, can you please provide us the following details: 1) How you are installing node-ibm_db? 2) Full error log. 3) Do you have Visual studio installed in your system as well "msbuild"? Thanks.

penbachi commented 6 years ago

I am using npm to install command like "npm install ibm_db"

Below is the full trace.

PS C:\apps\repos\pmdev-cli> npm install ibm_db

ibm_db@2.2.1 install C:\apps\repos\pmdev-cli\node_modules\ibm_db node installer/driverInstall.js

Downloading DB2 ODBC CLI Driver from C:\apps\repos\pmdev-cli\install/ntx64_odbc_cli.zip...


You are downloading a package which includes the Node.js module for IBM DB2/Informix. The module is licensed under the Apache License 2.0. The package also includes IBM ODBC and CLI Driver from IBM, w hich is automatically downloaded as the node module is installed on your system/device. The license agreement to the IBM ODBC and CLI Driver is available in undefined Check for additional dependencie s, which may come with their own license agreement(s). Your use of the components of the package and dependencies constitutes your acceptance of their respective license agreements. If you do not accep t the terms of any license agreement(s), then delete the relevant component(s) from your device.


Downloading and extraction of DB2 ODBC CLI Driver completed successfully...

C:\apps\repos\pmdev-cli\node_modules\ibm_db>if not defined npm_config_node_gyp (node "C:\apps\nodejs8\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp. js" configure build --IS_DOWNLOADED=true --IBM_DB_HOME=$IBM_DB_HOME ) else (node "C:\apps\nodejs8\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" configure build --IS_DOWNLOADED=true --IBM_D B_HOME=$IBM_DB_HOME ) Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe". If the component is not installed, either 1) install the Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5, or 2) install Microsoft Visual Studio 2008. [C:\apps\repos\pmdev-cli\node_modules\ibm_db\build\binding.sln] { Error: Command failed: node-gyp configure build --IS_DOWNLOADED=true --IBM_DB_HOME=$IBM_DB_HOME gyp ERR! build error gyp ERR! stack Error: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe failed with exit code: 1 gyp ERR! stack at ChildProcess.onExit (C:\apps\nodejs8\node_modules\npm\node_modules\node-gyp\lib\build.js:258:23) gyp ERR! stack at emitTwo (events.js:126:13) gyp ERR! stack at ChildProcess.emit (events.js:214:7) gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12) gyp ERR! System Windows_NT 10.0.15063 gyp ERR! command "C:\apps\nodejs8\node.exe" "C:\apps\nodejs8\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "configure" "build" "--IS_DOWNLOADED=true" "--IBM_DB_HOME=$IBM_DB_HOME" gyp ERR! cwd C:\apps\repos\pmdev-cli\node_modules\ibm_db gyp ERR! node -v v8.9.4 gyp ERR! node-gyp -v v3.6.2 gyp ERR! not ok at ChildProcess.exithandler (child_process.js:275:12) at emitTwo (events.js:126:13) at ChildProcess.emit (events.js:214:7) at maybeClose (internal/child_process.js:925:16) at Socket.stream.socket.on (internal/child_process.js:346:11) at emitOne (events.js:116:13) at Socket.emit (events.js:211:7) at Pipe._handle.close [as _onclose] (net.js:554:12) killed: false, code: 1, signal: null, cmd: 'node-gyp configure build --IS_DOWNLOADED=true --IBM_DB_HOME=$IBM_DB_HOME' }

node-gyp build process failed! Proceeding with Pre-compiled Binary Installation.

=================================== node-ibm_db installed successfully!

  1. I see msbuild.exe in this path "C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe". I am not sure if that is what is required.

But, do we need to install visual studio to make this work? What options do I have without installing visual studio? I don't want a big setup to run this.

rhtpandeyIN commented 6 years ago

Hi @penbachi , yes you need to install Visual studio, in case you want to compile and build the node-ibm_db on windows platform (simply it has C++ code and to compile that code you need C++ compiler which comes with the Visual studio, and to run "msbuild" command itself, it needs few VS internal libraries). That is why your installation is failing, otherwise you can work with the pre-compiled binary installation, it doesn't required VS installation, but you will not able to build node-ibm_db in that case.

Closing the issue for now, in case you need further help, please follow below link, it has regarding information, or feel free to comment your queries down.
https://github.com/ibmdb/node-ibm_db/blob/master/INSTALL.md

Thanks.

bimalkjha commented 6 years ago

@penbachi Check using ibm_db@2.3.1. Thanks.