Microsoft. Струя. OLEDB.4.0' поставщик не регистрируется на локальной машине

Я создал приложение Windows, разработанное в.NET 3.5 в сервере Windows 2008 на 32 бита. При развертывании приложение в сервере на 64 бита оно показывает ошибку "Microsoft. Струя. OLEDB.4.0' поставщик не регистрируется на локальной машине".

Таким образом, как решение этой проблемы, я изменил свойство сборки проекта к X86, так, чтобы это создало в режиме на 32 бита, и восстанавливать проект в машине на 32 бита. Но, тот же проект использует другие драйверы DB (DB2, SQL и т.д.) для соединения с другими базами данных. Таким образом, когда я развернул свое приложение снова в ОС на 64 бита, оно выдает исключение, "Предпринятое для загрузки 64-разрядного блока на 32-разрядной платформе".

Я использую Microsoft. Струя. Драйвер OLEDB.4.0, чтобы читать и записать в Excel (.xls)

183
задан skolima 30 January 2012 в 23:40
поделиться

2 ответа

Я нашел решение этой проблемы. Проблема, которую я описал в своем вопросе, возникла в основном из-за несовместимости драйвера Microsoft.Jet.OLEDB.4.0 в 64-битной операционной системе.

Итак, если мы используем Microsoft.Jet.OLEDB.4. драйвер .0 в 64-битном сервере, нам приходится заставлять наше приложение встраиваться в 32-битный режим (Вот ответ, который я нашел, когда обширно искал эту известную проблему), и это приводит к поломке другой части моего кода.

К счастью, теперь Microsoft выпустила 64-битный совместимый 2010 Office System Driver , который может быть использован в качестве замены традиционного драйвера Microsoft.Jet.OLEDB.4.0. Он работает как в 32-битных, так и в 64-битных серверах. Я использовал его для работы с файлами Excel, и он отлично работал в обеих средах. Но этот драйвер находится в BETA.

Вы можете скачать этот драйвер с Microsoft Access Database Engine 2010 Redistributable

231
ответ дан 23 November 2019 в 06:00
поделиться

Для Jet нет 64-битного провайдера. Если вы хотите поддерживать несколько исходных текстов БД, включая Jet to Excel, вам понадобится по крайней мере эта часть вашего приложения для запуска в 32-битном процессе.

Ошибка, которую вы получаете, когда компилируете для x86, немного странная. Я не понимаю, как вы в конечном итоге будете ссылаться на 64-битные сборки в этом случае.

-2
ответ дан 23 November 2019 в 06:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: