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.
試行した修正
MSBuildExtensionsPath32が適切に設定されておらず、MSBuildExtensionsPathを設定しても役に立たないようです
SET MSBuildExtensionsPath="C:\Program Files\MSBuild"
この変数の適切な設定を妨げているものがあれば、私に知らせてください。
MSの禁止された順序に従わなかった人( Xvの答え を参照)でも、問題を解決できます。
MSBuildはVCTargetsPath
を使用してデフォルトのcppプロパティを見つけますが、レジストリにこの文字列値がないため、できません。
文字列値を確認してください
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
へのナビゲーターVCTargetsPath
キーを調べます。値は「$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
」である必要があります修正するには
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
に起動しますVCTargetsPath
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
」に設定します注:HKLM
はHKEY_LOCAL_MACHINE
を表します。
MSBuildを呼び出すコマンドラインツールを使用してcocos2d-xアプリケーションを公開すると、この問題が発生しました。 Win 7 64ビット、VS2013 Express、cocos2d-xバージョン3.3、.NET Framework 4.5をインストールして使用しています。
Cocos.py publishコマンドを実行する前に以下を設定することで問題を修正しました。
SET VCTargetsPath=C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120
私は最近同じ問題を抱えており、異なるパッケージを異なる順序でインストールした後、非常に面倒になりました。その後、私はこのレポを見つけました- https://github.com/felixrieseberg/windows-build-tools
npm install --global windows-build-tools
ほとんどのノードモジュールのコンパイルに必要なPythonおよびVSビルドツールをインストールします。うまくいきました!
インストール Windows SDK 7.1用Microsoft Visual C++ 2010 Service Pack 1コンパイラー更新 Windows7 x64でビルドしていたMSB4019
エラーを修正しました。
その更新のReadmeには、推奨される順序は
64ビットシステムでは、MSBuildはデフォルトで次のプロパティになります(C:はSystemDriveです)。
MSBuildExtensionsPath = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath32 = C:\Program Files (x86)\MSBuild
MSBuildExtensionsPath64 = C:\Program Files\MSBuild
そうでない場合は、カスタムサードパーティのオーバーライドターゲットがインストールされているか、MSBuildインストールが破損していることを意味します。
試すべきこと:
MSBuildExtensionsPath
を手動で設定します(64ビットマシンのx86
部分に注意してください)ここでの回答の多くは、Visual Studioの古いバージョンに適用されます。 Visual Studio 2017 Communityバージョンを使用している場合、私にとってうまくいったのは、VCTargetsPath
という環境変数を設定し、
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets
Visual Studio 2019 Communityバージョンを使用している場合、
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160
ここでの他の答えは、この変数をc:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140
に設定しましたが、Visual Studioのインストールでは、MSBuildフォルダーにMicrosoft.Cppというフォルダーがありませんでした。そのため、上記のパスがVisual Studio 2017のコミュニティバージョン用であるという事実と同様に、これにも留意してください。
また、Visual Studio 2017 Communityバージョンを使用している場合は、環境変数のMSBuildパスがMSBuildの正しいバージョンを指していることを確認してください。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin
Visual Studio 2019 Communityバージョンを使用している場合、
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin
Visual Studio 2015エディションでこの問題が発生しました。 cmakeを使用してプロジェクトを生成すると、このエラーが発生しました。
エラーMSB4019:インポートされたプロジェクト「D:\ Microsoft.Cpp.Default.props」が見つかりませんでした
文字列を追加して修正しました
VCTargetsPath
価値あり
$(MSBuildExtensionsPath32)\ Microsoft.Cpp\v4.0\V140
レジストリパス内
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0
パスを次のように設定する以外、私にとっては何も機能しませんでした:
C:\Program Files\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0
MSBuildキーのレジストリエントリは正常に機能しました。実行するMSBuildのバージョンに応じて、64ビットまたは32ビットのブランチに対して実行する必要があることを覚えておくことが重要です。 MSBuildの異なるバージョンで問題が発生する可能性があるため、環境変数の使用はお勧めしません。
このレジストリファイルは、両方の場合にそれを修正します。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\10.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\11.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\12.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0\14.0]
"VCTargetsPath"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
"VCTargetsPath10"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath10)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\'))"
"VCTargetsPath11"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath11)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V110\\'))"
"VCTargetsPath12"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath12)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V120\\'))"
"VCTargetsPath14"="$([MSBuild]::ValueOrDefault('$(VCTargetsPath14)','$(MSBuildExtensionsPath32)\\Microsoft.Cpp\\v4.0\\V140\\'))"
他のツールと頻繁にバンドルされる独立したビルドツールのMSBuild。 .NET(古いバージョン)、Visual Studio(新しいバージョン)、またはTeam Foundationビルドでコンピューターにインストールされている場合があります。
MSBuildには、それを使用するVisual StudioまたはTFSのバージョンと、ソースコードがコンパイルされる.NETのバージョンに一致する構成ファイル、コンパイラーなど(ToolSet)が必要です。
MSBuildのインストール方法に応じて、構成ファイルはこれらのパスの1つ以上にある場合があります。
他の回答で説明されているように、レジストリ項目または環境変数ポイントは、ツールセットパスを指している必要があります。
場合によっては、ツールのインストールなどの操作により、レジストリや環境変数が誤って設定されたままになることがあります。他の答えは、それらを修正するためのすべてのバリエーションです。
追加する必要があるのは、後続の\を中断したときに環境変数が機能しなかったことだけです
インストール Windows SDK 7.1用Microsoft Visual C++ 2010 Service Pack 1コンパイラー更新 私のために働いた。ただし、VS 2010およびVS 2010 SP1が既にインストールされているため、更新プログラムで問題が発生しました。上記の Xv で述べたように、readme.htmファイルには、「既知の問題」セクションのインストールに関する最も一般的な問題の解決策が含まれています。一部のインストールではレジストリに書き込むため、トラブルシューティングを試行するたびにreadme.htmの指示に従い、マシンを再起動します。
ハドソンの仕事に環境変数としてVCTargetsPath={c:\...}
を追加しました。
VS 17のMSBuildで同じ問題に直面していました
次の手順を適用することでこれを解決しました。
私の場合、Microsoft.Cpp.Default.props
ファイルはC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
にあったので、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
の下のレジストリに値C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\Common7\IDE\VC\VCTargets
でVCTragetsPath
文字列を作成しました
また、Jenkinsを管理者ユーザーとして実行しました
これで問題が解決しました。
私はVS2017環境でこれを見ています。ビルドスクリプトは最初にVsDevCmd.bat
を呼び出し、この問題を解決するために、VCTargetsPath
の後、MSBuildを呼び出す前に、VsDevCmd
環境変数を設定します。
set VCTargetsPath=%VCIDEInstallDir%VCTargets
上記のVS2017/2019についてのChris Gongの回答に追加します(まだコメントの許可がありません)。
Visual Studio全体ではなくVS 2019 Build Toolsがインストールされている場合、ファイルパスはわずかに異なります。 VCTargetsPathは
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\
終了するバックスラッシュにも注意してください-少なくとも私の場合は必要です(TFS2017、VS2019 Build tools)。 PATHエントリへの対応する変更も。
これは、インストールされているMSBuildツールセットとレジストリ設定の不一致が原因です。次の1つ以上を実行した場合に発生する可能性があります。
安全で信頼できる唯一の解決策は、OSを再インストールすることです。プロジェクトのビルドに複数のバージョンのVisual Studioが必要な場合は、最初に最も古いバージョンをインストールします。次に、1つのツールを使用してビルドできるようにコードを修正します。そうしないと、あなたや同僚がすぐに同じ混乱に陥ります。
これが選択肢ではない場合は、最初に https://stackoverflow.com/a/41786593/2279059 を読んで、問題とさまざまな「解決策」が実際に何をしているのかを理解してください。次に、Visual Studioのバージョンとセットアップに応じて、他の回答またはそれらのバリエーションのいずれかが最終的に役立つ場合があります。
さらにいくつかのヒント:
見つかったMSBuild.exeファイルのC:\ Windows\Microsoft.NETフォルダーを再帰的に掘り下げた後、MSBuildを%PATH%に配置するビルドスクリプトを記述することで、このエラーに遭遇しました。最後に見つかったヒットは、パスに置かれたディレクトリでした。 dir
コマンドはFramework
の後にFramework64
フォルダーにヒットするので、パスに64ビットMSBuildのいずれかを配置していました。 Visual Studio 2010ソリューションを構築しようとして、検索文字列をC:\Windows\Microsoft.NET
からC:\Windows\Microsoft.NET\Framework
に変更して、32ビットMSBuild.exeを作成しようとしていました。これで、ソリューションファイルがビルドされます。
レコードの場合、ファイルMicrosoft.Cpp.Default.props
はenv var VCTargetsPath
を変更し、その変数の以降の使用法を誤ったものにすることができます。私はその問題を抱えており、VCTargetsPath10
とVCTargetsPath11
をVCTargetsPath
と同じ値に設定することで解決しました。
これは、使用しているVSバージョンに応じて調整する必要があります。