[解決済み] MSBuild はなぜ c:♪Program Files (x86)♪Microsoft.Cpp.Default.props のために C:♪Program Files (x86)♪MSBuild を探すのでしょうか?( エラー MSB4019)
2022-07-14 06:12:42
質問
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 set to $(MSBuildExtensionsPath32)¥Microsoft.Cpp¥V4.0 ¥Microsoft¥MSBuild¥V4.0
- msbuild /verbosity:diagを実行すると、MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPath set as good systemと表示されます。 ビルド開始時の環境
- MSBuildExtensionsPath32, MSBuildExtensionsPath64, MSBuildExtensionsPathをシェルで環境変数として設定しても、それらが ビルド開始時の環境
修正方法
- .net 4.5 をアンインストールし、.net 4.0 を修復しました。
- システム変数にMSBuildExtensionsPath32、MSBuildExtensionsPath64、MSBuildExtensionsPathを設定します。
MSBuildExtensionsPath32 が正しく設定されていないようで、MSBuildExtensionsPath を設定しても役に立ちません
SET MSBuildExtensionsPath="C:\Program Files\MSBuild"
この変数の適切な設定をブロックしているものについて、何か思い当たることがあれば教えてください。
どのように解決するのですか?
MS が規定した順序に従わなかった人のために ( Xvの回答 を参照)、それでも問題を解決することができます。
MSBuild は
VCTargetsPath
を使用してデフォルトの cpp プロパティを検索しますが、レジストリにこの String Value がないため検索できません。
文字列の値を確認する
- regedit を起動します。
-
ナビゲータから
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
-
検査する
VCTargetsPath
キーになります。 値は = "でなければなりません。$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"です。
修正するには
-
regedit ナビゲーターを起動し
HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
-
文字列の値を追加します。
VCTargetsPath
-
値を " に設定します。
$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
"です。
注意
HKLM
は
HKEY_LOCAL_MACHINE
.
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン