c# - 将 ACE OLEDB 12 驱动程序包含在 clickOnce 安装中

标签 c# ms-access clickonce oledb

我在 Visual Studio 2010 中开发了一个 C# winform 应用程序,该应用程序连接到 Access 2010 *.accdb 数据库。它在我的电脑上运行良好,但当我将其安装在另一台电脑上时,它会抛出错误“‘Microsoft.ACE.OLEDB.12.0’提供程序未在本地计算机上注册。” 我尝试按照建议将其编译为 x86,但没有成功。

感谢任何帮助/建议,我认为我应该将此驱动程序作为我的 clickOnce 安装的一部分。如果是这样,我该怎么做? (它不会作为选项出现在 VS 属性 > 发布 > 以前的需求中的需求 list 中)

最佳答案

您将必须使用更高级的方法来部署必要的驱动程序 - 据我所知,ClickOnce 本身不会这样做。我也不认为它像单个 DLL 那么简单。驱动程序需要向系统注册等。

由于 Access 驱动程序的设置方式,它们存在一个大问题。如果用户安装了带有 Access 的 Microsoft Office,则他们已经拥有 ACE 驱动程序。问题是,如果他们在 64 位计算机上安装了 32 位 Access,您的 64 位应用程序将无法与 Access 通信,因为该计算机只有 32 位驱动程序,而您无法同时安装两者。

如果您的用户都没有使用 Access 的 Microsoft Office,那么您应该能够根据需要为每台计算机部署 32/64 位的独立驱动程序安装程序。

关于c# - 将 ACE OLEDB 12 驱动程序包含在 clickOnce 安装中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9123121/

相关文章:

c# - JSON 字符串被转义

sql - MS Access VBA 选择查询

MSBuild Click-Once 与 list 有关的问题

来自网络共享和参数的 ClickOnce 部署

ms-access - pyodbc 连接到 mdb 文件

msbuild - 在ClickOnce部署中自动增加“最低要求版本”?

c# - 子文件夹遍历

c# - 如何从导航堆栈中删除页面 - c# windows 8

c# - 显式实现的方法具有哪些可访问性?

ms-access - 从另一个子表单重新查询子表单,问题