это нагет пакет с определенной версией (условно v1 и v2)
Есть проект B - это тоже нагет пакет, он ссылается на нагет пакет проекта C версии v1
А есть проект A, он ссылается на нагет пакет проекта B и в то же время напрямую ссылается на нагет проекта C версии v2
Получается вот такая хрень (пикрелэйтыд)
При сборке нагет подставляет везде библиотеку v2
Однако В результате при вызове метода проекта B, который ссылается на проект С v1 Происходит исключение Could not Find Assembley "C" v1
С этим можно как-то бороться из коробки? Или придется обновлять проект B до версии С v2 руками, собирать новый пакет и тогда чтобы заработало?
обновить проект b
То, что это решение - это понятно) Но можно ли по-другому с этим справиться?
как ты две версии либы в один проект собираешься грузить?
если руками добавлять dll то можно добавить псевдоним и все будет работать
https://habr.com/ru/company/jugru/blog/499838/
Version hell — это невозможность использовать зависимость, которая бинарно совместима, но при этом имеет версию, которая не подошла рантайму или другому компоненту, который эти версии проверяет. В .NET, типичное проявление version hell — FileLoadException, хотя файл на диске лежит, но он почему-то не грузится рантаймом.
название для гугла: транзитивные зависимости
и мы возвращаемся к dll hell
Никуда и не уходили
Обсуждают сегодня