Вопрос

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

Это было полезно?

Решение

С 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.
  • Использовать НАнт.Он существовал дольше, чем MSBuild и имеет большую поддержку сообщества, но требует, чтобы вы запустили файл проекта с нуля, а не расширяют существующий, созданный визуальной студией.

НАнт и MSBuild — это самые популярные инструменты для автоматизации сборки .СЕТЬ, и вы можете найти обсуждение плюсов и минусов каждого из них в вопросе о переполнении стека. Лучший инструмент сборки .NET.

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

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

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

Я предполагаю, что ваша установка — 32-битная Windows 7 с установкой Visual Studio 2010 с использованием собственного компилятора x86 и кросс-компилятора x64.Если вы используете 64-битную версию Windows, возможно, вам придется изменить x86_amd64 к amd64 в пакетном скрипте в зависимости от ваших настроек.Это предполагает, что Visual Studio установлена ​​в Программные файлы и ваше решение находится в 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 чтобы собрать версию Release сборки 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 чтобы собрать версию Release сборки 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%

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

  • Построить все -> D:\MySoln\buildall.bat
  • Сборка только версии x86 -> D:\MySoln\buildall.bat x86
  • Сборка только для версии x64 -> D:\MySoln\buildall.bat x64

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

Взгляните на UppercuT.Он имеет большую отдачу от вложенных средств и делает то, что вы ищете, и многое другое.

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

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

http://projectuppercut.org/

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

Вот мой командный файл, использующий мсбилд для ВС 2010 Отладочная конфигурация:

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

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

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

Мне пришлось сделать это для проекта 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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top