Как предоставить неразвернутые зависимости сервису сборки?
Несколько раз назад я задавал вопрос о том, как интегрировать приложение, используя зависимости на сервере сборки, и у меня были вполне удовлетворительные ответы. Сегодня я сталкиваюсь с другим случаем. Для проекта я должен использовать нераспространяемые зависимости (объектная модель RDL для SSRS). Это означает, что готовые сборки не предназначены для развертывания в целях разработки. Но как-то мне нужно...
Моим первым предположением было опубликовать их в GAC. Хорошо, это сработало, и сервер сборки смог скомпилировать проект без проблем. Но потом я понял, что это сломало некоторые приложения, такие как сервер отчетов и построитель отчетов (возможно, это также сломало бы BIDS). Поэтому публикация в GAC, безусловно, не является приличным решением.
Вторым моим предположением было проверить сборки в системе контроля версий. Ну, это могло бы работать, если бы у меня было только 2 сборки на сумму около 1 МБ. Но здесь нужно проверить 23 сборки и 29 МБ, так что это точно тоже не подходит.
Я не знаю много о целях MSBuild и, возможно, это может быть решением, но я действительно не знаю, как его использовать. Я сильно почесал голову, и теперь мне приходится выбирать между поломкой сборок или сломом сервисов!
2 ответа
Как некоторые люди заявили в комментариях, мы, наконец, решили установить контроль над сборками.
Но поскольку мы находимся в среде, в которой нам иногда приходится много двигаться, а это означает, что не всегда в офисе, и нам нужно работать на расстоянии с иногда ненадежным подключением к Интернету, мы решили установить некоторые строгие условия относительно того, будем ли мы контролировать сборки в исходном коде. или мы разворачиваем их на сервере сборки и машинах разработки.
Сборки будут контролироваться источником, если все эти критерии будут выполнены:
- Сборки /Framework не могут быть развернуты / распространяемы
- Развертывание сборок / инфраструктуры может повлиять на стабильность работы локальных машин
- Общий объем развернутых сборок в коллекции проектов не превышает 100 МБ.
Вы можете попробовать использовать другое хранилище только для этих сборок и выполнить извлечение / обновление во время задания сборки.
Также, если вы хотите сохранить его в основном репо, вы можете использовать svn:externals (http://svnbook.red-bean.com/en/1.0/ch07s03.html) для автоматического обновления DLL при обновлении. ваша рабочая копия.