New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why is Visual Studio 2010 Required? #530

Closed
togakangaroo opened this Issue Nov 9, 2014 · 15 comments

Comments

Projects
None yet
5 participants
@togakangaroo

togakangaroo commented Nov 9, 2014

According to the README, on windows Visual Studio 2010 is required. Why? That is a version from almost five years ago. Can a more recent version not be used?

Can you either elaborate on why that specific version is required or update the documentation to indicate that it is not.

@CoDEmanX

This comment has been minimized.

Show comment
Hide comment
@CoDEmanX

CoDEmanX Nov 11, 2014

Would like to know that as well and couldn't find any parameter to specify the target VS version. Since gyp expects VS10, npm install fails and I need to configure, port the .sln to VS12, checkout/install all dependencies by hand and build - which was successful for node-odbc. Hence I see no reason why gyp couldn't create a VS12 sln straightaway and allow for npm install...

CoDEmanX commented Nov 11, 2014

Would like to know that as well and couldn't find any parameter to specify the target VS version. Since gyp expects VS10, npm install fails and I need to configure, port the .sln to VS12, checkout/install all dependencies by hand and build - which was successful for node-odbc. Hence I see no reason why gyp couldn't create a VS12 sln straightaway and allow for npm install...

@isiahmeadows

This comment has been minimized.

Show comment
Hide comment
@isiahmeadows

isiahmeadows Nov 29, 2014

For VS12, see the answer to this question. VS13 is a similar case. The problem isn't the supported build targets - it's the system requirements for the tools themselves. This likely will never get "fixed" barring Microsoft re-adding support for XP, which itself is almost assuredly not going to happen.

Now, this bug seems filed on the premise (or at least implies it was) that VS 2010 is required for all versions, but it is only required for XP and Vista compatibility. VS 2012/2013 is preferred, and is run first if they exist on Windows 7. It is also a requirement for Windows 8 (VS 2010 is not supported to any extent).

isiahmeadows commented Nov 29, 2014

For VS12, see the answer to this question. VS13 is a similar case. The problem isn't the supported build targets - it's the system requirements for the tools themselves. This likely will never get "fixed" barring Microsoft re-adding support for XP, which itself is almost assuredly not going to happen.

Now, this bug seems filed on the premise (or at least implies it was) that VS 2010 is required for all versions, but it is only required for XP and Vista compatibility. VS 2012/2013 is preferred, and is run first if they exist on Windows 7. It is also a requirement for Windows 8 (VS 2010 is not supported to any extent).

@togakangaroo

This comment has been minimized.

Show comment
Hide comment
@togakangaroo

togakangaroo Nov 30, 2014

So @impinball I'm not sure what you are saying. I'm on windows 8.1 with all sorts of devtools installed as I develop .Net daily. The issue is that npm installing anything that depends on node-gyp in any way results in an error. This is a pretty huge issue since so many tools depend on node-gyp due to contextify and jsdom.

So I'm not on XP and I'm not sure what it has to do with this and that second link just points to the VS Express page? From looking around at other issue trackers (specifically for contextify) I see a lot of people having this issue.

togakangaroo commented Nov 30, 2014

So @impinball I'm not sure what you are saying. I'm on windows 8.1 with all sorts of devtools installed as I develop .Net daily. The issue is that npm installing anything that depends on node-gyp in any way results in an error. This is a pretty huge issue since so many tools depend on node-gyp due to contextify and jsdom.

So I'm not on XP and I'm not sure what it has to do with this and that second link just points to the VS Express page? From looking around at other issue trackers (specifically for contextify) I see a lot of people having this issue.

@isiahmeadows

This comment has been minimized.

Show comment
Hide comment
@isiahmeadows

isiahmeadows Dec 1, 2014

  1. The link to the Express page states system requirements for various
    versions for VS Express 2013. It states that it requires Windows 7 or 8 (or
    Windows Server 2007-2014) to run. XP and Vista cannot run these, thus they
    must fall back to VS 2010.
  2. VS 2010 is required for XP and Vista only, because it is the latest one
    that supports running on either. VS 2012/2013 is required for Windows 8+
    because it's the earliest one to support Windows 8. Windows 7 can run
    either.
    On Nov 30, 2014 4:03 PM, "George Mauer" notifications@github.com wrote:

