2010-07-01 3 views
1

Фон: Я разрабатываю приложение ASP.NET с подключаемой архитектурой на стороне сервера. Я определяю набор интерфейсов в сборке pluginInterfaces .NET.Как добиться обратной совместимости с моей архитектурой .NET.

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

Плагины будут ссылаться на сборку интерфейсов плагина.

Проблема: В будущем я могу обновить свою pluginInterfaces сборку с новой функциональностью, но она остаются 100% обратную совместимость (т.е. интерфейсы не будут изменены). Однако сборка pluginInterfaces будет иметь новый номер версии сборки.

Я хочу, чтобы (сторонние) сборки плагинов продолжали работать. Но они больше не найдут сборку pluginInterfaces, с которой они были построены. Узел pluginInterfaces будет иметь сильное имя, и, следовательно, плагины будут искать версию с точной совпадающей версией сборки.

Вопрос: Каков наилучший способ достичь этого? Для этого нужна политика издателей?

ответ

2

Вы можете попробовать binding redirection.

+0

Я думаю, что нам нужно будет сделать это в будущем, - это поместить наши общие сборки в GAC, и когда мы обновляем их, также устанавливаем dll политики в GAC, чтобы перенаправить ссылки на старые версии на новую версию. – GarethOwen