На net framework ты можешь динамически загрузить разные версии сборок в один AppDomain, если они имеют строгое имя (с publicKey) и имеют разные номера версий.
Если какая-то из сборок или обе не имеют publicKey, то тогда ты можешь динамически создать новый AppDomain и загрузить сборки в разные домены.
Но тогда вместе их использовать не получится.
https://stackoverflow.com/questions/20686362/c-sha...
Ещё, если вдруг это какие-то зависимости у тебя требуют разные версии библиотек - ты можешь сделать так называемый binding redirect
А на net (core) ты можешь использовать AssemblyLoadContext из ответа
0x25CBFC4F