web-dev-qa-db-ja.com

Msbuildの正しいバージョンを起動する方法

入力すると...

Msbuild<Enter>

...コマンドプロンプトで、...

Microsoft (R) Build Engine Version 2.0.50727.4927
[Microsoft .NET Framework, Version 2.0.50727.4927]
Copyright (C) Microsoft Corporation 2005. All rights reserved.

Visual Studio 2010 .slnファイルに対してこれを実行すると、エラーメッセージが示すことを除いて、これはすべて非常に適切です。

MyProject.sln(2): Solution file error MSB5014: File format version is not recognized.  MSBuild can only read solution files between versions 7.0 and 9.0, inclusive.
0 Warning(s)
1 Error(s)

呼び出されているMSBuildのバージョンは、私のソリューションファイルを理解できないようです。

私は自分のパスをチェックして、MSBuildがどこから取得されるのかを確認すると思いました。ただし、私のパスのどの部分もMSBuildが見つかる場所を指していないようです。

コマンドラインは、使用しているMSBuildのコピーをどのように見つけますか。また、最新バージョンが使用されるようにこのバージョンを変更するにはどうすればよいですか?

34
Rory Becker

PATH環境のどこかにある必要があります。 「where msbuild」を使用して、msbuildのロード元を判別します。

Visual Studioコマンドプロンプト(2010)ショートカットを使用して、VS 2010およびMSBuild 4.0のパスおよびその他の環境変数を初期化します。

25
Kyle Alons

PATH変数にMSBuild.exeへの参照が含まれていないため、この質問を見つけました。他の誰かがこの問題を抱えている場合、私の解決策は、コマンドプロンプトからVisual Studioツールの環境変数を明示的に登録することでした。

"%VS100COMNTOOLS%"\\vsvars32.bat // VS2010 environment variables
"%VS110COMNTOOLS%"\\vsvars32.bat // VS2012 environment variables
"%VS120COMNTOOLS%"\\vsvars32.bat // VS2013 environment variables

MSBuild.exePATHに登録されました

where msbuild
C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe
40
Aesthete

環境変数 を変更します。

MSBuildpath変数を検索/設定してC:\Windows\Microsoft.NET\Framework\v4.0.30319

明らかに、上記のパスはインストール場所に依存しますが、正確でない場合は近くなります。

1
Finglas

C#6プロジェクトを構築するために、これは私のためにバッチファイルで機能しました

if exist "%ProgramFiles(x86)%\MSBuild\14.0\bin" set MSBUILDLOCATION=%ProgramFiles(x86)%\MSBuild\14.0\bin    

if exist "%ProgramFiles%\MSBuild\14.0\bin" set MSBUILDLOCATION=%ProgramFiles%\MSBuild\14.0\bin

"%MSBUILDLOCATION%\msbuild.exe" "path\to\my\project.csproj"

バージョンの範囲をサポートしたい場合は、バージョン番号(14.0)を簡単に変更したり、バージョン番号(12.0や4.0など)を追加したりできます。

1
Nate Cook