【问题标题】:VS won't compile x86VS 不会编译 x86
【发布时间】:2018-10-23 16:33:47
【问题描述】:

我正在尝试运行一个调用 Microsoft.ACE.oledb.12.0 的 exe,但收到错误“提供程序未在本地计算机上注册”。 Stackoverflow 上有很多关于这个错误的信息。更正此问题的建议是安装 AccessDatabaeEngine 并在 x86 中编译。我已经完成了这两项工作,尽管项目中的路径设置为 x86,但我怀疑它仍在编译为 64 位,因为 VS 继续将 exe 放在该 64 位文件夹中。但我不知道如何纠正这个问题。任何人都知道如何解决此问题或确认 exe 是 32 位还是 64 位,无论它放在哪个文件夹中。在 windows 2012 server 64bit (Hyper-v) 上运行 vs2012

问候

埃里克

【问题讨论】:

  • test 表明 exe 为 x86 但仍不接受 dll。 Office 和 exe 一样是 32 位的。
  • 现在您知道 Visual Studio 正在生成 x86 exe,您能否更新您的帖子以删除误导性的 x64 内容?这将使问题集中在您的实际问题上。 How to Ask
  • 您在安装 AccessDatabaeEngine 时使用的是 AccessDatabaseEngine.exe 还是 AccessDatabaseEngine_X64.exe?您可能安装了 x64 提供程序但没有安装 x86 提供程序?要成功运行 x86 程序,您需要安装 x86 提供程序。

标签: visual-studio-2012 x86 oledb 32bit-64bit


【解决方案1】:

好的...所以这就是发生的事情。我在项目属性上将 cpu 类型更改为 x86。它确实编译为 32 位,但将其放置在不正确的文件夹中。我通过在记事本中打开 exe 来确认这一点,因为有一种方法可以判断它是什么类型。

但是,调试版本仍然是 64 位。修复方法是使用工具栏上的“发布”或“调试”下拉列表并将其设置为配置管理器。在那里将发布和调试值都设置为 x86。这会将其编译为 x86 并将其放入正确的文件夹中。我不知道这有什么不同,但它现在很高兴使用 32 位 dll。

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 2014-04-11
    • 2013-03-19
    • 2019-04-02
    • 2011-12-03
    • 2020-07-05
    • 1970-01-01
    • 2019-05-15
    • 1970-01-01
    相关资源
    最近更新 更多