我在Visual Studio2010中开发了一个连接到Access 2010 *.accdb数据库的C# winform应用程序。它在我的pc上运行良好,但当我在另一台pc上安装它时,它抛出错误消息"The 'Microsoft.ACE.OLEDB.12.0‘provider is not registered on the local machine“。我试着按照建议将它编译成x86,但没有成功。
感谢任何帮助/建议,我认为我应该将此驱动程序包含在我的clickOnce安装中。如果是这样,我该怎么做呢?(在VS Properties > Publish > Previous requirements中,它不会出现在需求检查表中)
发布于 2012-02-03 11:04:38
你将不得不使用一种更高级的方法来部署必要的驱动程序--据我所知,ClickOnce本身不会做到这一点。我也不认为它像单个DLL那么简单。驱动程序需要在系统中注册等。
访问驱动程序有一个很大的问题,因为它们的设置方式。如果用户安装了Microsoft Office和Access,则他们已经安装了ACE驱动程序。问题是,如果他们在64位计算机上安装了32位Access,您的64位应用程序将无法与Access通信,因为计算机只有32位驱动程序,而您不能同时安装这两个驱动程序。
如果您的用户都没有Microsoft Office with Access,那么您应该能够根据需要在每台计算机上部署32/64位的独立驱动程序安装程序。
发布于 2012-02-03 11:02:17
通过将任意程序集和文件添加到项目并将其文件类型更改为Content,可以将它们作为ClickOnce安装的一部分。然后,它们将出现在应用程序文件列表中。
请注意,如果这样做,您将从Visual Studio收到一条警告,但是可以安全地忽略它。
发布于 2013-01-16 07:29:36
您可以构建一个msi,而不是oneclick,并创建一个自定义操作,以便在安静模式下安装ace驱动程序。因为它是一个可执行文件,所以您可以在process对象中运行它
https://stackoverflow.com/questions/9123121
复制相似问题