玩转C科技.NET

从学会做人开始认识这个世界!http://volnet.github.io

导航

一台主机同时支持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访问,可能都需要重新启动计算机后才可使用。

posted on 2012-05-22 22:38  volnet(可以叫我大V)  阅读(4140)  评论(1编辑  收藏  举报

使用Live Messenger联系我
关闭