Я пишу программу, которая использует неуправляемую библиотеку.
Какова оптимальная практика для решения ситуации, когда доступный foo.dll имеет несовместимую версию?
Примеры: пользователь запускает программу и имеет более старую версию DLL, чем та, которую ожидает программа. Попробуете ли вы его использовать в любом случае, так как ломать изменения API должно быть редко в зрелой библиотеке? Сразу ошибка вышла? Поддерживать ресурс в программе с местами загрузки для каждой неуправляемой библиотеки DLL?
Или лучше включить каждую DLL в собственную папку проекта и настаивать на использовании именно этого файла?
На данный момент я делаю последнее и обновляю DLL новыми версиями проекта, но я бы хотел, чтобы мое программное обеспечение было настолько отказоустойчивым, насколько это практически возможно, и я не знаю каких-либо рекомендаций по использованию неуправляемых библиотек DLL. (кроме «не используйте их, если не нужно»).