Перекомпилируйте все зависимости - PullRequest
2 голосов
/ 22 марта 2011

У меня есть простой проект, который используется во многих других решениях.Всякий раз, когда я обновляю этот проект, я должен помнить о том, чтобы перейти к другим решениям, которые используют этот проект, а также перекомпилировать и развернуть.

Есть ли способ автоматизировать это?

Ответы [ 6 ]

4 голосов
/ 22 марта 2011

Если вы используете какой-либо инструмент непрерывной интеграции, например TeamCity , Jenkins или Круиз-контроль , ваши коммиты могут автоматически вызывать другие решения для быть построенным.

Меня всегда беспокоит любое решение, которое не требует перекомпиляции, когда API зависит от вас. Обновление чего-либо, действующего как модуль без перестройки, имеет смысл, но если что-то зависит от изменений, вы действительно хотите убедиться, что это ни к чему не приведет.

Использование CI-сервера позволит вам запустить любой вид тестирования для каждого отдельного решения и уведомит вас о сбое в одном из них. Вы также можете добавить шаги для таких вещей, как упаковка развертывания или, если вам действительно нравится играть с fire, вы можете заставить CI-сервер выполнять развертывание автоматически.

Редактировать: Обычно все это делается на сервере интеграции, но нет никаких причин, по которым вы не можете установить его на локальном компьютере.

0 голосов
/ 22 марта 2011

Помимо настройки сервера сборки, которая запускает сборку / публикацию других проектов, я так не думаю. Если вы хотите проверить программу непрерывной сборки, мы использовали «CruiseControl» (http://cruisecontrol.sourceforge.net/), где я использую для работы, и это была хорошая установка с множеством настраиваемых возможностей.

0 голосов
/ 22 марта 2011

Является ли повторно используемый проект библиотекой классов?Если так, то, что я обычно делаю, это добавляю ссылку на dll в выходной лоток библиотеки классов.Всякий раз, когда я перекомпилирую dll, другие проекты почти сразу обнаруживают его (особенно Intellisense.)

Это не работает для зависимых проектов, которые уже развернуты.

0 голосов
/ 22 марта 2011

Это звучит очень страшно, на самом деле. Вы вносите изменения в один проект, а затем без регрессионного тестирования все его зависимые проекты автоматически перекомпилируются с новой версией и развернуто ?

Если вам удастся найти способ сделать это, я предсказываю большие беспорядки и бедствия.

0 голосов
/ 22 марта 2011

Пометить эти проекты как Build / Deploy в Configuration Manager
Вы, вероятно, упускаете это.

0 голосов
/ 22 марта 2011

Если вы используете любую форму непрерывной интеграции, например круиз-контроль, teamcity, TFS и т. Д., То вы можете легко настроить свой CI для восстановления ваших зависимых решений.

Еще одним менее элегантным решением может бытьлибо есть файл .sln, содержащий все ваши проекты и работающие в этом решении.

В качестве альтернативы, вы можете добавить событие после сборки, которое будет создавать зависимые решения при внесении изменений.

...