Я отвечаю за разработку и поддержку набора общих сборочных платформ, которые используются для создания приложений нашего продукта. Эти сборки являются относительно новыми и находятся в состоянии постоянного изменения по мере внедрения новых функций и т. Д. В результате их весьма часто перестраивают и перераспределяют довольно часто. Я ожидал бы, что это уменьшится, поскольку сборки стабилизируются, но это - то, что это сегодня.
В настоящий момент сборки помещаются в общую папку, в которой проекты разработки могут ссылаться на одни и те же сборки. Применение обновлений так же просто, как замена файлов, и проекты разработки автоматически фиксируют изменения при следующей загрузке и сборке.
Проблема, с которой я столкнулся, заключается в том, что у нас может быть несколько «слоев» сборок, построенных на платформе - например, у нас есть библиотека Core, общая для всех приложений, и библиотека Сервера, которая ссылается на Core и общая для всех приложений Сервера. Все зависимости также необходимо перестраивать каждый раз при обновлении сборок фреймворка, что делает эту задачу очень большой. Я не верю, что смогу использовать GAC, потому что для этого потребуется, чтобы все разработчики обновляли свои системы каждый раз при выпуске новой версии.
Я изучил Политику издателя, но у меня есть некоторые сомнения, что это решит мою проблему по нескольким причинам:
С одной стороны, я не хочу воссоздавать файл каждый раз, когда перестраиваю свои сборки фреймворка - есть ли способ автоматизировать этот процесс?
Мне не ясно, требует ли это, чтобы сборки входили в GAC. Как я уже сказал, я не хочу заставлять моих разработчиков переустанавливать, обновлять и т. Д. Каждый раз, когда мы выпускаем новую версию сборок.
У меня нет никакого контроля над настройкой и настройкой сети, поэтому необходимо избегать всей проблемы "доверия", помещая файлы в общий сетевой ресурс. Кроме того, многие наши разработчики работают иногда подключенным образом, и мы хотели бы, чтобы файлы были доступны для них при отключении.
Цель состоит в том, чтобы сделать эти сборки прозрачными для разработчиков наших приложений, которые их используют. Мы, несомненно, установим эти сборки в GAC на целевой машине, когда приложение будет установлено, но мы не хотим делать это в целях разработки. Также нецелесообразно включать проекты в решение каждого приложения, поскольку они разрабатываются разными командами.
Я не могу себе представить, что я одинок в этих требованиях и надеюсь, что кто-то поделится своим опытом и мудростью, чтобы привести меня к решению. Спасибо!