我有一个VB.NET应用程序,它使用.accdb访问文件(2010版)作为后端。应用程序只读取此DB文件,无需写入。应用程序和数据库文件需要在用户的PC上一起部署。
我了解用户需要: 1)已安装完整版Access或 2)运行时安装
以便运行应用程序。
这很好,但我的问题是AccessRuntime.exe是巨大的(175 MB),如果我不需要,我宁愿不用我的应用程序部署它。有没有办法用我的VB应用程序和数据库文件部署所需的运行时DLL /文件?如果是这样,这些文件位于何处/何处?
答案 0 :(得分:1)
如果您的.NET应用程序只是通过System.Data.OleDb
或System.Data.Odbc
读取Access数据库文件,那么您不需要Microsoft Access Runtime。您只需要安装Access数据库引擎,
由于您的数据库显然不需要任何特定的Access 2010功能,您只需将.accdb文件转换为.mdb文件并使用" Jet"已安装在所有Windows计算机上的数据库引擎。但是,Jet仅适用于32位应用程序,因此您需要进入VB.NET项目并将其定位到x86平台,以便它始终作为32位应用程序运行(即使在64位计算机上)。 / p>
如果要操作.accdb数据库文件,则需要确保在每台计算机上安装了Access数据库引擎(" ACE")。安装程序可在此处下载:
Microsoft Access Database Engine 2010 Redistributable
注意:
ACE数据库引擎有32位和64位版本。安装的版本必须符合" bitness"您的应用程序(32位或64位)。这可能很棘手,因为Microsoft设计了ACE安装程序,以便您可以 安装32位或 64位版本。 (有一种解决方法可以强制安装两者,但不建议这样做,因为它可能会破坏Microsoft Office。)
进一步指向#1,所以即使您将.NET应用程序定位到x86平台并需要32位版本的ACE,您仍然可能难以处理已经拥有64位的目标计算机安装的Office版本。他们无法安装32位版本的ACE,因为已安装64位版本。因此,要使用您的应用程序,他们必须卸载64位版本的Office并安装32位版本。
据我所知,没有切实可行的方法将ACE安装程序包含在应用程序的安装程序中。您的用户需要自行下载并安装相应的版本(来自上面的链接)。