我试图使用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 ???? )
如何将包含set的文件转换为匹配语句?
发布于 2017-02-04 22:52:09
为什么需要为复制输出创建单独的目标,同时可以在构建目标本身中设置输出目录,如下所示(MSBUILD示例)。您可以根据构建脚本的位置设置像OutDir和源代码路径这样的路径(例如在应用程序根目录下的构建脚本)。
Target "Build" (fun _ ->
!! "**/*.csproj"
-- "**/*.Tests.csproj"
|> MSBuildRelease OutDir "Rebuild"
|> Log "Building Projects: "请参考http://fsharp.github.io/FAKE/apidocs/fake-msbuildhelper.html获得更多信息。
发布于 2017-02-23 08:35:55
如果你想复制每一个文件(例如。*.*) (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"))。
可能还有其他指定文件的方法。但这对我有用。
https://stackoverflow.com/questions/36922801
复制相似问题