當使用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 資料庫引擎可再發行程式包 ”
下載地址:https://www.microsoft.com/zh-cn/download/details.aspx?id=13255
你是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 位應用程式