32-bit到64-bit 开发及升级经验
最近我們團隊的開發機從
32位xp升級到64位win7,?期間小研究了一下,?現做個總結,?希望對大家有幫助
背景描述:
| DEV Env. | Original | New |
| OS | Windows XP (x86) | Windows 7(x64) |
| Dev. Tool | VS2008 (x86) | VS2008 (x86) |
| Oracle Client | Oracle 10g (x86) | Oracle 10g (x86) |
| SQL Tools | Toad for oracle 6.1.2 (x86) | Toad for oracle??6.1.2 (x86) |
?
裝好64bit Win7后,安裝VS2008正常,安裝Oracle 10g正常,但是run我們的程式,卻連不上DB.詳情看錯誤檢索部分.
?
在64位下開發要注意以下:
1.???????VS2008沒有64位,所以要“以管理員身份運行”
2.???????Toad是32位,會被默認安裝到Program Files (x86),我們用的這個版本的Toad是沒有辦法識別帶有括號的路徑的(不確定新版本的Toad有沒有修復這個問題,但是最好還是放到別的地方去).
3.???????如果安裝的是32位的Oracle Client,那么Winform程式一定要用x86來編譯,貌似是因為編譯的platform決定了會調用哪一種oci.dll
?
錯誤檢索:
1.???????Could not create an environment: OCIEnvCreate returned -1(OCIEnvCreate失敗,返回代碼為-1,但錯誤消息文本不可用)
解決方法:管理員身份運行VS2008,若不行,再嘗試刪除C:\app\***\product\11.2.0\下面無效的client文件夾(若提示錯誤則重啟后刪除)
?
2.???????嘗試加載Oracle客戶端庫時引發BadImageFormatException。如果在安裝32位Oracle客戶端組件的情況下以64位模式運行,將出現此問題。
解決方法:安裝Oracle提供的ODTwithODAC (32-bit Oracle Data Access Components (ODAC)
with Oracle Developer Tools for Visual Studio)
http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
?
關于ODTwithODAC:
官網中提到:
Each 32-bit ODAC client download below supports connectivity to Oracle Database versions 9.2, 10.1, 10.2, and 11.1, and 11.2.?
ODAC是oracle提供用于Windows Oracle數據訪問組件的組件,由Oracle客戶端驅動程序組成,包括ODP.NET、ODBC、OLE DB、OO4O以及Oracle Services for MTS.
?
我們開發環境安裝的是32-bit的ODAC,但是程式中的oracle連接類的是以AnyCPU在跑的,換句話說,在64位CPU下運行的ADO.NET通過32位ODAC訪問數據庫組件的時候,必須要安裝Oracle提供的ODTwithODAC.并且只是給asp.net,如果是winform程式,只要用x86平臺編譯就可以了.
?
為什么不直接裝一個64-bit的Oracle Client?
因為我們的程式無法以x64來編譯, (需要改到太多東西,并且有風險).而且現存的Toad也不能識別x64的
oralce client.
?
轉載于:https://www.cnblogs.com/ITniao/archive/2011/07/30/2121764.html
總結
以上是生活随笔為你收集整理的32-bit到64-bit 开发及升级经验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SQL Server 2008获取一个表
- 下一篇: 数论基础_欧几里德算法