如何复制文件夹-FAKE F#MAKE

5 f# f#-3.0 f#-fake f#-fake-4

我正在使用 CopyFAKE功能将文件从project1复制到release文件夹,我正在使用以下代码:

Target "CopyProject1" (fun _ ->
    !!(buildDir @@ "/_PublishWebsites/Project1/**/*.*")
        |> Copy releaseDir
)
Run Code Online (Sandbox Code Playgroud)

将文件从Project1文件夹复制到release文件夹,然后将Project1内部的所有文件都复制到release文件夹,但是我想在我的release文件夹中维护Project1的文件夹结构,即我想复制Project1的文件夹以发布,这可能吗还是我必须在发布文件夹中创建子文件夹并一一复制。如果没有这种方法,那么可以使用自定义任务吗?

如果有人可以在这方面提供帮助,那将是非常有帮助的。

Pan*_*vos 3

这可以通过CopyWithSubfoldersTo获得。它的描述说:

将多个文件组(每个文件组由一个 FileIncludes 对象表示)复制到保留从每个 FileIncludes 的 BaseDirectory 开始的文件夹结构的目标文件夹。

参数与复制相同:

Target "CopyProject1" (fun _ ->
    [!!(buildDir @@ "/_PublishWebsites/Project1/**/*.*")]
        |> CopyWithSubfoldersTo releaseDir
)
Run Code Online (Sandbox Code Playgroud)

编辑

CopyWithSubfoldersToseq<FileInculdes>while一起使用!!返回单个FileIncludes. 在使用之前必须将其转换为单个元素列表。