По умолчанию DLL загружаются по требованию. Это означает, что вы не можете гарантировать, из какого каталога они будут загружаться. Это распространенная проблема среди модульных приложений, для которой нет готового рецепта. По сути, это зависит от требований.
Некоторые вещи, которые вы можете сделать:
- GAC Common.dll в целевой среде. Это позволит вам централизованно управлять версиями этой DLL.
- Выпускать все при каждом изменении Common.dll (как вы уже упоминали).
Мы выбрали номер 2 (мы рассматриваем наш «Common.dll» как сборку контракта, которая редко изменяется), чтобы сохранить наши развертывания xcopy без изменений.
Номер 1 может иметь больше смысла, если вы ожидаете, что отток кода на Common.dll будет высоким или вы хотите, чтобы графики развертывания модулей были полностью автономными (например, если модули разрабатывались и разворачивались отдельными группами с отдельной сборкой). и исходные хранилища, например).
Редактировать : Похоже, у Silverlight есть что-то, чтобы обеспечить вариант gcopy для подхода GAC. Ответ ChrisF, вероятно, такой же, как и в Silverlight (мы делаем WPF, так что это немного по-другому). Я оставлю это здесь для потомков.