我在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最大长度短。
如果DLL出于某种奇怪的原因需要它们,那里还有额外的引用。
如果您有任何想法可能导致此错误,请告诉我,因为我已经坚持了很长时间。谢谢你的时间。
答案 0 :(得分:1)
经过大量测试后,我发现此错误是由于脚本组件无法访问被引用的DLL而引起的。错误:"调用目标抛出异常"当无法找到脚本中的某个引用(例如文件不存在错误或未找到库)时抛出。
这是因为脚本组件的位置存储在与SSIS包的实际解决方案不同的位置,使得DLL无法访问。我希望这有帮助!