В моем проекте у меня проблема с иерархией зависимостей. Я использую библиотеку (WriteableBitmapExtensions) в своем коде, и у меня есть другая сторонняя библиотека, которая также использует WriteableBitmapExtensions. Только другая библиотека сильно привязана к определенной, более старой версии, и мой код нуждается в функциональности в своей последней версии.Устранение/использование нескольких версий сборки из сторонних зависимостей
Вот описание зависимостей:
Есть подобные вопросы & решения, но они решают его сборочный связывания во время выполнения с помощью конфигурационного файла, но я не думаю, что это совместимо для Silverlight приложения.
Referencing 2 different versions of log4net in the same solution
Using different versions of the same assembly in the same folder
3rd party libraries refer to different versions of log4net.dll
How to deal with multiple versions of dependencies?
Так есть ли способ, чтобы решить эти различные варианты зависимостей сборки в Silverlight контексте? Если это не так, я считаю, что мои варианты:
1) Скорее всего, я могу убедить поставщика сторонней библиотеки обновить, чтобы использовать последнюю версию WriteableBitmapExtensions, но я бы предпочел не зависеть от они сохраняют актуальность. Тем более, что проект WriteableBitmapExtensions по-прежнему обновляется, и мы часто используем их новые функции.
2) Поскольку WriteableBitmapExtensions является открытым исходным кодом, я полагаю, что я могу перекомпилировать его источник как новую сборку «MyWriteableBitmapExtensions» и использовать ее в своем исходном коде. Но я снова столкнусь с этой проблемой, если две сторонние библиотеки ссылаются на разные версии WriteableBitmapExtensions.
Я подозреваю, что у меня будет вариант 2, но я хотел бы знать, есть ли лучший способ сделать это (например, привязать сборку времени выполнения в других вопросах), прежде чем я завершу/рефакторинг. Благодаря!
Я только на самом деле посмотрел проект WriteableBitmapExtensions после того, как написал этот ответ, и теперь я понимаю, что вы назвали __v1__, на самом деле почти наверняка версией _pre-beta_, поскольку последняя является __v1 beta__. Таким образом, опция (1) становится больше опцией - сторонний поставщик должен быть очень счастлив переиздать с не-бета-версией, когда она станет доступной. –
Теперь я снова отредактировал этот ответ, поскольку он выглядит как привязка сборки Silverlight _doesn't_ :-( –
Да, это тоже было начато. Я ожидаю, что этот конкретный поставщик обновится, они довольно хороши в этом направлении. У меня есть проблемы с другими библиотеками в целом, и мне было интересно, было ли полное/правильное решение (например, привязка к сборке), особенно потому, что опция «open-source, recompile» не всегда доступна, но, похоже, Спасибо за примечание, чтобы обновить идентификаторы GUID и сильное имя, я, возможно, пропустил их. –