web-dev-qa-db-ja.com

npmインストールエラー:「v120のビルドツール(プラットフォームツールセット= 'v120')が見つかりません」

npm install node-gypの再構築が必要であるため、次のビルドエラーがスローされました。

MSB8020:v120のビルドツール(プラットフォームツールセット= 'v120')が見つかりません。 v120ビルドツールを使用してビルドするには、v120ビルドツールをインストールしてください。または、[プロジェクト]メニューを選択するか、ソリューションを右クリックして[ソリューションの再ターゲット]を選択し、現在のVisual Studioツールにアップグレードすることもできます。

システムインフォメーション

  • Windows 10(x64)
  • Visual Studio 2015
  • ノードv0.12.7
  • npm v2.11.3
  • node-gyp v2.0.1
18
2Toad

tl; dr

Msvs_versionパラメーターを使用します:npm install --msvs_version=2015

Msvs_versionパラメーターが機能しない場合はどうなりますか?

Msvs_versionパラメーターが機能しない場合、おそらくVisual C++ 2015ビルド環境がインストールされていないことが原因です。

Visual C++ビルド環境をインストールする

オプション1:Visual Studio 2015

  1. VS2015のインストール中に、「カスタム」を選択します。または、VS2015を既にインストールしている場合は、Windowsの[プログラムのアンインストールまたは変更]に移動し、リストからVS2015を選択し、[変更]をクリックし、[変更]をクリックします
  2. [プログラミング言語]> [Visual C++]の下にある[Visual C++ 2015の共通ツール]オプションを確認します。
  3. VS2015のインストールを完了します

オプション2:Visual C++ビルドツール2015

VS2015の代替として、Microsoftがリリースした Visual C++ Build Tools 2015 をインストールできます。

  1. VC++のインストール中に、「カスタム」を選択します
  2. 「Windows 8.1 SDK」および「Windows 10 SDK」オプションを確認します
  3. VC++インストールを完了します

Msvs_versionを使用する

Visual C++ 2015ビルド環境がインストールされたので、msvs_version paramを介してnpmに使用するように指示できます。

  1. PowerShellを開く
  2. Msvs_versionパラメーターを使用します:npm install --msvs_version=2015

構成オプション(必須ではありません)

オプションで、コマンドプロンプトでmsvs_versionを指定する代わりに、npmrcまたはpackage.jsonにmsvs_versionパラメーターを追加することにより、常にmsvs_versionパラメーターを含めるようにnpmを構成できます。

npmrc

PowerShellを開き、npm config set msvs_version 2015を実行します。これにより、このパラメーターがユーザーのnpmrcファイルに追加されます。以降、このユーザーとしてnpm installを実行するたびに、msvs_version=2015パラメーターが自動的に含まれます

必要に応じて、異なるWindowsアカウントでログインする予定がある場合、グローバルフラグnpm config set msvs_version 2015 --globalを含めることができ、この設定をマシン上のすべてのアカウントに適用したい

package.json

プロジェクトのpackage.jsonファイルを変更して、以下を含めます。

"config": {
  "msvs_version": 2015
}

以降、npm installを実行するたびに、このプロジェクトではmsvs_version=2015 paramが自動的に含まれます


記事の改訂

  1. v120ツールセットに関するChuckのコメントに触発されたさらなる調査の後に修正された手順(@ChuckWalbournに感謝)
  2. 追加された設定オプション
  3. VC++ Build Toolsオプションを追加
  4. 公式リリースのVC++ビルドツールリンクを更新
44
2Toad

2Toadの答えにコメントを追加したかったのですが、stackoverflowでは許可されません。次のコマンドを使用して、msvs_versionをグローバルに設定できます。

npm config set msvs_version 2015 --global

これにより、各プロジェクトの設定オブジェクトに保存する必要がなくなります。

4
user2129024

他の修正で問題が解決されなかったため、この回答を共有します。私は同じエラーを抱えていましたが、msvsパラメータを設定していました:

npm install --msvs_version=2015

問題を解決していませんでした。私が何をしようとも、ツールセットの間違った場所を探していることがわかりました。

簡単に言えば、MSBuildはVisual Studioにパッケージ化され、.NETにはパッケージ化されなくなったことを学びました。案の定、PATH変数にこのエントリがありました。

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

その結果、間違った(古い)バージョンのMSBuildが呼び出されていました。このエントリを削除し、VS2015に関連する次のパスを追加しました。

C:\Program Files (x86)\MSBuild\14.0\Bin\

問題が解決しました。

2
spryce

私はすでにすべてのVSバージョンをインストールするのに2日間費やしています...

npm install oracledb --msvs_version=2015

多くのエラーをすべて返します。

[..]node-gyp\6.9.1\include\node\v8.h(18): fatal error C1083[..]

を使用して

npm install oracledb --msvs_version=2013

多くの警告を返し、コンパイルしますが、その後は正しく動作しません。

[..]warning C4995: 'v8::Value::ToUint32'[..]

これは、npmモジュールでの私の最悪の経験です。時間の無駄:/

1
Wifsimster

バージョンを2015に設定しても役に立ちませんでした。代わりに2013に設定してみてください。

npm config set msvs_version 201

または

npm config set msvs_version 2015

0
tornord