VB.NET应用程序和Access数据库:我是否需要部署Access Runtime?

时间:2014-08-28 18:59:35

标签: vb.net ms-access-2010

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

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

以便运行应用程序。

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

1 个答案:

答案 0 :(得分:1)

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

  • 年长的" Jet"数据库引擎,如果您只需要从32位应用程序访问.mdb文件,或
  • 较新的" ACE"数据库引擎,如果您需要访问.accdb文件(或64位应用程序中的.mdb文件)。

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

修改

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

Microsoft Access Database Engine 2010 Redistributable

注意:

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

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

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