Особенности MSbuild - PullRequest
       7

Особенности MSbuild

2 голосов
/ 22 ноября 2010

Я новичок в MSBuild и у меня есть пара вопросов:

  1. Чего мы можем достичь с помощью MSBuild?

  2. Можно ли проводить тестирование с использованием MSBuild?

  3. Как я могу интегрировать MSBuild с TFS? Каковы преимущества этого?

Ответы [ 4 ]

4 голосов
/ 22 ноября 2010

1 - http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx

2 - Да

3 - TFS Build выполняет цели MSBuild. Это дает вам непрерывную интеграцию, которая предупреждает вас о сбоях ранее.

2 голосов
/ 22 ноября 2010

В качестве примера для # 1, скрипт, над которым я работал на прошлой неделе, выполнил следующие действия:

  1. Очистить и перестроить все необходимые проекты в режиме выпуска
  2. Удалить ненужные файлы (pdbs,случайные xml-файлы и т. д.) и копируются в дополнительных зависимостях (версии выпуска файлов конфигурации и т. д.)
  3. Создана установочная кабина для Windows Mobile
  4. Gzip'd-каба, которая будет включена вдругая кабина (Длинная история ...)
  5. Встроенная вторая кабина
  6. Скопированная учебная документация пользователя в целевой каталог
  7. Сжать целевой каталог для рассылки клиенту.

Итак, теперь весь этот процесс может быть выполнен быстро и воспроизводимо на 100% даже на чужой машине.

Это был мой первый основной скрипт MSBuild, построенный на основетечение двух рабочих дней (не работает над этим все время, в основном, когда люди ждут ответа).Почти все было сделано с MSBuild из коробки.Zip был взят из MSBuild Extension Pack , а обертка вокруг инструмента cabwiz для создания кабин - из блога ctacke .Задача Gzip была создана примерно за 10 минут с минимальными знаниями о том, как писать задачи MSBuild, и библиотеку Gzip из System.Web.Compression.

Быстрый просмотр дает проект msbuildtasks ,которая включает в себя задачу NUnit.Просмотрите список задач на этом сайте, чтобы понять, что можно сделать.

0 голосов
/ 29 июня 2012

Вы говорите, что плохо знакомы с msbuild ... ну, msbuild - это метаязык на основе xml, используемый главным образом для управления компиляцией кода. В качестве метаязыка его можно использовать практически для всего. Основными строительными блоками в нем являются задачи. Помимо встроенных стандартных задач, вы можете писать собственные задачи на c #, и, следовательно, у вас нет ограничений на то, что может делать msbuild. Плюс встроенная задача Exec означает, что вы можете вызывать любой exe.

Так вот, он смотрит на то, что он может сделать, а не на то, что он лучше всего делает. Сила в msbuild заключается в дополнительном аспекте сборки. Как я уже говорил ранее, это прежде всего для управления компиляцией кода. Функция инкрементной сборки позволяет ускорить сборку, поскольку только измененные файлы каскадно выводят их результаты. Это продвинутый аспект msbuild, но в этом его сила.

Можно ли его использовать для тестирования? Ну, как он может сделать что-нибудь, конечно, может. Если вы используете TFS2005 / 8, то вызываемый скрипт msbuild teambuild уже выполняет тестирование и публикует результаты обратно на сервер TFS. (То же самое возможно в TFS2010, но только с использованием шаблона сборки Upgrade).

Интеграция с TFS зависит от того, что вы подразумеваете под этим. Msbuild был движком сборки для TFS2005 / 8, и поэтому он не стал намного более интегрированным, чем это. На TFS2010 он все еще используется для компиляции решений, но WF4 сейчас является движком сборки. Для совместимости все задачи msbuild для TFS2005 / 8 также доступны в TFS2010.

Итак, если вы используете TFS, то с одной стороны вы уже интегрируете msbuild и TFS.

0 голосов
/ 25 ноября 2010

Чего мы можем достичь с помощью MSBuild?

Вы можете почти все, что вам нужно, когда вы вручную развертываете свое приложение. Главным образом:

  • Компиляция последней версии вашего кода

  • Создание и удаление резервных копий

  • Создание определенных файлов конфигурации (web.configs / app.configs) для различных сред

  • Развертывание в любой среде

  • Провести некоторые тесты дыма для развернутых сборок и, если они не удастся, автоматически восстановить резервные копии

  • Если есть что-то, что вы не можете сделать, возможно, кто-то что-то запрограммировал (см., Например, этот полезный сайт http://msbuildtasks.tigris.org), или вы можете запрограммировать это самостоятельно.

Можно ли проводить тестирование с использованием MSBuild?

Да. Вы можете запустить подмножество своих модульных тестов (или все они) и посмотреть результаты, что приведет к сбою сборки или получить предупреждение в случае неудачного тестирования. Пример изображения: http://www.codewrecks.com/blog/wp-content/uploads/2009/06/image-thumb48.png

Как я могу интегрировать MSBuild с TFS? Каковы преимущества этого?

В основном ваш скрипт сборки будет получать последнюю версию кода из TFS. Вы также можете иметь помеченные сборки (например, alpha1, alpha2 и т. Д.) И видеть в каждой сборке, какие наборы изменений были включены.

Основной смысл использования TFS / MSBuilds состоит в том, чтобы иметь непрерывную интеграцию, делающую, по крайней мере, автоматическую ежедневную / ночную сборку или, что еще лучше, автоматическую сборку каждый раз, когда кто-то проверяет какой-то код (если проект небольшой). Таким образом, вы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...