2017-08-27 4 views
1

OS:Microsoft Windows [Version 10.0.14393]別のパスがVS2017でMSBuildのために

VS-バージョン:2017 Community

私はvswhere.exeを実行すると、私はmsbuildへのパスを構築することができますバック以下の公式vswheredocumentationに基づいて取得し、

C:\Users\user\Desktop>"C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" 
Visual Studio Locator version 1.0.62 [query version 1.10.80.60812] 
Copyright (C) Microsoft Corporation. All rights reserved. 
[...] 
installationPath: C:\Program Files (x86)\Microsoft Visual Studio\2017\Community 
[...] 
C:\Users\user\Desktop>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe" 
Microsoft (R)-Buildmodul, Version 15.1.1012.6693 

を私は次のような結果を得る"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat"にある開発者のコ​​マンドプロンプトを起動した場合::これは動作しているようです

C:\Users\user>"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\Tools\VsMSBuildCmd.bat" 
********************************************************************** 
** Visual Studio 2017 MSBuild Command Prompt 
** Copyright (c) 2017 Microsoft Corporation 
********************************************************************** 
C:\Users\user>where msbuild 
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe 

  1. なぜ、どのような私は常にC/C++/VC++プロジェクトを構築するためのmsbuildを呼び出すために最初のパス("C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\MSBuild.exe")を使用
  2. 開発者のコ​​マンドプロンプトを起動した後に返された第二の経路があります。これは間違っていますか?
+1

MSBuildは従来、.NETインストールに含まれていました。しかし、VS2010でC++プロジェクトを構築し、VS2012でWinRTをサポートし、完全に新しいAPIを取得するなど、より多くの仕事をしなければならなくなった場合、スケーリングを止めることができます。だから、それは、VSインストールだけで提供される別個の製品として分離されました。古いものは、コードでMSBuildに依存し、自宅で実行されるビルドサーバーを実行し続けるユーザーのために残されていました。 VS2017またはC++プロジェクトをビルドするには不適切です。欠落した.targetsファイルが最大の障害です。 –

答えて

2

VS2017がmsbuildのローカルコピーに切り替えられました。VS 2015コマンドプロンプトを使用した場合、別のグローバルパスが表示されます。

whereコマンドリストそれはPATHに見つかっていますが、msbuildコマンドを実行したときにのみ、最初のものは、コマンドプロンプトで使用されるすべてのマッチングの実行可能ファイル。

第2のmsbuild.exeは、.NET Frameworkの一部です。これは、.NET Frameworkに統合されて出荷されたMSBuildのバージョンです。このバージョンは、最近のバージョンのVisual Studioによってインストールされたバージョンと比較して古いバージョンです。しかし、互換性の理由から、.NET Frameworkには引き続き含まれる可能性があります。 VS-onlyプロジェクトフォーマットの変更によってインストールされたターゲットとタスクを使用する多くのプロジェクトを構築することもできます。MSBuild自体の変更は互換性がありません(.NETコアプロジェクトで使用される新しいプロジェクトフォーマットなど)。

あなたはいつもいつもVisual Studioに一貫性のある結果を得るために構築msbuild.exeのVS 2017のバージョンを使用する必要があります。

関連する問題