3

我已经构建了一个 Scopus 库 (dll),我将其加载到 GAC 中以供 SSIS 包的脚本组件使用。该库基于 .Net 框架 4.5,并利用了我也加载到 GAC 中的 Json.Net Lib。

在我的本地和开发机器上通过 SSIS 目录中的 SSISDB 运行包时,它工作正常,当我以相同的方式在测试机器上运行它时,它失败并出现以下错误。

DFT - S_SCOPUS_PUBL_META_EXTRACT:错误:System.TypeloadException:无法从程序集 mscorlib、版本 4.0.0.0 Culture=neutral、PublicKeyToken=b77a5c661934e089 加载类型 System.Collections.Generic.IReadOnlyDictionart '2'。

Microsoft.SQLServer.Dts.Pipeline.SciptComponentHost.HandleUserException(Exception(e)

Microsoft.SQLServer.Dts.Pipeline.SciptComponentHost.

等等等等。

Box 设置:SQL Server 2012、Server 2012 用于开发和测试以及 SQL Server 2012 和 Windows 7 用于本地。


我试图解决这个问题的事情

  1. 检查了 Scopus 库,Json.Net 和 SSIS Script Component 都使用了 4.5 版本的 .Net Framework。
  2. 仔细检查 Scopus 和 Json.Net 库是否在 GAC 中正确
  3. 确保我拥有最新版本的 Json.Net 库
  4. 检查每台
    本地机器上的 mscorlib.dll 的版本,DEV 机器是文件版本 4.0.30319.18052
    测试机器是文件版本 4.0.30319.1008
  5. 在 TEST 机器上扫描更新,看看它是否需要任何额外的补丁来更新 mscorlib.dll 文件(它告诉我它是最新的 - 请记住我不是系统管理员,所以他们可能会阻止) .

有没有人对如何解决这个错误有任何额外的想法?

4

1 回答 1

1

我不知道 SSIS 2012 是否还有这种行为;但是,在 SSIS 2005 和 2008 中,我发现 GACing 脚本组件引用的自定义 DLL是不够的。我还必须将自定义 DLL 复制到目标计算机的 .NET Framework 文件夹,以便 SSIS 运行时可以在验证包时找到它们。

于 2013-08-30T02:28:50.807 回答