So @impinball https://github.com/impinball I'm not sure what you are
saying. I'm on windows 8.1 with all sorts of devtools installed as I
develop .Net daily. The issue is that npm installing anything that depends
on node-gyp in any way results in an error. This is a pretty huge issue
since so many tools depend on node-gyp due to contextify and jsdom.

So I'm not on XP and I'm not sure what it has to do with this and that
second link just points to the VS Express page?


Reply to this email directly or view it on GitHub
#530 (comment)
.

isiahmeadows commented Dec 1, 2014

  1. The link to the Express page states system requirements for various
    versions for VS Express 2013. It states that it requires Windows 7 or 8 (or
    Windows Server 2007-2014) to run. XP and Vista cannot run these, thus they
    must fall back to VS 2010.
  2. VS 2010 is required for XP and Vista only, because it is the latest one
    that supports running on either. VS 2012/2013 is required for Windows 8+
    because it's the earliest one to support Windows 8. Windows 7 can run
    either.
    On Nov 30, 2014 4:03 PM, "George Mauer" notifications@github.com wrote:

So @impinball https://github.com/impinball I'm not sure what you are
saying. I'm on windows 8.1 with all sorts of devtools installed as I
develop .Net daily. The issue is that npm installing anything that depends
on node-gyp in any way results in an error. This is a pretty huge issue
since so many tools depend on node-gyp due to contextify and jsdom.

So I'm not on XP and I'm not sure what it has to do with this and that
second link just points to the VS Express page?


Reply to this email directly or view it on GitHub
#530 (comment)
.

@CoDEmanX

This comment has been minimized.

Show comment
Hide comment
@CoDEmanX

CoDEmanX Dec 3, 2014

Who is using XP anyway? You shouldn't let it anywhere near an internet connection anyway since support was dropped.

CoDEmanX commented Dec 3, 2014

Who is using XP anyway? You shouldn't let it anywhere near an internet connection anyway since support was dropped.

@togakangaroo

This comment has been minimized.

Show comment
Hide comment
@togakangaroo

togakangaroo Dec 4, 2014

I'm sorry @impinball I'm still not getting it. I'm on Windows 8.1. Are you saying that you don't think I should be getting this error message?

togakangaroo commented Dec 4, 2014

I'm sorry @impinball I'm still not getting it. I'm on Windows 8.1. Are you saying that you don't think I should be getting this error message?

@kerwitz

This comment has been minimized.

Show comment
Hide comment
@kerwitz

kerwitz Dec 25, 2014

@togakangaroo I'm experiencing difficulties on Windows 8.1 too. @impinball is answering your original question, which is: why is VS2010 required.
Quick answer: it is not. More recent versions are preferred.

As far as I am informed most of the errors on Windows 8.1 are the result of Microsoft dropping some ressources in this release on which gyp relies for building modules. Although I was able to fix some errors by manually downloading missing files I'm still not able to build modules with gyp.. there's always something missing or wrong.

kerwitz commented Dec 25, 2014

@togakangaroo I'm experiencing difficulties on Windows 8.1 too. @impinball is answering your original question, which is: why is VS2010 required.
Quick answer: it is not. More recent versions are preferred.

As far as I am informed most of the errors on Windows 8.1 are the result of Microsoft dropping some ressources in this release on which gyp relies for building modules. Although I was able to fix some errors by manually downloading missing files I'm still not able to build modules with gyp.. there's always something missing or wrong.

@TooTallNate

This comment has been minimized.

Show comment
Hide comment
@TooTallNate

TooTallNate Dec 25, 2014

Contributor

Quick answer: it is not. More recent versions are preferred.

👍

PRs to make the documentation more understandable would be greatly appreciated!

Contributor

TooTallNate commented Dec 25, 2014

Quick answer: it is not. More recent versions are preferred.

👍

PRs to make the documentation more understandable would be greatly appreciated!

@isiahmeadows

This comment has been minimized.

Show comment
Hide comment
@isiahmeadows

