我想使用批处理文件构建.NET解决方案。
我知道我需要使用以下声明
devenv /build release "D:\Source Code\Source\test.sln"
但我不知道如何创建将在VS命令提示符下执行的批处理文件。
答案 0 :(得分:15)
visual studio命令提示符只加载一些变量和路径设置。就是这样,它没有什么特别的,它不是一个不同的命令提示符,它是配置了一些设置的相同命令提示符。您可以在自己的批处理文件中加载相同的设置,方法是在顶部包含以下行:
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86
(显然,对于不同版本的VS,路径可能会略有变化)
您可以将“x86”替换为适合您机器的架构。允许的值为:
那就是说,我认为你实际上并不需要加载所有你需要做的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。