Компиляция зависимых от OLEDB исполняемых файлов на x64 - PullRequest
2 голосов
/ 13 января 2012

Я скомпилировал свой исполняемый файл, который использовал библиотеки Access Database Engine в Windows XP 32bit.Запуск этого на ОС Win7 x64 дал мне ошибку, что компоненты OLEDB не были зарегистрированы.

Я попытался установить AccessDatabaseEngine x64, и это устранило проблему.Однако на другой машине с установленной Win7 x64 и 32-битной версией Office 2007 я не позволил бы установить AccessDatabaseEngine x64, и поэтому мне оставалось скомпилировать проект на этой целевой машине (в VS2010 c #) с Env как x64 и целевым CPU какx86.Это решило проблему.

Мой вопрос: почему это работает?В чем причина этого?

Спасибо.

1 Ответ

0 голосов
/ 13 января 2012

Ответ на ваш вопрос о том, что вы говорите, означает, что для одной это другая ОС, но это не должно иметь значения ... реальная проблема здесь в том, что установлены 2 разные версии Microsoft .. вам придется либо

  1. GAC версия или ссылка на версию целевой машины
  2. Установите для параметра «Копировать локально» .DLL в рабочей версии целевую версию. Это похоже на то, где ваши DLL будут находиться в папке «Debug / Bin» или «Debug / Release», где находится папка «bin».

Я работаю на 64-битной Windows 7 и скопировал мои рабочие библиотеки на сервер Windows 2003, и мои проекты все еще работают ..

Моя другая работа заключалась в том, чтобы ссылаться на файлы Microsoft.Interop.Access .dll с целевой машины в моем решении, перекомпилировать и Bam ....!

...