Обратная совместимость и номера версий сборок .Net для архитектур плагинов - PullRequest
1 голос
/ 16 февраля 2012

У меня есть система .Net, которую могут расширить третьи стороны, ссылаясь на предоставленные сборки API.Мои проблемы связаны с обратной совместимостью, а именно я должен убедиться, что всякий раз, когда двоичные неразрывные изменения вносятся в поставляемые сборки API (например, добавляется метод):

  1. Плагины, созданные с использованием старой версии, по-прежнему должны работать при запуске новой версии.
  2. Однако плагины, созданные с использованием новой версии, не должны работать при запуске старой версии (в противном случае это может привести к сбоям во время выполнения, если плагин пытаетсявызовите метод, который не существует)

Из-за второго требования я не могу просто сохранить номера версий одинаковыми - единственный способ, которым я тогда узнаю о выполнении требования 1., - это использование перенаправление привязки , которое требует ведения длинного списка всех номеров предыдущих версий для всех сборок API.Это кажется подверженным ошибкам и утомительным.

Существуют ли альтернативные стратегии для обеспечения разумной обратной совместимости при работе с номерами версий сборки .Net?

...