Access Database Engine Проблема

0

Недавно я перешел с 32-разрядной на 64-разрядную версию ПК, на котором установлена ​​32-разрядная версия пакета Office.

У меня есть приложение ( .net 4.0), которое обрабатывает файлы Excel и которое использует Microsoft.ACE.OLEDB.12.0.(для этого я установил Microsoft Access Database Engine 2010 ). Но с тех пор, как я перешел на 64-битную версию, этот обработчик файлов появляется с ошибкой ниже. введите описание изображения здесь

Затем я обнаружил, что это происходит из-за 32-битной версии Access Database Engine, поэтому я попытался установить 64-битную версию Access Database Engine, которая не позволяет мне, поскольку у меня 32-битная версия офисного продукта.

введите описание изображения здесь

Есть ли какая-то работа вокруг этого, кроме использования 64-битного продукта Office?

humpty duMpty
источник
1
скомпилируйте приложение .Net как x86 вместо AnyCPU.
magicandre1981
@ magicandre1981: Отлично, это сработало. Пожалуйста, добавьте в качестве ответа! Также нашел кое-что связанное здесь
huMpty duMpty
@huMptyduMpty сделано. Смотри мой ответ.
magicandre1981

Ответы:

2

Когда вы компилируете приложение как AnyCPU, программа будет работать как 32-битная на 32-битной и как 64-битная на 64-битной Windows. И когда у вас установлен только 32-битный движок, вы получаете ошибку. Также параллельная установка 32-битного и 64-битного движка не поддерживается.

Решение состоит в том, чтобы явно скомпилировать приложение как x86 (32Bit). Теперь он все время работает как 32-битное приложение и использует 32-битный движок.

magicandre1981
источник