132

msbuild を実行して vc2010 プロジェクトをビルドすると、次のエラーが発生します。

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.
  • msbuild は c:\Program File (x86)\MSBuild にあります
  • HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolVersions\V4.0 VCTargetsPath を $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\ に設定
  • msbuild /verbosity:diag を実行すると、ビルドの開始時に環境として設定された MSBuildExtensionsPath32、MSBuildExtensionsPath64、MSBuildExtensionsPath が良好なシステムとして表示されます
  • MSBuildExtensionsPath32、MSBuildExtensionsPath64、MSBuildExtensionsPath をシェルで環境変数として設定しても、ビルドの開始時に環境として表示されません。

試行された修正

  • .net 4.5 をアンインストールし、.net 4.0 を修復しました
  • システム変数で MSBuildExtensionsPath32、MSBuildExtensionsPath64、MSBuildExtensionsPath を設定します。

MSBuildExtensionsPath32 が正しく設定されていないようで、MSBuildExtensionsPath を設定しても役に立たない

SET MSBuildExtensionsPath="C:\Program Files\MSBuild"

この変数の適切な設定を妨げているものについて何か考えがあれば教えてください。

4

22 に答える 22

50

MS の禁止命令 ( Xv の回答を参照) に従わなかった場合でも、問題を解決できます。

MSBuild は を使用VCTargetsPathして既定の cpp プロパティを見つけますが、レジストリにこの文字列値がないため、見つけることができません。

文字列値を確認する

  • regedit を起動
  • ナビゲーターHKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • キーを検査しVCTargetsPathます。値は = " $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\"でなければなりません

修正するには

  • regedit Navigator を起動してHKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
  • 文字列値を追加VCTargetsPath
  • 値を " $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\"に設定

注:HKLMの略ですHKEY_LOCAL_MACHINE

于 2013-04-25T18:27:28.793 に答える
26

私は最近同じ問題を抱えており、異なるパッケージを異なる順序でインストールした後、非常に面倒になりました。次に、このレポを見つけました- https://github.com/felixrieseberg/windows-build-tools

npm install --global windows-build-tools

ほとんどのノード モジュールをコンパイルするために必要な Python および VS ビルド ツールをインストールします。それは御馳走でした!

于 2017-01-03T23:22:52.093 に答える
13

Windows SDK 7.1 用の Microsoft Visual C++ 2010 Service Pack 1 Compiler Update をMSB4019インストールすると、Windows7 x64 でビルドしていたエラーが修正されました。

その更新の readme には、推奨される順序は

  1. ビジュアル スタジオ 2010
  2. Windows SDK 7.1
  3. ビジュアル スタジオ 2010 SP1
  4. Windows SDK 7.1 用の Visual C++ 2010 SP1 コンパイラ更新プログラム
于 2013-04-25T11:22:00.583 に答える
5

MSBuild は、他のツールにバンドルされることが多い独立したビルド ツールです。.NET (古いバージョン)、Visual Studio (新しいバージョン)、または Team Foundation Build を使用してコンピューターにインストールされている可能性があります。

MSBuild には、それを使用する Visual Studio または TFS のバージョンと、ソース コードがコンパイルされる .NET のバージョンに一致する構成ファイル、コンパイラなど (ToolSet) が必要です。

MSBuild のインストール方法によっては、構成ファイルがこれらのパスの 1 つ以上にある場合があります。

  • C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\
  • C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\
  • C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\

他の回答で説明されているように、レジストリ項目および/または環境変数は ToolSet パスを指している必要があります。

  • HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0 の下の VCTargetsPath キー
  • VCTargetsPath 環境変数。

ツールのインストールなどの操作によって、レジストリや環境変数が正しく設定されないことがあります。他の答えはすべて、それらを修正するためのバリエーションです。

追加しなければならない唯一のことは、末尾の \ を省略したときに環境変数が機能しなかったことです

于 2017-01-22T02:05:21.790 に答える
2

Windows SDK 7.1用のMicrosoft Visual C++ 2010 Service Pack 1 Compiler Updateをインストールするとうまくいきました。ただし、VS 2010 と VS 2010 SP1 を既にインストールしていたため、更新で問題が発生しました。上記のXvで述べた ように、readme.htm ファイルには、「既知の問題」セクションにある最も一般的なインストールの問題に対する解決策が含まれています。一部のインストールではレジストリに書き込みが行われるため、トラブルシューティングを試行するたびに、readme.htm の指示に従ってマシンを再起動します。

于 2014-05-01T18:28:50.313 に答える
0

これは VS2017 環境で見られます。私のビルド スクリプトはVsDevCmd.bat最初に呼び出し、この問題を解決するために、MSBuild を呼び出す前後にVCTargetsPath環境変数を設定します。VsDevCmd

set VCTargetsPath=%VCIDEInstallDir%VCTargets
于 2018-02-12T19:23:39.303 に答える
0

MSBuild for VS 17 で同じ問題に直面していました

次の手順を適用してこれを解決しました。

  • 私の場合、Microsoft.Cpp.Default.propsファイルは次の場所にあったため、レジストリの 値の下に 文字列C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets を作成しましたVCTragetsPathHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets

  • また、Jenkinsを管理ユーザーとして実行しました

これで私の問題は解決しました。

于 2019-08-14T11:47:49.240 に答える
0

VCTargetsPath={c:\...}Hudson ジョブに環境変数として追加しました。

于 2016-04-01T10:34:59.997 に答える