2010-01-28 2 views
1

Я получаю эту ошибку, когда я пытаюсь использовать базу данных MS Access в моем приложении:Компиляция приложения .NET, как только 32-разрядные, так что я могу использовать свою базу данных Access

«Microsoft.Jet. OLEDB.4.0 ' не зарегистрирован на сайте .

После того, как Google некоторое время искала ошибку, я понял, что это проблема при запуске приложения в 64-разрядном режиме. Если бы я должен был скомпилировать приложение в 32-битном, это сработало бы, поэтому я попытался выяснить, как это сделать. Я дошел до расширенных параметров компиляции на странице настроек проектов, но затем я также прочитал, что даже не могу установить тип процессора в Visual Basic 2008 Express.

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

Как исправить эту проблему?

После ознакомления с моими вариантами компиляции старых проектов он действительно установлен для Active (x86) Platform, но этот параметр не отображается в моем новом проекте. Weird.

Вот скриншот. Верхний - это старый проект с 32-разрядной версией, а нижняя - новая, без этих опций.

Enter image description here

+0

Получите утилиту «corflags», указанную Joshua, и добавьте событие postbuild в свой проект, где он вызывается автоматически после каждой сборки. Поэтому вам не нужно беспокоиться о MSBUILD. –

ответ

3

Я сам не использовал VB Express (я использую Visual Studio Professional), но я считаю, что параметры будут похожи. После открытия решения (или проекта):

  1. Открыть Свойства проекта. (Щелкните правой кнопкой мыши Project в проводнике решений и выберите свойства).
  2. Перейдите на вкладку «Сборка».
  3. В Место для платформы свернуть, выберите x86.
  4. Нажмите «Сохранить».

Теперь вы должны создать приложение и заставить его использовать 32-разрядную версию.

Если вы хотите иметь отдельные сборки (один для любого процессора и один для x86):

  1. Нажмите менюПостроениеменю.
  2. Нажмите Configuration Manager ...
  3. В раствор активного platorm ниспадающего нажмите
  4. В Тип или выберите новую платформу выпадающий выбрать x86.
  5. Удостоверьтесь, что Созданы новые проектные платформы.
  6. Нажмите OK.

Теперь вы можете легко выбирать между любыми типами CPU или x86. Просто выберите тип платформы на стандартной панели инструментов.

Если вам нужно изменить старую программу или одну, которую вы не можете скомпилировать, см. my answer on how to force applications with the Any CPU flag to run as 32-bit.

+1

+1 для второй части вашего ответа. Первый из них, возможно, будет работать только с Visual Studio Pro или TS, поскольку «разные платформы» являются одной из функций, отсутствующих в Express-версиях VS, когда я правильно помню. –

0

Вы всегда можете использовать MSBuild. Он бесплатный и позволит вам любой вариант конфигурации, доступный для complier.

+0

Спасибо за ответ. Из того, что я вижу, MSBuild - это просто компилятор, да? И есть ли способ сделать это в самом VB 2008 Express? Я бы предпочел сделать это, потому что мне нужно взять этот проект со мной, и компиляция из самой IDE будет бонусом, но MSBuild - единственный способ, которым я буду использовать это. – James

+0

его больше похоже на make. Вы всегда можете отлаживать свое приложение в среде IDE. – rerun