Как справиться с нарушением сборки внешних зависимостей с помощью сервера непрерывной интеграции? (Например, Crystal Reports с TeamCity) - PullRequest
1 голос
/ 13 декабря 2010

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

(8, 7): ошибка CS0246: не удалось найти тип или имя пространства имен 'CrystalDecisions' (отсутствует директива using или ссылка на сборку?)

Итак, я не совсем уверен, что здесь делать правильно.

  1. Должен ли я установить Crystal Reports распространять и просто оставить его там навсегда?
  2. Должен ли я настроить мой построить так, чтобы он установил Crystal Отчеты перед компиляцией и удаляет после того, как все тесты завершенным?
  3. Какой-то другой вариант I не знаете о?

Опция (1) может показаться проблемой, поскольку у меня может быть несколько проектов, для которых требуются разные версии Crystal Reports, и, возможно, я не могу установить их все. Опция (2) выглядит так, как будто это возможно через командную строку. Я предполагаю, что это нормальный способ сделать это?

Спасибо

1 Ответ

5 голосов
/ 13 декабря 2010

Чтобы ответить на ваш вопрос лаконично, вы должны установить распространяемый файл в каждом блоке, который должен компилировать кодовую базу, включая агенты сборки TeamCity, и оставлять его там на неопределенный срок (с этого момента вам нужно только коснуться этого пакета сноваобновить его до более поздней версии, как может потребоваться вашему приложению).

Обычно сервер TeamCity (и / или его агенты сборки, если используется модель распределенной CI) необходимо настроить с упрощенной средой разработки и/ или установка программного обеспечения.Иными словами, для компиляции приложения агенту сборки потребуются те же ресурсы, что и для среды разработки, за исключением полной установки IDE (вероятно, вместо этого вы используете msbuild или nant) по тем же причинам.что среда разработки нуждается в ресурсах.Такие ресурсы включают, но не ограничиваются:

  • Сама кодовая база;весь исходный код, файлы конфигурации и файлы содержимого / встроенных ресурсов.
  • Целевая версия .NET Framework и любая другая версия, которую вы хотите явно поддерживать (например, 3.5 при использовании 4.0)
  • Внешние библиотеки, такие как платформы ORM и IoC, NUnit, настраиваемые поставщики данных, такие как SqLite, и, да, распространяемые файлы, такие как Crystal Reports.Это включает регистрацию GAC по мере необходимости.
  • Правильная структура папок для входов, выходов, ссылок на сборки и т. Д., Идентичная среде разработки.

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

...