20

我需要将 Foreach 循环中的文件夹设置为可变位置。我尝试将位置添加到我的包配置中,它的行为就像它工作一样,但是当我打开配置文件时,它不存在。

我将它设置为 Foreach 文件枚举器,路径硬编码,并检索完全限定的文件名。我的变量 Mappings 有一个索引为 0 的变量 CurrentFile。

因此,我已将其更改为 Foreach From Variable Enumerator,其 SourceFiles 变量为 \server\path*.*。但是现在它抱怨 CurrentFile,被分配的值的类型与变量类型(字符串)不同。

我猜我需要以某种方式将表达式与集合选项卡上的枚举器一起使用?如何?

  • 常规:Foreach 循环容器
  • 集合:来自 Varialbe 枚举器的 Foreach;变量是 User::SourcePath;表达式(未使用)
  • 变量映射:变量 User::CurrentFile,索引 0
  • 表达式:(未使用)

错误:MyPackage 处的 0xC001F009:分配给变量“User::CurrentFile”的值的类型与当前变量类型不同。变量在执行期间可能不会改变类型。变量类型是严格的,除了 Object 类型的变量。错误:Foreach 循环容器中的 0xC001C012:无法应用 ForEach 变量映射编号 1 到变量“User::CurrentFile”。

4

1 回答 1

30

一位同事向我展示了如何让它发挥作用。不要将其更改为“Foreach from Variable Enumerator”,而是将其保留为“Foreach File Enumerator”。

  • 集合:Foreach 文件枚举器;放入枚举器配置中的文件夹和文件。在表达式下,将目录设置为指向目录的用户变量(它将优先于您输入的文件夹);将 FileSpec 设置为指向文件的用户变量(它将优先于您输入的文件)。
Directory @[User::SourcePath]  (value: \\server\directory)
FileSpec @[User::CopyFileName] (value: *.*)
  • 变量映射:变量用户::当前文件,索引 0
  • 表达式:(未使用)
于 2011-03-30T18:01:29.970 回答