代码之家  ›  专栏  ›  技术社区  ›  Liu Peng

在SSIS脚本任务中调用ActiveX时出现Get-FileNotFoundException错误

  •  0
  • Liu Peng  · 技术社区  · 17 年前

    我需要在SSIS包中调用ActiveX,因此我使用脚本任务并编写以下C脚本:

    public void Main()
    {
        clsAptFdbReader objFdbReader = new clsAptFdbReader("UnitedStates20000830.fdb");
        objFdbReader.OpenFdb(false);
        Dts.TaskResult = (int)ScriptResults.Success;
    }
    

    得到一个错误:

    错误: System.Reflection.TargetInvocationException:异常: 异常已由 调用的目标。---gt; System.IO.FileNotFoundException:无法 不加载文件或程序集 'interop.aptfdbreader,' 版本=1.0.0.0,区域性=中性, publickeytoken=null'或 依赖关系。系统找不到 指定的文件。文件名: 'interop.aptfdbreader,' 版本=1.0.0.0,区域性=中性, publickeytoken=null'在 st ad8e2543f09ee688d809f58ee7.csproj.scriptmain.main()

    ===预绑定状态信息===日志:user=shinetechchina\xugy日志: displayname=interop.aptfdbreader, 版本=1.0.0.0,区域性=中性, publickeytoken=null(完全指定) 日志:appbase=file:///c:/program 文件/Microsoft SQL 服务器/100/dts/binn/log:初始 privatepath=null调用程序集: (未知)。 ==日志:此绑定在默认加载上下文中开始。日志:使用应用程序 配置文件:C:\程序 文件\Microsoft SQL 服务器\100\dts\binn\dtsdebughost.exe.config 日志:使用计算机配置文件 从 C:\Windows\Microsoft.NET\Framework\v2.0.50727\config\machine.config。 日志:策略未应用于 此时的参考(私有, 自定义、部分或基于位置 程序集绑定)。日志:正在尝试 下载新的url文件:///c:/程序 文件/Microsoft SQL 服务器/100/dts/binn/interop.aptfdbreader.dll。 日志:正在尝试下载新URL 文件:///c:/program files/microsoft sql 服务器/100/dts/binn/interop.aptfdbreader/interop.aptfdbreader.dll。 日志:正在尝试下载新URL 文件:///c:/program files/microsoft sql 服务器/100/dts/binn/interop.aptfdbreader.exe。 日志:正在尝试下载新URL 文件:///c:/program files/microsoft sql 服务器/100/dts/binn/interop.aptfdbreader/interop.aptfdbreader.exe。

    ---内部异常堆栈结束 跟踪---at system.runtimemethodhandle.\u invokemethodfast(对象 目标,对象[]参数, 签名结构和签名,方法属性 MethodAttributes,运行时类型句柄 类型所有者)在 system.runtimemethodhandle.invokemethodfast(对象 目标,对象[]参数,签名 SIG,方法属性 MethodAttributes,运行时类型句柄 类型所有者)在 system.reflection.runtimemethodinfo.invoke(对象 obj,绑定标志invokeattr,绑定器 活页夹,对象[]参数, CultureInfoCulture,布尔值 skipvisibilitychecks)在 system.reflection.runtimemethodinfo.invoke(对象 obj,绑定标志invokeattr,绑定器 活页夹,对象[]参数, 文化信息文化)位于 system.runtimetype.invokemember(字符串 名称,绑定标志绑定标志, 活页夹,对象目标,对象[] providedargs,参数修改器[] 修饰语,文化信息文化, 字符串[]namedparams)位于 system.type.invokeMember(字符串名, 绑定标志invokeattr,绑定器 活页夹,对象目标,对象[]参数, 文化信息文化)位于 Microsoft.sqlserver.dts.tasks.scripttask.vstataskscriptingengine.executescript()

    1 回复  |  直到 16 年前
        1
  •  0
  •   Kim Gräsman    17 年前

    您可以使用TLBIMP.EXE生成互操作作为构建的一部分,并给出参数以构建强名称。

    不过,我不确定是否明智地将这个互操作安装到gac中,如果它基于第三方com服务器?

    推荐文章