Моя компания имеет общую библиотеку кодов, которая состоит из многих проектов класса libary вместе с поддержкой тестовых проектов. Каждый проект библиотеки классов выводит один двоичный файл, например. Company.Common.Serialization.dll. Поскольку у нас есть скомпилированные, проверенные двоичные файлы, а также исходный код, мы обсуждаем, должны ли наши потребительские приложения использовать ссылки на двоичные или проектные.
Некоторые аргументы в пользу ссылок на проекты:
- Ссылки на проекты позволят пользователям отлаживать и просматривать весь код решения без накладных расходов на загрузку дополнительных проектов/решений.
- Ссылки на проекты помогут справиться с изменениями общих компонентов, внесенными в систему управления версиями, поскольку изменения будут легко идентифицироваться без активного решения.
Некоторые аргументы в пользу двоичных ссылок:
- Бинарные ссылки упростили бы решения и ускорили время загрузки решения.
- Двоичные ссылки позволят разработчикам сосредоточиться на новом коде, а не потенциально отвлекаться на код, который уже испечен и стабилен.
- Бинарные ссылки заставили бы нас надлежащим образом обрабатывать наши материалы, поскольку мы будем использовать общую библиотеку так же, как и те, кто находится вне нашей организации.
- Поскольку бинарная ссылка не может быть отлажена (вступила в нее), можно было бы принудительно реплицировать и исправлять проблемы, расширяя существующие тестовые проекты, а не тестируя и фиксируя их только в контексте приложения-потребителя.
- Бинарные ссылки гарантируют, что параллельная разработка проекта библиотеки классов не будет влиять на приложение-потребитель, поскольку на него будет ссылаться стабильная версия двоичного файла, а не версия для притока. Решением проекта будет решение о том, следует ли включать более новую версию компонента, если это необходимо.
Какова ваша политика/предпочтения, когда дело доходит до использования проектных или двоичных ссылок?