Замена драйвера Jet.OLEDB.4.0 для файла dbf на 64-битной машине - PullRequest
2 голосов
/ 20 января 2011

Я недавно перешел на компьютер с 64-битной ОС. В моем приложении, написанном на C # .net, код в DLL пытается открыть файл DBF с помощью драйвера Microsoft.Jet.OLEDB.4.0. Я обнаружил, что OLEDB не поддерживается для 64 бит. Ссылка на эту тему

Я попытался установить новый ACE.OLEDB.12.0. Сначала я установил 32-разрядную версию движка, который не был распознан и получил сообщение об ошибке «Поставщик Microsoft.ACE.OLEDB.12.0 не зарегистрирован на локальном компьютере».

Итак, я попытался установить 64-битную версию ACE.OLEDB, с здесь

Теперь я сталкиваюсь с ошибкой, поскольку мои другие офисные продукты установлены как 32-разрядные продукты Office

Как мне решить эту проблему?

PS: я пытался настроить свое решение для компиляции на платформе x86. Вышло исключение BadImageFormatException.

1 Ответ

1 голос
/ 20 января 2011

OLEDB не поддерживается для 64-битного означает, что вы не можете загрузить его в 64-битный процесс, но если ваш процесс 32-битный, он будет нормально работать на 64-битном компьютере.В Windows имеется очень обширный уровень совместимости, позволяющий 32-битным приложениям работать на 64-битных компьютерах.

Если вам не требуется 64-битная функциональность в вашем приложении (как предполагает ваша линия PS), вам следует настроить компиляцию на x86и используйте с ним 32-битный драйвер Jet.Это должно нормально работать как в 32-, так и в 64-битных системах.

В исключении BadImageFormatException вы, вероятно, пытались загрузить 64-битную DLL в 32-битный процесс.

...