Загрузка неуправляемой библиотеки .NET: обработка состояний ошибок - PullRequest
0 голосов
/ 27 апреля 2011

Я пишу программу, которая использует неуправляемую библиотеку. Какова оптимальная практика для решения ситуации, когда доступный foo.dll имеет несовместимую версию?

Примеры: пользователь запускает программу и имеет более старую версию DLL, чем та, которую ожидает программа. Попробуете ли вы его использовать в любом случае, так как ломать изменения API должно быть редко в зрелой библиотеке? Сразу ошибка вышла? Поддерживать ресурс в программе с местами загрузки для каждой неуправляемой библиотеки DLL? Или лучше включить каждую DLL в собственную папку проекта и настаивать на использовании именно этого файла?

На данный момент я делаю последнее и обновляю DLL новыми версиями проекта, но я бы хотел, чтобы мое программное обеспечение было настолько отказоустойчивым, насколько это практически возможно, и я не знаю каких-либо рекомендаций по использованию неуправляемых библиотек DLL. (кроме «не используйте их, если не нужно»).

1 Ответ

0 голосов
/ 27 апреля 2011

Предполагая, что неуправляемая DLL имеет встроенную информацию о версии при компиляции, вы можете использовать класс FileVersionInfo в System.Diagnostics при загрузке приложения для проверки совместимости версий.

Если не найдено совместимых версий, предупредить пользователя?

http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...