Сборка для x86 и 'Any CPU' - PullRequest
       41

Сборка для x86 и 'Any CPU'

3 голосов
/ 30 октября 2010

Я пытаюсь использовать драйвер Microsoft.Jet.OLEDB для подключения к базе данных доступа из моего приложения C #. Когда я пытаюсь открыть соединение, я получаю сообщение об ошибке: «Поставщик« Microsoft.Jet.OLEDB.4.0 »не зарегистрирован на локальном компьютере». Это связано с тем, что драйвер поддерживается только на 32-разрядных компьютерах.

Мое решение состояло в том, чтобы изменить целевую платформу проекта, которая ссылается на x86. Если я пытаюсь изменить все свои проекты на x86, у меня возникают серьезные проблемы со сборкой, поэтому я оставляю их все на любом процессоре

Проблема теперь в том, что когда я запускаюсь в VS, он говорит мне: «Не удалось загрузить файл или сборку» MyProject, Version = 1.0.0.0, Culture = нейтральный, PublicKeyToken = null 'или одну из его зависимостей. сделано для загрузки программы с неверным форматом. "

Я пробовал каждую конфигурацию, которую только мог придумать, и просто не могу заставить ее работать. Любые советы?

Ответы [ 2 ]

7 голосов
/ 30 октября 2010

Вам придется переключить все это на x86.Как вы обнаружили, для Access нет драйвера x64.

Ваш другой код, если он скомпилирован для x64, не может использовать сборки x86.Возможно, вы захотите рассмотреть этот вопрос: Может ли приложение x64 использовать сборки x86 - и наоборот?

ОБНОВЛЕНИЕ

Интересно, я нашел Доступ к базе данных Engine x64 из MS.Вы можете попытаться взять это и посмотреть, сработает ли это для вас.Вы также можете проверить это обсуждение на MSDN.

3 голосов
/ 30 октября 2010

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

Если какой-либо из ваших проектов использует списки изображений, существует ошибка, которая приведет к ошибкам при переключении с 64-разрядного на32-битный.Насколько я помню, вам нужно либо перестроить списки изображений с нуля, либо бросить их и использовать что-то другое.

Вы можете найти больше информации здесь и здесь .

...