我想创建一个批处理文件,以便点击我的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'不被识别为内部或外部命令,可操作程序或批处理文件。
任何线索或帮助,知道是否可能,如果有,如何做到这一点将非常感谢
问候!
答案 0 :(得分:19)
你不在正确的目录中,你需要cd到msbuild所在的目录。试试这个:
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跳过这些行。
答案 1 :(得分:3)
这两个答案都使用硬编码路径,这可能并不总是有效。 请改用:
@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat"
将VS100
更改为任何其他版本,您也可以逐行放置这些行以同时支持多个版本的VS:
@if exist "%VS100COMNTOOLS%vsvars32.bat" call "%VS100COMNTOOLS%vsvars32.bat"
@if exist "%VS140COMNTOOLS%vsvars32.bat" call "%VS140COMNTOOLS%vsvars32.bat"
如果以这种方式完成,您将不再依赖特定版本的.Net Framework或Visual Studio
答案 2 :(得分:2)
如果您不想cd到msbuild安装目录,还可以加载Visual Studio环境变量,如下所示:
call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64
(另见Question)
答案 3 :(得分:2)
您还可以将MSBuild.exe所在的目录添加到PATH环境变量中,以便您可以在任何地方调用msbuild。
所以在bat文件中它可以是这样的:
cd C:\PathToSoultion\
msbuild TheSolutionName.sln /p:configuration=debug
pause
我知道这个问题已经有好几年了,但我希望这可能有助于某些人。