我尝试使用CopyDir
将构建工件复制到输出目录。
我不确定我应该如何定义CopyDir
作为参数的过滤谓词。我查看了文档并尝试在Google上搜索许多不同的关键字。
Target "Copy-Build-Output" (fun _ ->
let baseDir = (sourceDir + @"Trunk\Webroot")
let outputfiles =
!! (sourceDir @@ "**/*.*")
-- (sourceDir @@ "**/*.cs")
-- (sourceDir @@ "**/*.csproj")
-- (sourceDir @@ "**/*.vspscc")
-- (sourceDir @@ "**/*.cssscc")
-- (sourceDir @@ "web.config")
-- (sourceDir @@ "bin/*.xml")
-- (sourceDir @@ "obj/**")
CopyDir outputDir baseDir ????
)
如何获取文件包含集并将其转换为匹配语句?
答案 0 :(得分:0)
为什么需要为复制输出创建单独的目标,同时可以在构建目标本身中设置输出目录,如下所示(MSBUILD的示例)。 您可以根据构建脚本的位置设置OutDir和sourcecode路径之类的路径(应用程序根目录下的构建脚本示例)
Target "Build" (fun _ ->
!! "**/*.csproj"
-- "**/*.Tests.csproj"
|> MSBuildRelease OutDir "Rebuild"
|> Log "Building Projects: "
请参阅http://fsharp.github.io/FAKE/apidocs/fake-msbuildhelper.html了解详情。
答案 1 :(得分:0)
如果要复制每个文件(例如*.*
),则(fun x -> true)
的过滤谓词就足够了。
Target "Copy-Build-Output" (fun _ ->
let baseDir = (sourceDir + @"Trunk\Webroot")
let outputfiles =
!! (sourceDir @@ "**/*.*")
-- (sourceDir @@ "**/*.cs")
-- (sourceDir @@ "**/*.csproj")
-- (sourceDir @@ "**/*.vspscc")
-- (sourceDir @@ "**/*.cssscc")
-- (sourceDir @@ "web.config")
-- (sourceDir @@ "bin/*.xml")
-- (sourceDir @@ "obj/**")
CopyDir outputDir baseDir (fun x -> true)
)
过滤谓词是一个函数string -> bool
。这是以string
作为输入并返回bool
的任何函数。
因此,对于仅复制.png
张图片,您可以使用(fun x -> x.EndsWith(".png"))
。
可能还有其他指定文件的方法。但这对我有用。