Как автоматизировать сборку Visual Studio?
Как превратить сборку Visual Studio, выполняемую в среде IDE, в сценарий, который можно запустить из командной строки?
11 ответов
\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.
вот сценарий, который я использую для полной автоматизации сборки командной строки конфигураций 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) название компании для большинства проектов!
вот некоторые хорошие объяснения: апперкот
вот мой пакетный файл с помощью в 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). Надеюсь, это поможет, любые отзывы приветствуются.