Visual studio 2013 仅安装Visual Studio 2013的NPM本机版本
我已经安装了一个干净的Windows,安装了Visual Studio 2013 Pro,以及当前版本的Python、node和npm 我正在尝试安装Visual studio 2013 仅安装Visual Studio 2013的NPM本机版本,visual-studio-2013,npm,Visual Studio 2013,Npm,我已经安装了一个干净的Windows,安装了Visual Studio 2013 Pro,以及当前版本的Python、node和npm 我正在尝试安装pgnpm软件包,但它需要本机版本,并且失败: C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): 错误MSB8020:Visual Studio 2012的生成工具(平台 找不到工具集='v110')。要使用v110构
pg
npm软件包,但它需要本机版本,并且失败:
C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5):
错误MSB8020:Visual Studio 2012的生成工具(平台
找不到工具集='v110')。要使用v110构建
工具,请安装Visual Studio 2012生成工具。或者,
您可以通过选择
项目菜单或右键
-单击解决方案,然后选择“升级解决方案…”。
[C:\Users\Aaron\AppData\Roaming\npm\node\u modules\pg\build\binding.vcxproj]
我似乎找不到所描述的VisualStudio2012的构建工具,我当然不希望仅仅为了这个需要而安装VS2012。有没有办法强制安装和构建使用可用的2013编译器/工具,而不更改包的代码
我找不到任何人用我的Google Fu来描述这个特定问题和解决方案。我只在Visual Studio 2013上安装了太干净的Windows 8.1(64位)Pro(没有以前版本的VS,尽管SQL Server 2014附带了一些组件)。npm install命令失败,出现类似错误 所以我尝试指定VS版本
npm install --msvs_version=2013 <package>
然后安装了软件包
以下版本仅供参考:与2013年保费相比
Python 2.7.8
C:\Windows\system32>npm版本
{http_解析器:“1.0”,
节点:“0.10.29”,
v8:'3.14.5.9',
战神:“1.9.0-DEV”,
紫外线:“0.10.27”,
zlib:'1.2.3',
模块:“11”,
openssl:'1.0.1h',
npm:'1.4.14'}
通过以下方式将节点gyp
更新至最新版本(1.0.2):npm安装节点gyp-g
请注意,您还必须
现在,node gyp
将支持您的Visual Studio 2013-您可以在\u CreateVersion
方法中签入/node\u modules/node gyp/gyp/pylib/gyp/MSVSVersion.py
但是,本机模块仍然无法生成,这会导致一个错误,即某些包含文件丢失(来自Windows SDK的文件,如saywinsock2.h
)。这是因为Visual Studio 2013与默认的7.1A SDK捆绑在一起。但是默认的工具集设置是“v120”,它需要8.1 SDK(需要另外安装)
要仅使用stock VS 2013进行构建,您需要更改选择的工具集。您可以通过修改~/.node gyp/common.gypi
文件(想法取自),并将工具集改为“v120\u xp”(将使用捆绑的7.1A SDK)来实现这一点:
{
...
“目标_默认值”:{
...
“配置”:{
...
“释放”:{
“条件”:[
['target_arch==“x64”{
“MSV\u配置\u平台”:“x64”,
“msbuild_toolset”:“v120_xp”帮助我的是指定环境变量GYP_MSVS_VERSION以使用正确的VS
在运行npm之前,您可以在控制中心或控制台中进行设置,因此对于2013年来说是这样的
set GYP_MSVS_VERSION=2013
设置GYP\U MSVS\U版本=2013
2015年,您使用
set GYP_MSVS_VERSION=2015
设置GYP\U MSVS\U版本=2015
免费VS 2013或2015社区版应该是最简单的方式
PS
我认为对于VS 2013 Express,您应该使用
set GYP_MSVS_VERSION=2013e
设置GYP_MSVS_版本=2013e
其中e告诉npm使用快速版本,我在VS2015中遇到了类似的错误,但设置了msvs参数:
npm config set msvs_version 2013 --global
npm安装——msvs\u版本=2015
没有解决问题。我可以看出,无论我做什么,它都在错误的地方寻找工具集
长话短说,我了解到MSBuild现在已与Visual Studio打包,而不再与.NET打包。果然,我在PATH变量中有以下条目:
C:\Windows\Microsoft.NET\Framework\v4.0.30319;
因此调用了错误(旧)版本的MSBuild。我删除了此条目,并添加了与VS2015相关的以下路径:
C:\Program Files (x86)\MSBuild\14.0\Bin\
问题已解决。您可以使用--msvs\u version=2012(例如)提供其他版本在npm中。我不认为有一个官方的2013切换/这看起来像这里的标志列表?更好的是,你也可以全局设置版本,例如npm config set msvs_version 2012--global@ErikVullings-那么,npm config set msvs_version 2013--global
?(问题是关于使用VS 2013的)谢谢,前两个步骤为我解决了问题。在干净安装VS 2013之后,我在MSBuild/Microsoft.Cpp中没有任何文件夹。我花了一天的时间试图实现这一点。我希望这些神奇的环境变量能够以某种方式记录下来。你是一个传奇人物!太棒了。我一直在关注这个问题,但从未找到解决方案。我有VS 2015 Enterprise installed和以下不带引号的命令“set GYP_MSVS_VERSION=2015”修复了我的问题!
C:\Program Files (x86)\MSBuild\14.0\Bin\