C#“未在本地計算機上註冊“Microsoft.ACE.OLEDB.12.0”提供程式”的解決方案

_一级菜鸟發表於2024-10-29

當使用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 位應用程式

相關文章