仅将.NET应用程序编译为32位,以便我可以使用Access数据库

时间:2010-01-28 19:49:39

标签: database vb.net ms-access 32-bit

当我尝试在我的应用程序中使用MS Access数据库时,我不断收到此错误:

  

'Microsoft.Jet.OLEDB.4.0'提供商   没有在当地注册   机。

谷歌错误一段时间后,我发现在64位模式下运行应用程序时出现问题。如果我要用32位编译应用程序它会工作,所以我去尝试找出如何做到这一点。我在项目设置页面中获得了高级编译选项,但后来我还读到我甚至无法在Visual Basic 2008 Express中设置CPU类型。

这是真的吗?我无法将项目设置为以32位模式运行吗?问题是,几个月前我用数据库做了类似的事情,这很有效,我不记得我做了什么。

如何解决此问题?

在查看我的旧项目编译选项之后,它确实已设置为Active (x86) Platform,但此选项未显示在我的新项目中。怪异。

这是截图。最上面的是具有32位运行选项的旧项目,而底部是没有这些选项的新项目。

Enter image description here

3 个答案:

答案 0 :(得分:3)

我自己没有使用VB Express(我使用的是Visual Studio Professional),但我认为选项类似。打开解决方案(或项目)后:

  1. 打开“项目属性”。 (右键单击解决方案资源管理器中的项目,然后选择属性)。
  2. 单击“构建”选项卡。
  3. 平台目标下拉列表中,选择 x86
  4. 点击保存。
  5. 您现在应该能够构建应用程序并将其强制为32位。

    如果您希望有单独的版本(一个用于任何CPU,一个用于x86):

    1. 单击“构建”菜单。
    2. 单击Configuration Manager ...
    3. Active Solution platorm 下拉列表中,点击
    4. 输入或选择新平台下拉列表中选择 x86
    5. 确保选中创建新项目平台
    6. 单击“确定”。
    7. 您现在可以轻松地在Any CPU或x86 CPU类型之间进行选择。只需从标准工具栏中选择平台类型即可。

      如果您需要更改较旧的程序或无法编译的程序,请参阅my answer on how to force applications with the Any CPU flag to run as 32-bit

答案 1 :(得分:0)

您始终可以使用MSBuild。它是免费的,允许您为编译器提供任何配置选项。

答案 2 :(得分:0)

本教程适用于Visual Basic 2008 Express Edition,但我认为它也应适用于其他Express Edition。

在Express Edition中默认未启用“高级编译选项”,要启用它,请执行以下步骤:

点击“工具” 选择“选项” 在“项目和解决方案”下,单击“常规” 然后勾选选项“显示高级构建配置” 单击确定。 瞧!

当您进入“项目-属性”时,应该会看到在高级编译选项中更改为任何cpu。

如果仍未启用,请转至Build-Configuration Manager并将x86添加到平台。