web-dev-qa-db-ja.com

MSBuild15ツールのバージョンは受け入れられません

Visual Studio 2017用のMSBuild(15.4.0)ツールをビルドサーバーにインストールしました。これを行うには、 Visual Studio Downloads から「BuildTools for VisualStudio2017」というタイトルのリンクを使用しました

MSBuild.exeへのパスは次のとおりです。

C:\ Program Files(x86)\ Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin

このパスを環境変数「パス」に追加しました。

ビルドタスクの本体として次のPowerShellスクリプトがあります。

msbuild '..\MyApplication.sln'/t:Build /tv:15.0/p:GenerateBuildInfoConfigFile = false/p:Configuration = Release/p:RunCodeAnalysis = True /p:VisualStudioVersion=15.0

しかし、これが実行されると(すべてTeamCityによって処理されます)、ログに次のことがわかります。

MSBUILD:エラーMSB1040:ToolsVersionが無効です。ツールバージョン「15.0」は認識されません。使用可能なツールのバージョンは、「2.0」、「3.5」、「4.0」です。

documentation は、15.0が正しいことを示しています。

[〜#〜] edit [〜#〜]2017年のドキュメントから MSBuild 15の新機能 次のように記載されています。

このバージョンのツールのMSBuildToolsVersionは15.0です。アセンブリのバージョンは15.1.0.0です。

ただし、2017年のドキュメント MSBuildコマンドラインリファレンス には次のように記載されています。

MSBuild4.5の場合、バージョン2.0、3.5、および4.0に次の値を指定できます。 4.0を指定する場合、VisualStudioVersionビルドプロパティは、使用するサブツールセットを指定します。詳細については、ツールセット(ToolsVersion)のサブツールセットセクションを参照してください。

だから私は命名法に少し混乱しています:MSBuild15またはMSBuild4.5 ...?

6
DrGriff

私はついに修正を見つけました。間違ったパスでした。

解決策は、上記のPowerShellラインを次のように変更することでした。

$msbuild = 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe'
    & msbuild '..\MyApplication.sln' /t:Build /m /p:GenerateBuildInfoConfigFile=false /p:Configuration=Release /p:RunCodeAnalysis=True /p:VisualStudioVersion=15.0
3
DrGriff