Как построить решение, используя пакетный файл - PullRequest
9 голосов
/ 28 апреля 2010

Я хочу создать решение .NET, используя командный файл.

Я знаю, что мне нужно использовать следующее утверждение

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

Но я не знаю, как создать пакетный файл, который будет выполняться в командной строке VS.

Ответы [ 3 ]

15 голосов
/ 28 апреля 2010

Командная строка Visual Studio просто загружает некоторые переменные и параметры пути. Вот и все, ничего особенного, это не другая командная строка, это та же самая командная строка с некоторыми настройками. Вы можете загрузить те же настройки в свой пакетный файл, добавив следующую строку вверху:

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

(Очевидно, что для разных версий VS путь может немного измениться)

Вы можете заменить «x86» соответствующей архитектурой для вашей машины. Допустимые значения:

  • x86
  • amd64
  • 64
  • ia64
  • x86_amd64
  • x86_ia64

Тем не менее, я не думаю, что вам на самом деле нужно загружать все переменные / пути, все, что вам действительно нужно, это указать полный путь к файлу devenv.exe. Вы можете попробовать это вместо этого:

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

(Опять же, путь будет меняться для разных версий Visual Studio)

4 голосов
/ 28 апреля 2010

Пример пакетного файла ниже обнаружит каталог установки, который содержит 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 
0 голосов
/ 28 апреля 2010

Не уверен, что понимаю вопрос.

Просто создайте файл с именем test.bat, добавьте в него файл, который вы написали выше, а затем просто откройте командную строку VS и введите [pathtobatfile] \ test.bat.

...