Skip to content
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
Closed

Why is Visual Studio 2010 Required? #530

togakangaroo opened this issue Nov 9, 2014 · 15 comments

Comments

@togakangaroo
Copy link

@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
Copy link

@CoDEmanX 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
Copy link

@isiahmeadows 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
Copy link
Author

@togakangaroo 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
Copy link

@isiahmeadows 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
Copy link

@CoDEmanX 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
Copy link
Author

@togakangaroo 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
Copy link

@kerwitz 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
Copy link
Contributor

@TooTallNate 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
Copy link

@isiahmeadows 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
Copy link
Author

@togakangaroo 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
Copy link

@kerwitz kerwitz commented Dec 27, 2014

So which errors do occur?

@isiahmeadows
Copy link

@isiahmeadows 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
Copy link
Author

@togakangaroo 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
Copy link

@kerwitz 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
Copy link
Author

@togakangaroo 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
Labels
None yet
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
5 participants