2014-01-12 242 views
52

NPM包没有在Windows 8.1中建设 - 失败与以下错误,节点程序包不能在Windows 8.1 - 缺少Microsoft.Cpp.Default.props

error MSB4019: The imported project "C:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

我曾尝试以下,

  • 将环境变量VCTargetsPath设置为C:\Program Files (x86)\MSBuild\12.0\(错误相应地发生变化,但2012构建工具没有Microsoft.Cpp.Default.props)。
  • 安装根据this answer
  • 完全去除2010 VisualStudio的一个的VisualStudio 2010环境(卸载,然后安装在正确的顺序),并尝试了的VisualStudio 2012来代替,这要根据Node-gyp wiki
  • 添加注册表项,根据this answer工作
  • 使用Windows 7.1 SDK命令提示根据this answer
  • 试图运行NPM之前设置VisualStudioVersion根据this answer
  • 试图
  • 试图传递--msvs_version=2012根据this answer

无上述的工作过NPM。

我已经花了很多年了。有没有人有一个明确的答案是有效的?

+1

它位于C:\ Program Files(x 86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V110目录。由VS2012安装程序放在那里。 VCTargetsPath需要指向那里。 –

+1

我也试过这个,它实际上需要没有'V11.0'的路径,但它仍然没有工作... – Brendan

+1

得到了类似的东西,但在Windows 7上使用VS 2013。为了解决这个问题,我使用了“开发者命令提示符VS2013”​​运行'npm install'。 – yoneal

回答

5

设置以下固定的问题,我

/property:VCTargetsPath="C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120 

由于这个forum

+1

何处指定'/ property'?如果指定为'npm install',则不会传递给MSBuild .. – eXavier

+1

您可以编辑'C:\ Windows \ Microsoft.NET \ Framework \ v \ msbuild.rsp'来设置全局MSBuild属性。 –

+0

我无法编辑C:\ Windows \ Microsoft.NET \ Framework \ v \ msbuild.rsp。我收到警告'请检查此文件是否在另一个程序中打开'但我没有任何其他程序正在运行。 –

40

速战速决我提到的是这样的:

set VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120 
npm install 
+2

如果您的机器上不存在此文件夹,请安装最新的VS社区IDE https://www.visualstudio.com/en-us/products/visual-studio-community-vs.aspx并重新启动。这个新文件夹将被默认设置:C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V140。 – Richard

+5

在我的情况下,必须将V120切换到V140才能正常工作。确保实际检查目录路径在资源管理器中的位置。 – ericgrosse

3

快速笔记对于安装的人:

  1. 的Visual Studio 2012(快递)

  2. 的MSBuild 2012

与问题:

  1. 的MSBuild负载Microsoft.Cpp.Default.props

  2. 的MSBuild无法加载Microsoft.Cpp.props

解决办法是在这里:的MSBuild 设置参数: /属性:VCTargetsPath = “C:\ Program Files文件(x86)的\的MSBuild \ Microsoft.Cpp \ V4.0 \ V110”

+0

我有同样的问题(1),但与Visual Studio 2015. '导入的项目“C:\ Microsoft.Cpp.Default.props”找不到.'因此我认为我应该使用'C:\ Programme文件(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V140'(路径存在),但在哪里设置此MSBuild参数? –

14

最后微软向VS提供much better solution

+1

yup,看起来可以帮助预先安装其他VS的东西 – rudnev

+3

Visual C++ Build Tools的直接链接(上面链接的GitHub评论的主题):http://landinghub.visualstudio.com/visual-cpp-build-tools – apardoe

7

我只是想用最新的答案更新这个问题。您现在不需要安装Visual Studio。

来源:https://github.com/nodejs/node-gyp/issues/629#issuecomment-153196245

说明以下的情况下,源极下降。

  1. 使用默认安装选项安装VC++ Build Tools Technical Preview

    [仅限于Windows 7]需要.NET Framework 4.5.1

  2. 安装Python 2.7,并将其添加到您的PATH:npm config set python python2.7

  3. 启动CMD,然后运行: npm config set msvs_version 2015 --global(这是代替L- npm install [package name] --msvs_version=2015l每时间)。

+1

上面的VC++构建工具链接已损坏。更好的链接在这里:http://landinghub.visualstudio.com/visual-cpp-build-tools – apardoe