isiahmeadows Dec 27, 2014

VS 2010 isn't even compatible with Windows 8. VS 2013 is required. Sorry if
I didn't make that clear.
On Dec 25, 2014 3:09 PM, "Marco Kerwitz" notifications@github.com wrote:

@togakangaroo https://github.com/togakangaroo I'm experiencing
difficulties on Windows 8.1 too. @impinball https://github.com/impinball
is answering your original question, which is: why is VS2010 required.
Quick answer: it is not. More recent versions are preferred.

As far as I am informed most of the errors on Windows 8.1 are the result
of Microsoft dropping some ressources in this release on which gyp relies
for building modules. Although I was able to fix some errors by
manually downloading missing files I'm still not able to build modules with
gyp.. there's always something missing or wrong.


Reply to this email directly or view it on GitHub
#530 (comment)
.

isiahmeadows commented Dec 27, 2014

VS 2010 isn't even compatible with Windows 8. VS 2013 is required. Sorry if
I didn't make that clear.
On Dec 25, 2014 3:09 PM, "Marco Kerwitz" notifications@github.com wrote:

@togakangaroo https://github.com/togakangaroo I'm experiencing
difficulties on Windows 8.1 too. @impinball https://github.com/impinball
is answering your original question, which is: why is VS2010 required.
Quick answer: it is not. More recent versions are preferred.

As far as I am informed most of the errors on Windows 8.1 are the result
of Microsoft dropping some ressources in this release on which gyp relies
for building modules. Although I was able to fix some errors by
manually downloading missing files I'm still not able to build modules with
gyp.. there's always something missing or wrong.


Reply to this email directly or view it on GitHub
#530 (comment)
.

@togakangaroo

This comment has been minimized.

Show comment
Hide comment
@togakangaroo

togakangaroo Dec 27, 2014

The more direct issue isn't that one is listed as required while not being
required, the issue is that when only vs2013 is installed, I cannot install
ant library that uses node-gyp

On Fri, Dec 26, 2014, 19:53 impinball notifications@github.com wrote:

VS 2010 isn't even compatible with Windows 8. VS 2013 is required. Sorry
if
I didn't make that clear.
On Dec 25, 2014 3:09 PM, "Marco Kerwitz" notifications@github.com
wrote:

@togakangaroo https://github.com/togakangaroo I'm experiencing
difficulties on Windows 8.1 too. @impinball <
https://github.com/impinball>
is answering your original question, which is: why is VS2010 required.
Quick answer: it is not. More recent versions are preferred.

As far as I am informed most of the errors on Windows 8.1 are the result
of Microsoft dropping some ressources in this release on which gyp
relies
for building modules. Although I was able to fix some errors by
manually downloading missing files I'm still not able to build modules
with
gyp.. there's always something missing or wrong.


Reply to this email directly or view it on GitHub
<
https://github.com/TooTallNate/node-gyp/issues/530#issuecomment-68111884>
.


Reply to this email directly or view it on GitHub
#530 (comment)
.

togakangaroo commented Dec 27, 2014

The more direct issue isn't that one is listed as required while not being
required, the issue is that when only vs2013 is installed, I cannot install
ant library that uses node-gyp

On Fri, Dec 26, 2014, 19:53 impinball notifications@github.com wrote:

VS 2010 isn't even compatible with Windows 8. VS 2013 is required. Sorry
if
I didn't make that clear.
On Dec 25, 2014 3:09 PM, "Marco Kerwitz" notifications@github.com
wrote:

@togakangaroo https://github.com/togakangaroo I'm experiencing
difficulties on Windows 8.1 too. @impinball <
https://github.com/impinball>
is answering your original question, which is: why is VS2010 required.
Quick answer: it is not. More recent versions are preferred.

As far as I am informed most of the errors on Windows 8.1 are the result
of Microsoft dropping some ressources in this release on which gyp
relies
for building modules. Although I was able to fix some errors by
manually downloading missing files I'm still not able to build modules
with
gyp.. there's always something missing or wrong.


Reply to this email directly or view it on GitHub
<
https://github.com/TooTallNate/node-gyp/issues/530#issuecomment-68111884>
.


