代码之家  ›  专栏  ›  技术社区  ›  Amir

脚本组件缺少Oracle引用

  •  0
  • Amir  · 技术社区  · 8 年前

    我尝试使用脚本组件并向Oracle数据库插入一些数据,但我面临以下问题。

    无法加载文件或程序集'oracle.managedataaccess, 版本=4.122.1.0,区域性=中性,PublicKeyToken=89B483F429C47342' 或者它的一个依赖项。系统找不到指定的文件。


    在scriptmain.input0_processinputrow(input0buffer row)at usercomponent.input0_processinput(input0 buffer缓冲区)位于 usercomponent.processinput(int32 inputid,字符串inputname, pipelinebuffer缓冲区,outputnamemap outputmap)位于 Microsoft.sqlserver.dts.pipeline.scriptcomponent.processinput(Int32) 输入,pipelinebuffer buffer)at Microsoft.sqlserver.dts.pipeline.scriptComponentHost.processInput(Int32) 输入,pipelinebuffer buffer)

    在谷歌搜索之后,我认为我的问题应该和 this issue. 我从中复制oracle.managedataaccess.dll C:\Program Files(x86)\Oracle Developer Tools for VS2017\odp.net\managed\common\oracle.manageddata.dll(用于VS2017的Oracle开发人员工具)

    到

    C:\Windows\程序集

    或

    C:\Windows\程序集\GAC

    如前一链接中所建议的。但我再次面临同样的问题。你介意告诉我我错过了什么吗?

    我正在使用ssis2017。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Wernfried Domscheit    8 年前

    这是错误的,您不应该手动将文件复制到 C:\Windows\assembly .只需注意,从.NET Framework 4开始,全局程序集缓存的默认位置是 %windir%\Microsoft.NET\assembly

    • 或者将DLL复制到应用程序可执行文件的文件夹中。
    • 或者将其添加到GAC(全局程序集缓存)。这是用工具做的 gacutil.exe .我假设每个设置工具也提供了一个选项“添加到GAC”。您也可以使用 ...\odp.net\managed\x64\OraProvCfg.exe 和/或 ...\odp.net\managed\x86\OraProvCfg.exe 为了它。
    • 还有几个位置可以放置DLL(请参见 Probing the Application Base and Culture Directories 但是,应用程序的根目录是标准目录。
    推荐文章