37

Quiero crear un archivo por lotes para Visual Studio 2008 x64 Cross Tools Command Prompt para hacer algo continuamente en mi PC, aquí está el senario.Cómo crear un archivo por lotes para Visual Studio Command Prompt

svn update 
delete some files 
MSBuild MySolutiuon.sln 
delete some files 
xcopy somefiles 
MSBuild AutomateBuildConfiguration.xml /p:Configuration=Release 
xcopy some files 
delete somefiles 
xcopy some files 

create a Zip file if it is possible // it is not neccessary 

que puedo hacer casi todo con un simple símbolo del sistema y MSBuild parts con Visual Studio de comandos, pero como estos dos son diferentes pronta No puedo completar mi senario.

He probado todos los comandos y funcionan muy bien para mí, dame una solución si sabes lo que debo hacer.

yo nos registramos this y no underestand nada Gracias de antemano

Respuesta

61

hacer la primera línea del archivo por lotes configurar el entorno de VS:

call "C:\Program Files\Microsoft Visual Studio 2008\VC\vcvarsall.bat" x86_amd64 
svn update 
delete some files 
MSBuild MySolutiuon.sln 
... more commands ... 

x86_amd64 es el argumento utilizado para x64 Símbolo de comando de Cross Tools.

Una vez que vcvarsall.bat se haya ejecutado, msbuild estará disponible en la ruta para el resto de los comandos en su archivo por lotes.

Alternativamente, si no se está utilizando Visual C++, es posible que prefiera configurar el entorno con esta línea (en lugar de la llamada a vcvarsall.bat):

para VS 2008:

call "%vs90comntools%vsvars32.bat" 

para VS 2010:

call "%vs100comntools%vsvars32.bat" 

para VS 2012:

call "%vs110comntools%vsvars32.bat" 

para VS 2013:

call "%vs120comntools%vsvars32.bat" 

para VS 2015:

call "%vs140comntools%vsvars32.bat" 

para VS 2017:

lote se llama ahora vc no vs.

call "%vs140comntools%\..\..\VC\Auxiliary\Build\vcvars32.bat" 

o mejor

call "%vs140comntools%\VsDevCmd.bat" 
+1

No estoy seguro de que el comando MSBuild se ejecutará correctamente. y en realidad tengo que tener un solo archivo por lotes. lo usaré como herramienta interna de integración continua en la noche, para que yo no pueda ejecutarlo solo. –

+0

Quiero decir que no estoy seguro con este truco que MSBuild detectará como un comando interno, ya que se ejecuta con un simple símbolo del sistema, ¿o no? ¿Cómo hacer esto (sintonizar mi archivo por lotes con el prompt VS)? –

+0

+ 1'd. Aunque no pude encontrar una variable de entorno cmd equivalente para VS2010; "call"% ProgramFiles (x86)% \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat "" funciona para mí. – Christo

4

Para Visual Studio 2010, esto es trabajo grande:

call "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\vcvarsall.bat" x86 
21

Para Visual Studio 2015 :

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86_amd64 

Para Visual Studio 2013 :

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 
2

Y para Visual Studio 2012:

call "C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\vcvarsall.bat" x86_amd64 
0

escribí un archivo bat con los siguientes pasos y funcionó.

call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86_amd64 
echo call complete 
pause 
cd C:\tfs.sbdinc.com 
tf get $/MAC_MBA/CoreApplicationAndReports/Main/Application/Solution /recursive 
echo get complete 
pause 
cd C:\tfs\CoreApplicationAndReports\Main\Application\Solution 
msbuild 
echo build complete 
pause 
devenv mba.sln 
echo ide launch complete 
pause 
Cuestiones relacionadas