首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将FileIncludes转换为filefilter谓词

将FileIncludes转换为filefilter谓词
EN

Stack Overflow用户
提问于 2016-04-28 18:32:15
回答 2查看 164关注 0票数 3

我试图使用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的文件转换为匹配语句?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-04 22:52:09

为什么需要为复制输出创建单独的目标,同时可以在构建目标本身中设置输出目录,如下所示(MSBUILD示例)。您可以根据构建脚本的位置设置像OutDir和源代码路径这样的路径(例如在应用程序根目录下的构建脚本)。

代码语言:javascript
运行
复制
 Target "Build" (fun _ -> 
!! "**/*.csproj"
-- "**/*.Tests.csproj"
    |> MSBuildRelease OutDir "Rebuild"
    |> Log "Building Projects: "

请参考http://fsharp.github.io/FAKE/apidocs/fake-msbuildhelper.html获得更多信息。

票数 0
EN

Stack Overflow用户

发布于 2017-02-23 08:35:55

如果你想复制每一个文件(例如。*.*) (fun x -> true)的过滤器谓词就足够了。

代码语言:javascript
运行
复制
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"))

可能还有其他指定文件的方法。但这对我有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36922801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档