Каковы различия между MSBuild и TFSBuild

Справочная информация. У нас есть настройка сервера TFS, где я управляю нашим исходным кодом и отслеживаю рабочие элементы и ошибки. У нас также есть настройка CC.Net, чтобы помочь нам сделать CI (в основном просто строить и запускать модульные тесты). Мы используем .net framework 3.5 и VS 2008

Я знаком с MSBuild и использую его в нашем текущем проекте для выполнения многих задач перед развертыванием и развертыванием. Однако я не уверен в цели TFSBuild. Я думаю, что он используется на уровне сервера TFS для выполнения задач сборки. Но я не могу найти хорошую документацию относительно того, как и как я (как разработчик, а не администратор наших TFS... разработчиков имеет только доступ на чтение к TFS-серверу), может использовать TFS Build, чтобы облегчить мои задачи развертывания /CI. Могу ли я использовать TFSBuild, чтобы моя задача была проще и эффективнее, когда я уже использую MSBuild для моего процесса сборки, и CC.Net уже выполняет набор модульных тестов, которые у нас есть? Является ли TFSBuild альтернативой CC.Net? Как насчет интеграции TFSBuild с Visual Studio 2008?

Обновление: как "TeamBuild" вписывается в этот стек. Больше, чем теория, простой пример, который объединяет эти вещи, будет действительно полезен. Сейчас мы просто делаем две вещи: используйте MSBuild для выполнения задач развертывания (обновить конфигурационный файл, информацию о версии, опубликовать приложение на удаленном сервере), а затем CC.Net. Где я могу разместить TeamBuild/TFSbuild в этой картинке. И что еще более важно, мне это нужно? Я понимаю, что у всех разные требования, но может ли это вообще помочь? Одна из веских причин, по которой я получил один из ответов на использование сборки TFS, заключалась в том, чтобы автоматически создавать TFS-билеты в некоторых условиях. Какие вещи вы обычно делаете?

Ответ 1

TFS использует тот же MSBuild 3.5 под капотом для автоматических сборок, которые Visual Studio 2008 использует локально. TFS определяет свою собственную последовательность сборки, поставляя MSBuild с .proj файлом, который импортирует целевые объекты, специфичные для TFS, и обогащает последовательность сборки решения функциями, полезными в среде Team (т.е. Получить последнюю версию из исходного элемента управления, выполнить сборку, создать TFS, если сборка завершилась неудачей и т.д.)

Здесь моя попытка понять все эти рамки построения, предоставив историческую перспективу: (мои догадки и допущения могут быть недействительными, но все равно должны быть полезная концептуальная информация для noobs). Оформить заказ в последнем разделе под названием "Концепции MSBuild, связанные с TFS" - у него есть полезные ссылки.

Ответ 2

MSBuild vs TFSBuild

MSBuild - это технология, которая используется для реальных сборок. "Builds" node в Team Explorer - это XML файл, который вводит базовые параметры, которые будут введены в MSBuild. Когда вы добавляете Build в этот node, он фактически добавит некоторые файлы в ваше дерево управления версиями. Это файлы, которые подключены к MSBuild, которые вы бы настроили.

Вы можете легко автоматизировать свои сборки. Существует инструмент командной строки tfsbuild, который должен находиться в папке% Program Files%\Microsoft Visual Studio 8\Common7\IDE. Вы указываете сервер TFS, командный проект и тип сборки (имя, которое вы создали в "Builds" node). Используйте эту утилиту командной строки и используйте Планировщик заданий в окнах, чтобы вызвать это (Program Files → Accessories → System Tools → Schedule Tasks).

Источник: Форумы MSDN