找不到“C:\ Microsoft.Cpp.Default.props”

时间:2017-01-17 10:54:47

标签: visual-studio visual-studio-2012 msbuild

我在Visual Studio,2013中创建了一个项目。

项目文件具有以下属性:

ToolsVersion = “12.0”, PlatformToolset = v120。

我安装了Visual Studio 2013和Microsoft Build Tools 2015。 使用MSBuild 12.0成功构建此项目。在尝试使用MSBuild 14.0构建它时,我收到错误

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没有得到评估。如果我在构建之前指定变量VCTargetsPath(值为C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ V120),问题就解决了。

但是,如果路径不同,这种方法不是很方便。有可能以某种方式以更优化的方式解决问题吗?

注册表项及其值:

HKLM\Software\WOW6432Node\Microsoft\MSBuild\ToolsVersions\12.0\VCTargetsPath $([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\V120\'))

14 个答案:

答案 0 :(得分:33)

我花了两个小时解决了这个问题,但是我终于完成了。

以下解决了我的问题:

  1. 在提升的命令提示符下(管理员)运行此命令: npm install --global --production windows-build-tools。 如果您没有npm,建议您安装它,否则将无法正常工作。
  2. 将安装目录(在我的情况下为C:\Program Files (x86)\MSBuild\14.0中)的所有权更改为您的用户,而不是admin。 (属性>安全性>高级)。

答案 1 :(得分:12)

这些步骤解决了我的问题:

  1. 运行npm install --global --production windows-build-tools
  2. 运行npm install --save nan
  3. VCTargetsPath环境变量设置为C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140

答案 2 :(得分:9)

我最近重新安装了Visual Studio 2017,并在尝试安装“ npm java”时遇到此问题。 对我来说解决方法是:

  1. 将ms版本设置为2017:npm config set msvs_version 2017
  2. 将VCTargetsPath环境变量设置为C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
  3. 以系统管理员身份运行命令控制台

答案 3 :(得分:3)

我通过以下方法解决了这个问题:

  1. VCTargetsPath环境变量设置为C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140
  2. 使用管理员进行构建

答案 4 :(得分:2)

对于使用VS 2019的用户:

  

set VCTargetsPath = C:\ Program Files(x86)\ Microsoft Visual Studio \ 2019 \ Professional \ MSBuild \ Microsoft \ VC \ v160

答案 5 :(得分:0)

我尝试了npm install和VCTargetsPath,但都无法正常工作。将Visual Studio升级到最新版本后,终于解决了。

答案 6 :(得分:0)

通过安装适用于Windows 10的Visual Studio Express 2015 解决。

答案 7 :(得分:0)

对于上面的答案不起作用的人,这里是另一种可能的解决方案。

即使安装构建工具或VS 2015都不适合我。所以我尝试直接通过PowerShell(以管理员身份)在下面安装

https://chocolatey.org/packages/visualcpp-build-tools/14.0.25420.1 命令: choco安装visualcpp-build-tools --version 14.0.25420.1

安装完成后,设置环境变量VCTargetsPath = C:\ Program Files(x86)\ MSBuild \ Microsoft.Cpp \ v4.0 \ v140

答案 8 :(得分:0)

请确保在命令中使用--global以便可以在任何地方使用此软件包。 这为我解决了问题

答案 9 :(得分:0)

我无法使用此页面上的所有建议

我将nodejs降级到10.15,并且运行良好

可能不是最好的答案,但它可行

答案 10 :(得分:0)

我通过在VS 2019中加载解决方案而不是在文件资源管理器中双击解决方案名称来解决了这个问题。

答案 11 :(得分:0)

在Visual Studio 2019(从2012年迁移)之外运行MSBuild时,遇到了这类问题。 我解决了他们运行此MSBuild的问题:

"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\msbuild"

(根据您的VS版本和目标体系结构自定义),而不是此版本:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild

在我拥有Visual Studio 2012时所使用的

答案 12 :(得分:0)

当我使用节点版本 14.15.3、安装节点版本管理器、安装较低的节点版本(例如 8.x.x)、切换到它时,这对我来说发生了,这应该可以解决问题。

答案 13 :(得分:-1)

在检查 .vcxproj 文件时,我注意到 ToolsVersion 丢失了。我添加了它,它解决了问题。

之前:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

之后:

<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">