2014-01-12 170 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