SSIS ForEach从变量枚举器,使用C#创建的列表-变量中的对象不包含枚举器

时间:2018-11-30 16:20:29

标签: c# visual-studio-2015 ssis

我一直在努力重构一个SSIS程序包,该程序包将一堆日志文件复制到我们网络上的文件夹中,检查目标文件夹中的所有文件,然后删除所有超过我们保留策略的文件。似乎除了上面的错误外,其他所有功能都应该起作用。

概述: 对象类型的变量“ dailyFilesToDelete”,由ForEach文件循环内的脚本任务填充。 我简化了代码,添加了一个文件来创建该文件,以用来测试该新程序包,并尝试着手解决问题。

var fileListDelete = new List<string>();
fileListDelete.Add(@"Q:\xpcttvcpc_live_Full_201912050000.bak");
Dts.Variables["dailyFilesToDelete"].Value = fileListDelete.GetEnumerator();
Dts.TaskResult = (int)ScriptResults.Success;

下一步是失败的Foreach循环。

枚举器:从变量枚举器中获取

枚举器变量:User :: dailyFilesToDelete

变量映射:User :: deleteFileName

我怀疑问题出在我如何将字符串列表传递到dailyFilesToDelete中。我最初是传入List本身的,一旦看到“变量不包含枚举数”错误,我确定添加GetEnumerator调用将解决此问题。

1 个答案:

答案 0 :(得分:3)

我相信您的问题是将枚举数结果分配给该变量。就像

Dts.Variables["dailyFilesToDelete"].Value = fileListDelete;

在幕后,SSIS Foreach枚举器将调用枚举器方法使魔术发生。