32位C# 桌面程序 使用 Oracle.DataAccess.dll連接64位Oracle

1、Oracle服務端爲64位,則連接客戶端也只能爲64位?
2、既然客戶端需要64位,那c#程序引用dll是否也需要是64位?
3、c#應用程序爲32位,又如何使用64位dll?
4、是否只能替換Oracle服務端爲64位來解決?


亂搞 解決了!

問題描述:c#32位桌面程序,使用Oracle.DataAccess.dll 做連接驅動,但是Oracle服務端爲64位,客戶端位64位,導致桌面應用無法連接到數據庫。

起初以爲64位電腦無法裝32位Oracle客戶端,而且還以爲32位客戶端不能連接64位服務器… 蠢得一批!

解決方法:
step1. 安裝一個與服務器同版本的32位客戶端,這裏如果提示安裝不兼容,可以修改下圖中的兩個文件來兼容win10,並使用兼容模式加管理員身份安裝
在這裏插入圖片描述
在兩個文件中的 <CERTIFIED_SYSTEMS></CERTIFIED_SYSTEMS> 標籤中加入如下代碼:

         <OPERATING_SYSTEM RELEASE="6.2">
         	 <VERSION VALUE="3"/>
         	 <ARCHITECTURE VALUE="32-bit"/>
         	 <NAME VALUE="Windows 10"/>
         	 <ENV_VAR_LIST>
         	     <ENV_VAR NAME="PATH" MAX_LENGTH="1023" />
         	 </ENV_VAR_LIST>
         </OPERATING_SYSTEM>

step2. 配置好客戶端的net manager (根據自己的實際配置)
在這裏插入圖片描述
step3. 安裝好之後,在項目中重新引用Oracle.DataAccess.dll,注意選擇上面安裝的32位的客戶端中的!然後就成了。

ps:沒有卸載之前的64位客戶端,所以目前是兩個都有,這樣在不同項目需求上可以選擇引用不同的版本就行了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章