DTS脚本任务:由于引用的DLL,SSIS任务中的运行时错误

时间:2017-06-22 17:30:38

标签: c# .net dll ssis

我一直在研究和测试这个错误。 enter image description here

我在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出于某种奇怪的原因需要它们,那里还有额外的引用。

如果您有任何想法可能导致此错误,请告诉我,因为我已经坚持了很长时间。谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

经过大量测试后,我发现此错误是由于脚本组件无法访问被引用的DLL而引起的。错误:"调用目标抛出异常"当无法找到脚本中的某个引用(例如文件不存在错误或未找到库)时抛出。

这是因为脚本组件的位置存储在与SSIS包的实际解决方案不同的位置,使得DLL无法访问。我希望这有帮助!