【问题标题】:VB.NET app and Access database: Do I need to deploy the Access Runtime?VB.NET 应用程序和 Access 数据库:我是否需要部署 Access Runtime?
【发布时间】:2014-08-28 18:59:34
【问题描述】:

我有一个使用 .accdb 访问文件(2010 版)作为后端的 VB.NET 应用程序。应用程序只从这个 DB 文件中读取,没有写入。应用程序和数据库文件需要一起部署在用户的 PC 上。

我了解用户将需要: 1) 已安装完整版 Access 或 2) 运行时安装

为了让应用程序运行。

这很好,但我的问题是 AccessRuntime.exe 是巨大的 (175 MB),如果我不需要,我宁愿不将它与我的应用程序一起部署。有没有办法用我的 VB 应用程序和 DB 文件部署所需的运行时 DLL/文件?如果是这样,这些文件位于什么位置/位置?

【问题讨论】:

  • 您的数据库是否使用任何特定于 Access 2010 .accdb 文件的功能,或者您可以只使用较旧的 .mdb 数据库文件吗?
  • 它没有使用任何特定于 2010 的东西,它只是在那个版本中创建的。如果我将其转换为 .mdb 文件,是否还需要运行时,或者 .NET 是否知道如何在内部处理它?

标签: vb.net ms-access-2010


【解决方案1】:

如果您的 .NET 应用程序只是通过 System.Data.OleDbSystem.Data.Odbc 读取 Access 数据库文件,那么您不需要 Microsoft Access 运行时。你只需要安装一个 Access 数据库引擎,或者

  • 较旧的“Jet”数据库引擎,如果您只需要从 32 位应用程序访问 .mdb 文件,或者
  • 如果您需要访问 .accdb 文件(或来自 64 位应用程序的 .mdb 文件),则可以使用较新的“ACE”数据库引擎。

由于您的数据库显然不需要任何特定的 Access 2010 功能,您只需将 .accdb 文件转换为 .mdb 文件并使用已安装在所有 Windows 计算机上的“Jet”数据库引擎。但是,Jet 仅适用于 32 位应用程序,因此您需要进入 VB.NET 项目并将其定位到 x86 平台,以便它始终作为 32 位应用程序运行(即使在 64 位机器上)。

编辑

如果要操作 .accdb 数据库文件,则需要确保在每台计算机上都安装了 Access 数据库引擎(“ACE”)。安装程序可在此处下载:

Microsoft Access Database Engine 2010 Redistributable

注意事项:

  1. ACE 数据库引擎有 32 位和 64 位版本。安装的版本必须与您的应用程序的“位数”(32 位或 64 位)相匹配。这可能很棘手,因为 Microsoft 设计了 ​​ACE 安装程序,以便您可以安装任一 32 位 64 位版本。 (有一种解决方法可以强制安装两者,但不建议这样做,因为它会破坏 Microsoft Office。)

  2. 进一步提到第 1 点,因此即使您将 .NET 应用程序定位到 x86 平台并需要 ACE 的 32 位版本,您仍然可能难以处理已经具有 64 位的目标计算机安装的 Office 版本。他们无法安装 32 位版本的 ACE,因为已经安装了 64 位版本。因此,要使用您的应用,他们必须卸载 64 位版本的 Office 并安装 32 位版本。

  3. 据我所知,没有实用的方法可以将 ACE 安装程序包含在您的应用程序的安装程序中。您的用户需要自己下载并安装适当的版本(通过上面的链接)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多