2017-06-22 71 views
1

我一直在研究和測試這個錯誤一段時間了。 enter image description hereDTS腳本任務:由於引用的DLL引起的SSIS任務中的運行時錯誤

我已將所有我的代碼註釋掉了,我的Try:Catch嘗試更容易地找到問題。代碼如下所示:

using DataLoader; 
//other references and namespace excluded for sake of space 
public void Main() 
    { 
     try 
     { 
      var process = new LoadProcess(); 

      Dts.TaskResult = (int)ScriptResults.Success; 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.ToString()); 
      Dts.TaskResult = (int)ScriptResults.Failure; 
     } 
    } 

LoadProcess()是另一個庫中的類變量。我想確保代碼能夠在腳本任務之外運行,所以我試着在一個單獨的控制檯應用程序中運行它,並且使用相同的DLL運行良好。 我確保.NET framwork在屬性中設置爲4.5(我也嘗試了4.5.1和4.5.2和4.6以確保),並確保我的環境變量比2800最大長度更短。

這是解決方案資源管理器是什麼樣子的腳本任務:enter image description here

有額外的引用在那裏的情況下,所需的DLL他們一些奇怪的原因。

如果您有任何想法可能導致此錯誤的原因,請讓我知道,因爲我一直被困在它上很長時間。感謝您的時間。

回答

0

經過大量測試後,我發現這個錯誤是由於腳本組件無法訪問被引用的DLL而導致的。錯誤:當無法找到腳本中的某個引用(如文件)中的某個引用不存在錯誤或未找到某個庫時,將引發「異常已由調用的目標拋出」。

這是因爲腳本組件的位置存儲在一個單獨的位置,而不是SSIS包的實際解決方案使DLL無法訪問。我希望這有幫助!