クリックしてVSプロジェクトからビルドを作成するバッチファイルを作成したいと思います。一日中、私は次の手順を実行します。
次のコマンドを記述してビルドを作成します。
msbuild mySolution.sln/p:configuration = debug
前にコメントしたように、このすべてのプロセスをワンクリックで実行したいと思います。それで、私はそれをするために.batファイルを作成しようとしています。
これは私のバッチファイルのコードです:
set location="C:\myPath\..\MyFolderSolution"
set pathMSBuild = "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe"
@echo off
cls
call %pathMSBuild%
cd %location%
msbuild.exe "lucre.sln" /p:configuration=debug
pause
しかし、バッチファイルを実行しようとすると、次のエラーが発生します。「msbuild」は、内部または外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
それが可能かどうかを知るための手がかりまたは助け、可能であればそれを行う方法は非常に高く評価されます
よろしく!
あなたは正しいディレクトリにいないので、msbuildがあるディレクトリにcdする必要があります。これを試してください:
set pathMSBuild="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\"
@echo off
cls
cd %pathMSBuild%
msbuild.exe "C:\myPath\..\MyFolderSolution\lucre.sln" /p:configuration=debug
pause
または、msbuildディレクトリをパスに追加して、setとcdの行をスキップすることもできます。
どちらの回答もハードコーディングされたパスを使用しますが、これは常に機能するとは限りません。代わりにこれを使用してください:
@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat"
変化する VS100
他のどのバージョンにも、VSの多くのバージョンを同時にサポートするためにこれらの行を1つずつ配置することもできます。
@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat"
@if exist "%VS140COMNTOOLS%vsvars32.bat" call "%VS140COMNTOOLS%vsvars32.bat"
このようにすると、特定のバージョンの.Net FrameworkまたはVisual Studioに依存しなくなります。
Msbuildインストールディレクトリにcdしたくない場合は、次のようにVisual Studio環境変数をロードすることもできます。
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_AMD64
(これも参照 質問 )
MSBuild.exeが配置されているディレクトリをPATH環境変数に追加して、msbuildをどこからでも呼び出すことができます。
したがって、batファイルでは次のようになります。
cd C:\PathToSoultion\
msbuild TheSolutionName.sln /p:configuration=debug
pause
問題がすでに数年先にあることは知っていますが、これが誰かの助けになることを願っています。