Как автоматизировать сборку Visual Studio?

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

11 ответов


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

devenv solution.sln /build configuration

\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe

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

msbuild.exe yoursln.sln

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

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

  • Читать далее С помощью MSBuild ссылка. Есть куча настройка, особенно один раз вы установили Проект Задач Сообщества MSBuild.
  • использовать NAnt. Она существовала более MSBuild и больше сообщество поддержка, но требует вас чтобы запустить файл проекта из царапина, а не расширение существующий, Visual Studio-созданный.

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


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


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

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

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

создайте файл с именем buildall.летучая мышь!--9--> и добавьте к этому:

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.летучая мышь!--9--> для создания версии 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.летучая мышь!--9--> чтобы построить версию выпуска 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.ФСЛ. Вы можете создать версии x86 и x64, создав ярлык на рабочем столе, в котором выполняются следующие команды:

  • Создать Все -> D:\MySoln\buildall.летучая мышь!--9-->
  • только для сборки x86 - > D:\MySoln\buildall.летучая мышь х86
  • построить x64 выпуск только -> D:\MySoln\buildall.bat x64

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


взгляните на апперкот. Он имеет много взрыва для вашего доллара, и он делает то, что вы ищете, и многое другое.

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

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

http://projectuppercut.org/

вот некоторые хорошие объяснения: апперкот


вот мой пакетный файл с помощью в MSBuild для VS 2010 отладка конфигурации:

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" 
iTegra.Web.sln /p:Configuration=Debug /clp:Summary /nologo

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

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


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

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

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 файл, но с вашим .РСП именем:

cl.exe @autobuild01.rsp /nologo

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


более простой способ-изменить конфигурацию проектов и решений VS 2015: Перейдите на вкладку Инструменты - > Параметры - > проекты и решения -> сборка и запуск -> при запуске, когда проекты устарели (выберите Всегда строить). Вуаля!

теперь ваша IDE автоматически создаст ваш проект при его запуске (F5). Надеюсь, это поможет, любые отзывы приветствуются.