Reply to this email directly or view it on GitHub
#530 (comment)
.

@kerwitz

This comment has been minimized.

Show comment
Hide comment
@kerwitz

kerwitz Dec 27, 2014

So which errors do occur?

kerwitz commented Dec 27, 2014

So which errors do occur?

@isiahmeadows

This comment has been minimized.

Show comment
Hide comment
@isiahmeadows

isiahmeadows Dec 27, 2014

My expertise isn't exactly in C/C++, so I'm not sure. If you can find which
headers are being complained about and create a simple project that always
breaks, that would make a nice bug report, likely in GYP itself.
On Dec 26, 2014 9:37 PM, "Marco Kerwitz" notifications@github.com wrote:

So which errors do occur?


Reply to this email directly or view it on GitHub
#530 (comment)
.

isiahmeadows commented Dec 27, 2014

My expertise isn't exactly in C/C++, so I'm not sure. If you can find which
headers are being complained about and create a simple project that always
breaks, that would make a nice bug report, likely in GYP itself.
On Dec 26, 2014 9:37 PM, "Marco Kerwitz" notifications@github.com wrote:

So which errors do occur?


Reply to this email directly or view it on GitHub
#530 (comment)
.

@togakangaroo

This comment has been minimized.

Show comment
Hide comment
@togakangaroo

togakangaroo Dec 27, 2014

@denoir

W:\temp> npm install contextify
\
> contextify@0.1.11 install W:\temp\node_modules\contextify
> node-gyp rebuild


W:\temp\node_modules\contextify>node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, please install Visual Studio 2010 b uild tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". [W:\temp\node_modules\contextify\build\contextify.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:810:12)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd W:\temp\node_modules\contextify
gyp ERR! node -v v0.10.32
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok

npm ERR! contextify@0.1.11 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the contextify@0.1.11 install script.
npm ERR! This is most likely a problem with the contextify package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls contextify
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "contextify"
npm ERR! cwd W:\temp
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0

Same with anything that uses node-gyp. This is what I initially meant by opening this issue, but I was unclear. Sorry about that.

togakangaroo commented Dec 27, 2014

@denoir

W:\temp> npm install contextify
\
> contextify@0.1.11 install W:\temp\node_modules\contextify
> node-gyp rebuild


W:\temp\node_modules\contextify>node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, please install Visual Studio 2010 b uild tools.  Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". [W:\temp\node_modules\contextify\build\contextify.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:810:12)
gyp ERR! System Windows_NT 6.2.9200
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd W:\temp\node_modules\contextify
gyp ERR! node -v v0.10.32
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok

npm ERR! contextify@0.1.11 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the contextify@0.1.11 install script.
npm ERR! This is most likely a problem with the contextify package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls contextify
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.2.9200
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "contextify"
npm ERR! cwd W:\temp
npm ERR! node -v v0.10.32
npm ERR! npm -v 1.4.28
npm ERR! code ELIFECYCLE
npm ERR! not ok code 0

Same with anything that uses node-gyp. This is what I initially meant by opening this issue, but I was unclear. Sorry about that.

@kerwitz

This comment has been minimized.

Show comment
Hide comment
@kerwitz

kerwitz Dec 27, 2014

You may want to try to set the version of Visual Studio manually, it seems that node-gyp tries to use vs2010.
Use ''--msvs-version=2013'' like this:

npm install {{module}} --msvs-version=2013=

kerwitz commented Dec 27, 2014

You may want to try to set the version of Visual Studio manually, it seems that node-gyp tries to use vs2010.
Use ''--msvs-version=2013'' like this:

npm install {{module}} --msvs-version=2013=
@togakangaroo

This comment has been minimized.

Show comment
Hide comment
@togakangaroo

togakangaroo Jan 2, 2015

Ok, that worked. Wouldn't it be a good idea to auto-detect VS version or is there some reason that would be difficult?

Is this going to be something I just need to PR?

togakangaroo commented Jan 2, 2015

Ok, that worked. Wouldn't it be a good idea to auto-detect VS version or is there some reason that would be difficult?

Is this going to be something I just need to PR?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment