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

У меня есть полное обсуждение событий и делегатов в моей статье events . Для простейшего типа события вы можете просто объявить публичное событие, и компилятор создаст как событие, так и поле для отслеживания подписчиков:

public event EventHandler Foo;

Если вам нужна более сложная логика подписки / отмены подписки , вы можете сделать это явно:

public event EventHandler Foo
{
    add
    {
        // Subscription logic here
    }
    remove
    {
        // Unsubscription logic here
    }
}

50
задан Peter Mortensen 13 May 2013 в 00:13
поделиться

8 ответов

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

devenv solution.sln /build configuration
30
ответ дан Agnel Kurian 7 November 2019 в 10:59
поделиться
\Windows\Microsoft.NET\Framework\[YOUR .NET VERSION]\msbuild.exe

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

msbuild.exe yoursln.sln
30
ответ дан FlySwat 7 November 2019 в 10:59
поделиться

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

более гибкие пути:

  • Read на ссылка MSBuild . Существуют тонны настройки, особенно как только Вы установили Использование Проекта .
  • Задач Сообщества MSBuild NAnt. Это существовало для дольше, чем MSBuild и имеет больше общественной поддержки, но требует, чтобы Вы запустили файл проекта с нуля, вместо того, чтобы расширили существующий, созданный из Visual Studio.
4
ответ дан Peter Mortensen 7 November 2019 в 10:59
поделиться

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

4
ответ дан Community 7 November 2019 в 10:59
поделиться

Изучите инструмент сборки NAnt или MSBuild. Я полагаю, что MSBuild является инструментом сборки для Visual  Studio  2005 и позже. Я - однако, поклонник NAnt...

3
ответ дан Peter Mortensen 7 November 2019 в 10:59
поделиться

С Visual  Studio  2005 , все файлы проекта (по крайней мере, для основанных на.NET проектов) фактические MSBuild файлы, таким образом, можно назвать MSBuild на командной строке и передать его файл проекта.

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

2
ответ дан Peter Mortensen 7 November 2019 в 10:59
поделиться

Я должен был сделать это для проекта 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)

1
ответ дан Sam Hasler 7 November 2019 в 10:59
поделиться

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

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

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

http://projectuppercut.org/

Вот несколько хороших объяснений: UppercuT

2
ответ дан 7 November 2019 в 10:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: