一台主機同時支持x86與x64客戶端安裝


上一篇寫如何免安裝Oracle來使用PL/SQL Developer,http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html

這一篇則需要在一台主機上同時支持.net程序,不論編譯成x86還是x64都要OK。

1、下載Oracle Data Access Components(ODAC) Xcopy的兩個版本:

x86:http://www.oracle.com/technetwork/database/windows/downloads/index-101290.html

x64:http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html

2、閱讀里面的readme。

以其中一個為例,另一個操作步驟一致。

3、解壓到任意文件夾(臨時的,一會可以刪掉)

3.1 開始->運行->cmd->cd 該文件夾

3.2 運行命令 install.bat all {目標路徑:也就是最后要被安裝的目錄} odac

其他參數請參考readme。

image

3.3 將其加入到系統環境變量中:

PATH的值中增加:C:\Oracle\ODAC112030Xcopy_32bit;C:\Oracle\ODAC112030Xcopy_32bit\bin;C:\Oracle\ODAC112030Xcopy_x64;C:\Oracle\ODAC112030Xcopy_x64\bin;

該值以實際情況為准。

4、測試:

寫一個Console程序,程序需要引用Oracle.DataAccess.dll(且設置屬性-〉復制本地-〉True),路徑在:

D:\Oracle\ODAC112030Xcopy_32bit\odp.net\bin\4\Oracle.DataAccess.dll

或者

D:\Oracle\ODAC112030Xcopy_x64\odp.net\bin\4\Oracle.DataAccess.dll

編譯的時候,可以選該工程的編譯選項為x86/x64。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
// using System.Data.OracleClient;
using Oracle.DataAccess.Client;

namespace OracleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            using (OracleConnection conn = new OracleConnection(ConfigurationManager.AppSettings["OracleConnectionString"]))
            {
                try
                {
                    conn.Open();
                    Console.WriteLine("Successful!\r\n");
                }
                catch (Exception ex)
                {
                    Console.WriteLine("ERROR " + ex.ToString() + "\r\n");
                }
                finally
                {
                    conn.Dispose();
                }
            }
            Console.ReadKey();
        }
    }
}

5、使用XCopy的方式部署服務器

這里的服務器也可以指另外一台機子,假設現在是一台新安裝的Windows

將安裝完的文件復制到該機器的某個路徑下:

這里復制D:\Oracle\ODAC112030Xcopy_32bit和D:\Oracle\ODAC112030Xcopy_x64到服務器的C:\Oracle下(或者其他文件)。

新增路徑到系統環境變量PATH中,將本地編譯過的程序復制到服務器,不論是針對x86編譯的還是x64編譯的都可以正確運行。

6、PL/SQL Developer補充。

在上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html中我們通過Instant Client來設置PL/SQL的首選項。現在可以把它們去掉了。因為我們已經在環境變量中設置了路徑。因為PL/SQL只支持x86的OCI.DLL,所以,在設置環境路徑的時候,應該把32bit的相關路徑放在前面,這樣就可以正確運行了。

7、設置字符集,可以使用上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html的方法來設置字符集,也可以直接在安裝的install.bat中做一下修改,再進行安裝。

以下方法只適合直接install.bat的那台機子。

在上一篇文章中提到了在注冊表中修改,這里就能用到了,在D:\Oracle\ODAC112030Xcopy_32bit\bin路徑下查看oracle.key可以查到字符集放在這個位置:SOFTWARE\Wow6432Node\ORACLE\KEY_odac修改NLS_LANG為SIMPLIFIED CHINESE_CHINA.ZHS16GBK。
image

8、設置tnsnames.ora

如果不是用程序直接找的路徑,而是通過系統配置尋找tnsnames.ora的,則需要在對應的路徑下增加network\ADMIN\tnsnames.ora。步驟和上一篇文章http://www.cnblogs.com/volnet/archive/2012/05/22/2513728.html一致。

如這里PL/SQL需要使用tnsnames.ora,則需要在C:\Oracle\ODAC112030Xcopy_32bit路徑下建立network\ADMIN\tnsnames.ora,但是不需要在C:\Oracle\ODAC112030Xcopy_x64建。

9、另外,如果是IIS中布置的程序需要通過本地訪問Oracle,包括使用Oracle.DataAccess以及System.Data.OracleClient訪問,可能都需要重新啟動計算機后才可使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM