2013-08-29 30 views
2

我構建了一個Scopus庫(dll),我將其加載到GAC中供SSIS包的腳本組件使用。 該庫基於.Net框架4.5,並利用我也加載到GAC中的Json.Net Lib。SSIS在腳本組件中使用GSON中的JSON.NET

當通過我的loacal &上的SSIS目錄中的SSISDB運行包時,它工作正常,當我以相同的方式在測試機器上運行它時,它會失敗,並顯示以下錯誤。

DFT - S_SCOPUS_PUBL_META_EXTRACT: Error: System.TypeloadException: Could not load the type System.Collections.Generic.IReadOnlyDictionart '2' from assembly mscorlib, version 4.0.0.0 Culture=neutral, PublicKeyToken=b77a5c661934e089.

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

Microsoft.SQLServer.Dts.Pipeline.SciptComponentHost. 

ECT等。

框架設置: SQL Server 2012,開發和測試的服務器2012和SQL Server 2012 &本地Windows 7。


事情我試圖解決這個問題

  1. 經過的SCOPUS圖書館,Json.Net和SSIS腳本組件都使用4.5版本的.Net Framework。
  2. 雙重檢查的Scopus和Json.Net庫是在GAC正確
  3. 確保我能得到最新版本的Json.Net圖書館
  4. 經過mscorlib.dll程序的版本,每臺機器上
    LOCAL,DEV機器是文件版本4.0.30319.18052
    試驗機是                                   文件版本4.0.30319.1008
  5. 然掃描的測試機上的更新,看它是否需要任何額外的補丁更新Mscorlib.dll文件(它告訴我,這是最新的 - 保持介意我不是系統管理員,所以他們可能會阻止)。

有沒有人有任何額外的想法如何解決這個錯誤?

+0

從扔在牆上的東西,看看什麼堅持部門:你看看可能的32位 - 64位問題?我不相信這是問題所在,但是使用不同的庫時,我會嘗試排除這些問題。 –

+0

如果您可以將RDC加入測試服務器,啓動一個PowerShell實例加載程序集並嘗試使用它。看看有什麼奇怪的事情發生。那麼SQL Server呢,它們都在哪個補丁級別? – billinkc

+0

SQL服務器DEV 微軟SQL Server Management Studio中11.0.3128.0 微軟的Analysis Services客戶端工具\t 11.0.3128.0 Microsoft數據訪問組件(MDAC)\t 6.1.7601.17514 微軟MSXML 3.0 6.0 Microsoft Internet Explorer中\t 8.0.7601.17514 Microsoft .NET Framework 4.0.30319.18052 操作系統\t 6.1.7601 – Nath

回答

1

我不知道SSIS 2012是否仍然有這種行爲;但是,在SSIS 2005和2008中,我發現由腳本組件引用的GACing自定義DLL不夠。我還必須將自定義DLL複製到目標機器的.NET Framework文件夾,以便SSIS運行時可以在包驗證時找到它們。