Недавно я перешел с 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?
windows-7
microsoft-excel
64-bit
microsoft-office
.net-framework
humpty duMpty
источник
источник
Ответы:
Когда вы компилируете приложение как AnyCPU, программа будет работать как 32-битная на 32-битной и как 64-битная на 64-битной Windows. И когда у вас установлен только 32-битный движок, вы получаете ошибку. Также параллельная установка 32-битного и 64-битного движка не поддерживается.
Решение состоит в том, чтобы явно скомпилировать приложение как x86 (32Bit). Теперь он все время работает как 32-битное приложение и использует 32-битный движок.
источник