CopyRecursive 在 FAKE 脚本中不起作用

CopyRecursive not working in FAKE script

我在我的 FAKE 构建脚本中定义了以下目标。它正在被执行。我已经使用跟踪语句验证了这一点。 "MyWebApp" 的文件夹中有一个大文件结构。我在目标文件夹中没有输出。我可能做错了什么?

Target "Push" (fun _ ->
    let dir= FileSystemHelper.currentDirectory
    let src = dir+ @"\deploy\" + version + @"\MyWebApp"
    let dest = @"c:\windows\temp\deploy\" + version
    CopyRecursive src dest |> ignore
()

谢谢 吉姆

如果你看CopyRecursivedefinition

let CopyRecursive dir outputDir = copyRecursive (directoryInfo dir) (directoryInfo outputDir)

您可能会注意到它表示部分求值(并且,顺便说一下,目前标记为 obsolete)函数 copyRecursive 具有签名 bool->string list.

您的脚本将这个部分评估的函数值发送到 ignore,显然,结果没有任何反应。

为了让 copyRecursive 完成它的工作,只需提供缺少的类型为 bool 的第三个输入参数,它定义函数是否应该覆盖目标目录中具有相同名称的文件。假设这是您想要的行为,只需将脚本中的相应行更改为

CopyRecursive src dest true |> ignore

这将允许 copyRecursive 执行它的副作用复制魔术,返回复制文件的名称列表,您可以用 ignore 丢弃。