将 FileIncludes 转换为 filefilter 谓词
Convert FileIncludes to filefilter predicate
我正在尝试使用 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 ????
)
如何获取文件包含集并将其转换为匹配语句?
为什么您需要创建单独的目标来复制输出,而您可以在构建目标本身中设置输出目录,如下所示(MSBUILD 示例)。
您可以根据构建脚本的位置设置路径,如 OutDir 和源代码路径(例如在应用程序根目录下构建脚本)
Target "Build" (fun _ ->
!! "**/*.csproj"
-- "**/*.Tests.csproj"
|> MSBuildRelease OutDir "Rebuild"
|> Log "Building Projects: "
更多信息请参考http://fsharp.github.io/FAKE/apidocs/fake-msbuildhelper.html。
如果您想复制每个文件(例如*.*
),(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"))
。
可能还有其他指定文件的方法。但这对我有用。
我正在尝试使用 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 ????
)
如何获取文件包含集并将其转换为匹配语句?
为什么您需要创建单独的目标来复制输出,而您可以在构建目标本身中设置输出目录,如下所示(MSBUILD 示例)。 您可以根据构建脚本的位置设置路径,如 OutDir 和源代码路径(例如在应用程序根目录下构建脚本)
Target "Build" (fun _ ->
!! "**/*.csproj"
-- "**/*.Tests.csproj"
|> MSBuildRelease OutDir "Rebuild"
|> Log "Building Projects: "
更多信息请参考http://fsharp.github.io/FAKE/apidocs/fake-msbuildhelper.html。
如果您想复制每个文件(例如*.*
),(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"))
。
可能还有其他指定文件的方法。但这对我有用。