Как вы автоматизируете сборку Visual Studio? - PullRequest
49 голосов
/ 24 августа 2008

Как превратить сборку Visual Studio, которую вы выполняете в IDE, в сценарий, который можно запустить из командной строки?

Ответы [ 11 ]

30 голосов
/ 24 августа 2008
\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe

Множество параметров командной строки, но самое простое просто:

msbuild.exe yoursln.sln
30 голосов
/ 29 августа 2008

С VS2008 вы можете сделать это:

devenv solution.sln /build configuration
4 голосов
/ 24 августа 2008

NAnt и MSBuild - самые популярные инструменты для автоматизации вашей сборки в .NET , и обсуждение плюсов и минусов каждого из них можно найти в вопросе переполнения стека Лучший инструмент для сборки .NET .

4 голосов
/ 24 августа 2008

Самый простой способ: перейдите в каталог, содержащий файл решения или проекта, и запустите msbuild (при условии, что у вас Visual Studio 2005 или новее).

Более гибкие способы:

  • Читайте о MSBuild ссылка . Есть тонны настройка, особенно один раз вы установили проект MSBuild Community Tasks .
  • Используйте NAnt . Оно существовало дольше, чем MSBuild и имеет больше поддержка сообщества, но требует от вас запустить файл проекта из царапина, а не расширение существующий, созданный Visual Studio.
3 голосов
/ 18 ноября 2014

Вот скрипт, который я использую для полной автоматизации сборки командной строки конфигураций x86 и x64 для того же решения с помощью пакетных сценариев.

Это основано на DevEnv.exe, так как оно работает, если в вашей сборке есть проект Setup (msbuild не поддерживает сборку проектов Setup).

Я предполагаю, что у вас установлена ​​32-битная Windows 7 с установкой Visual Studio 2010 с использованием собственного компилятора x86 и кросс-компилятора x64. Если вы используете 64-битные окна, вам может потребоваться изменить x86_amd64 на amd64 в пакетном скрипте в зависимости от настроек. Предполагается, что Visual Studio установлен в Program Files , а ваше решение находится в D: \ MySoln

Создайте файл с именем buildall.bat и добавьте к нему следующее:

D:
cd "D:\MySoln"

if "%1" == "" goto all
if %1 == x86 goto x86
if %1 == x64 goto x64

:x86
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
goto eof

:x64
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:all
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86 < crosscompilex86.bat
if %ERRORLEVEL% NEQ 0 goto eof
%comspec% /k ""C:\Program Files\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"" x86_amd64 < crosscompilex64.bat
goto eof

:eof
pause

Теперь создайте еще 2 пакетных сценария:

crosscompilex86.bat для сборки версии выпуска сборки x86 и включения этого

devenv MySoln.sln /clean "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x86"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

crosscompilex64.bat для сборки версии выпуска сборки x64 и включения этой

devenv MySoln.sln /clean "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%
devenv MySoln.sln /rebuild "Release|x64"
IF %ERRORLEVEL% NEQ 0 EXIT /B %ERRORLEVEL%

Теперь поместите все 3 пакетных файла в папку с решением вместе с MySoln.sln. Вы можете создавать версии x86 и x64 Release, создав ярлык на рабочем столе, который запускает следующие команды:

  • Build All -> D: \ MySoln \ buildall.bat
  • Build x86 Only Release -> D: \ MySoln \ buildall.bat x86
  • Build x64 Only Only -> D: \ MySoln \ buildall.bat x64

Если вы используете другую конфигурацию, такую ​​как AnyCPU и т. Д., Вам необходимо соответствующим образом настроить вышеуказанные сценарии.

3 голосов
/ 24 августа 2008

Посмотрите на инструмент для сборки NAnt или MSBuild . Я считаю, что MSBuild - это инструмент для сборки Visual Studio 2005 и более поздних версий. Я, однако, фанат NAnt ...

2 голосов
/ 27 апреля 2013

Вот мой командный файл, использующий msbuild для VS 2010 Конфигурация отладки:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
iTegra.Web.sln /p:Configuration=Debug /clp:Summary /nologo
2 голосов
/ 16 мая 2009

Посмотрите на UppercuT. Он приносит много денег, делает то, что вы ищете, и многое другое.

UppercuT использует NAnt для сборки, и это невероятно простая в использовании Build Framework.

Automated Создает так же просто, как (1) имя решения, (2) путь контроля версий, (3) название компании для большинства проектов!

http://projectuppercut.org/

Несколько хороших объяснений здесь: UppercuT

2 голосов
/ 28 августа 2008

Начиная с Visual Studio 2005 , все файлы проекта (по крайней мере, для проектов на основе .NET) являются действительными MSBuild файлами, поэтому вы можете вызывать MSBuild из командной строки и передайте ему файл проекта.

Суть в том, что вам нужно использовать «язык сценариев сборки», такой как NAnt или MSBuild (есть и другие, но сейчас это основные), если вы хотите иметь реальный контроль над процессом сборки.

1 голос
/ 24 августа 2008

Мне пришлось сделать это для проекта C ++ в Visual Studio 2003 , поэтому я не знаю, насколько это относится к более поздней версии Visual Studio:

В каталоге, где создается ваш исполняемый файл, будет файл BuildLog.htm. Откройте этот файл в браузере, а затем для каждого раздела, например:

Creating temporary file "c:\some\path\RSP00003C.rsp" with contents
[
/D "WIN32" /D "_WINDOWS" /D "STRICT" /D "NDEBUG" ..... (lots of other switches)
.\Project.cpp
.\Another.cpp
.\AndAnother.cpp
".\And Yet Another.cpp"
]
Creating command line "cl.exe @c:\some\path\RSP00003C.rsp /nologo"

создайте файл .rsp с содержимым в квадратных скобках (но не включая квадратные скобки) и назовите его как хотите. Кажется, я помню, что у меня были проблемы с абсолютными путями, поэтому вам, возможно, придется убедиться, что все пути относительны.

Затем в свой скрипт сборки добавьте командную строку из файла BuildLog.htm, но с вашим именем файла .rsp:

cl.exe @autobuild01.rsp /nologo

(обратите внимание, что там также будет раздел link.exe и cl.exe)

...