SSIS在GAC中对脚本组件使用JSON.NET

本文关键字:JSON NET 组件 脚本 GAC SSIS | 更新日期: 2023-09-27 18:29:23

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

当在我的local&开发机器它工作得很好,当我在测试机器上以同样的方式运行它时,它会失败,并出现以下错误。

DFT-S_SCOPUS_PUBL_META_EXTRACT:错误:System.TypeloadException:无法加载类型System.Collections.Generic.IReadOnlyDictionart程序集mscorlib中的"2",版本4.0.0.0区域性=中性,PublicKeyToken=b77a5c661934e089。

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

Microsoft.SQLServer.Dts.Pipeline.SciptComponentHost.

等等。

方框设置:SQL Server 2012、用于开发和测试的Server 2012以及SQL Server 2012&适用于本地的Windows 7。


我试图解决问题的事情

  1. 已检查Scopus库、Json.Net和SSIS脚本组件均使用.Net Framework的4.5版本
  2. 仔细检查Scopus和Json.Net库是否正确位于GAC中
  3. 确保我有最新版本的Json.Net库
  4. 已检查每台计算机上mscorlib.dll的版本
    LOCAL、DEV机器的文件版本为4.0.30319.18052
    TEST Machine nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 文件版本4.0.30319.1008
  5. 在TEST机器上运行更新扫描,看看是否需要任何额外的补丁来更新mscorlib.dll文件(它告诉我它是最新的-请记住,我不是系统管理员,所以他们可能会拖延)

有人对如何绕过这个错误有任何其他想法吗?

SSIS在GAC中对脚本组件使用JSON.NET

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