C#“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序”的解决方案

当使用C#语言连接Access数据库时,即使安装有64位版本的Office,也会出现“未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序。”这个问题。从Office2016开始,困扰了我好多年。

以往的解决之道(也是网上给出的方法)是:1、彻底卸载并安装32位的Office 2、更改注册表、数据库等相关设置。

但这种方式存在问题:1、局限性大 2、后患无穷。只要你换台电脑,你就得重新把环境配置一遍,费时费力。

经过自己的摸索,找到一种自认为比较简便的解决方式。

先说一下办公环境

操作系统:Win10 Professional x64 Edition

IDE平台:Visual Studio 2019 16.4.6

Access版本:Access 2019 x64 Edition

编程语言与项目类型:C#、WPF应用(.Net Framework 4.8)

解决方法:(就两步,都很关键)

1、安装“Microsoft Access 2010 数据库引擎可再发行程序包 ”

下载地址:

你是64位的Office,你就安装AccessDatabaseEngine_X64.exe。

你是32位的Office,你就安装AccessDatabaseEngine.exe。

只能二选一,装了一个之后另一个就装不上。

我是64位Office,那必然是安装AccessDatabaseEngine_X64.exe。

 

2、在Visual Studio中,打开一个“项目/解决方案”之后。

软件右上部分“解决方案资源管理器”→选中项目名称→右键“属性”→生成→目标平台→将“Any CPU”改为“x64”(只能改成x64,其他选项都不行)

 3、重新生成,启动程序,一切正常了。

 

注意:

在上述更改之后,在VS中“工具”→“连接到数据库”→“添加链接”页面点“测试链接”仍然会报错,不用理它,因为VS是32位的软件。毕竟用“添加链接”页面的目的是要得到“连接字符串”具体内容,编译正常是最关键的。

补充:

关于第2步

也可以通过改变解决方案的活动平台为x64平台解决(项目的目标平台会自动变为x64)

软件右上部分“解决方案资源管理器”→选中解决方案→右键“属性”→点击“配置管理器”→在“活动解决方案平台”下拉列表选择“新建”→选择新平台“x64”,其他保持默认→点击确定→重新生成解决方案即可。

最后,给出三个微软的官方参考:

1、《Visual Studio IDE 64 位支持》:64 位支持 - Visual Studio

2、《如何:将项目配置为面向平台 》:如何:将项目配置为面向平台 - Visual Studio

3、《64 位应用程序》:64 位应用程序

 

posted on 2024-10-29 12:52  _一级菜鸟  阅读(23)  评论(0编辑  收藏  举报