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?


1
скомпилируйте приложение .Net как x86 вместо AnyCPU.
magicandre1981

@ magicandre1981: Отлично, это сработало. Пожалуйста, добавьте в качестве ответа! Также нашел кое-что связанное здесь
huMpty duMpty

@huMptyduMpty сделано. Смотри мой ответ.
magicandre1981

Ответы:


2

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.