如何使用批处理文件构建解决方案

时间:2010-04-28 12:52:39

标签: .net visual-studio visual-studio-2008 build

我想使用批处理文件构建.NET解决方案。

我知道我需要使用以下声明

devenv /build release "D:\Source Code\Source\test.sln"

但我不知道如何创建将在VS命令提示符下执行的批处理文件。

3 个答案:

答案 0 :(得分:15)

visual studio命令提示符只加载一些变量和路径设置。就是这样,它没有什么特别的,它不是一个不同的命令提示符,它是配置了一些设置的相同命令提示符。您可以在自己的批处理文件中加载相同的设置,方法是在顶部包含以下行:

call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86

(显然,对于不同版本的VS,路径可能会略有变化)

您可以将“x86”替换为适合您机器的架构。允许的值为:

  • 86
  • AMD64
  • 64
  • IA64
  • x86_amd64
  • x86_ia64

那就是说,我认为你实际上并不需要加载所有你需要做的vars /路径就是提供devenv.exe文件的完整路径。你可以试试这个:

"c:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe" /build release "D:\Source Code\Source\test.sln"

(同样,对于不同版本的visual studio,路径会发生变化)

答案 1 :(得分:4)

下面的示例批处理文件将通过在注册表中查找包含devenv.exe的安装目录(对于VS2005,可以轻松地适用于其他版本)并执行devenv.exe。这是你在找什么?

@echo off

CALL :GETVS2005DIR
IF "%VS2005DIR%" == "" GOTO NOVS2005
IF NOT EXIST "%VS2005DIR%" GOTO NOVS2005

%VS2005DIR%devenv.exe ...
GOTO :EOF

:GETVS2005DIR
for /f "tokens=1,2* delims= " %%i in ('reg query HKLM\Software\Microsoft\VisualStudio\8.0 /v InstallDir') do set VS2005DIR=%%k
GOTO :EOF

:NOVS2005
echo.
echo Visual Studio 2005 installation directory not found
echo.
GOTO :EOF

另请注意,只要您的解决方案不包含安装项目,您通常就可以使用MSBUILD构建它,这更简单,适用于未安装Visual Studio的计算机:

REM Check MsBuild is available (this is for V2.0, use a different version if desired)
SET MSBUILD=%WINDIR%\Microsoft.NET\Framework\v2.0.50727\MsBuild.exe
IF NOT EXIST "%MSBUILD%" GOTO NOMSB

"%MSBUILD%" MySolution.sln /t:rebuild /p:configuration=Debug /verbosity:quiet 
GOTO :EOF

:NOMSB
echo. 
echo MSBUILD not found 
echo. 
GOTO :EOF 

答案 2 :(得分:0)

不确定我是否理解这个问题。

只需创建一个名为test.bat的文件,将上面写的语句添加到该文件中,然后打开VS命令提示符并输入[pathtobatfile] \ test.bat。