弄了个程序,EF 4.1 + ODP.NET + ORACLE 11G,打包发布的时候才发现客户端也要安装一个odp.net,还是太麻烦了些,网上搜了搜,说有办法能把dll都打包到程序里面,做到odp.net免安装,方法就是添加以下几个文件的引用到工程里面:
Oracle.DataAccess.dlloci.dllociw32.dllorannzsbb11.dlloraocci11.dlloraociei11.dllOraOps11w.dll可是除了Oracle.DataAccess.dll,其他的dll都显示未能添加对“…….DLL”的引用。请确保此文件可访问并且是一个有效的程序集或COM组件。这个要怎么办才好?

解决方案 »

  1.   

    oci.dll
    这个东西是 C 语言的 dll ,放到程序目录下就行了,不用添加引用
      

  2.   

    引用只添加 Oracle.DataAccess.dll 这一个,其他都放在程序目录下
      

  3.   


    还是不行,会显示
    The specified store provider cannot be found in the configuration, or is not valid.是不是配置文件中还要加一些东西?
      

  4.   

    这个访问 oracle 时是不是也要连接字符串的?
      

  5.   

    看看这个,主要是注册表和 tnsnames.ora 文件
    不安装Oracle客户端访问远程数据库
      

  6.   

    除非程序直接调用 oci.dll 里的 api 函数 ,不然用连接字符串的方式,肯定要读注册表里的路径和 ora 文件里的连接信息,这是没办法的
      

  7.   

    http://www.cnblogs.com/nnhy/archive/2011/10/30/2229444.html这个是那篇文章,不过我始终没调出来。