Получение Microsoft.jet.oledb.4.0 или microsoft.ace.oledb.12.0 для работы на 64-битной машине Windows 7 - PullRequest
2 голосов
/ 15 марта 2012

У меня есть приложение, которое было построено на 32-битной машине с Windows XP. EXE-файл приложения без проблем работает на XP 32-битных компьютерах. Тем не мение; он не будет работать на 64-битной машине с Windows 7. Когда я пытаюсь запустить его в Windows 7, я получаю следующую ошибку:

Поставщик Microsoft.jet.oledb.4.0 не зарегистрирован на локальном компьютере.

Я где-то читал, что Microsoft.Jet.Oledb.4.0 нельзя использовать на 32-битных машинах. Следовательно; Я изменил строку подключения в своем конфигурационном файле, чтобы установить для поставщика данных значение microsoft.ace.oledb.12.0. Я опубликовал свои файлы и попытался запустить их на компьютере с Windows 7. Я получил следующую ошибку:

Microsoft.ace.oledb.12.0 не зарегистрирован на локальном компьютере.

Мое приложение было преобразовано из Visual Studio 2005-2010 и запрограммировано на c #.

Есть предложения?

Спасибо!

Ответы [ 3 ]

3 голосов
/ 03 августа 2012

100% рабочий раствор

Когда вы запускаете приложение .NET - и я знаю это - на своем компьютере с 64-разрядной версией, это связано с тем, что Microsoft не поддерживает JET в 64-разрядных версиях Windows за пределами Windows 2003.

Итак, что делать? Проще говоря, вам нужно убедиться, что сборка написана с ориентацией на «x86», а не на «Любой ЦП» или «x64» в Configuration Manager, перестроить сборки, и вам будет хорошо идти :-)

2 голосов
/ 15 марта 2012

Jet DB (MS Access, AKA Microsoft.Jet.OLEDB.4.0) доступен только в 32-разрядной версии. 64-битной версии нет. Вы должны настроить таргетинг на Win32 платформу или перейти на другую базу данных.

UPD. Похоже, что на него распространяется предыдущий пост: Поставщик Microsoft.Jet.OLEDB.4.0 'не зарегистрирован на локальном компьютере

Что касается "ACE", вам, возможно, понадобится установить дополнительный драйвер:

0 голосов
/ 15 марта 2012

По умолчанию .NET-приложения настроены на работу как 32-битных, так и 64-битных приложений, в зависимости от архитектуры операционной системы, обнаруженной при запуске.

Однако Microsoft.Jet.OLEDB.4.0 недоступен в 64-разрядной версии и недоступен для 64-разрядных приложений.

Решение состоит в том, чтобы установить тип платформы в Visual Studio равным «x86» (32-разрядный) до компиляции, чтобы он всегда работал как 32-разрядное приложение, даже если он работает на64-битная операционная система.

...