2016-01-22 70 views
4

我刚刚发现这个目标通过ProjectScaffold产生假构建脚本:运营商</>在FAKE构建脚本中做了什么?

// Copies binaries from default VS location to expected bin folder 
// But keeps a subdirectory structure for each project in the 
// src folder to support multiple project outputs 
Target "CopyBinaries" (fun _ -> 
    !! "src/**/*.??proj" 
    -- "src/**/*.shproj" 
    |> Seq.map (fun f -> ((System.IO.Path.GetDirectoryName f) 
      </> "bin/Release", "bin" 
      </> (System.IO.Path.GetFileNameWithoutExtension f))) 
    |> Seq.iter (fun (fromDir, toDir) -> CopyDir toDir fromDir (fun _ -> true)) 
) 

我的问题:这是什么奇怪的</>运营商呢?

(我的互联网搜索并不是很成功。)

回答

9

操作</>是中缀运算符和合并两个路径段成一个完整的路径。在这方面它几乎与@@操作符相同。 </>运算符是在@@运算符之后创建的,因为当第二个路径以root开头时,@@运算符在类UNIX系统上表现异常。

以下是从GitHub上的问题描述中取得的示例。

"src" @@ "/home/projects/something" returns "src/home/projects/something" 

    "src" </> "/home/projects/something" returns "/home/projects/something" 

操作员在EnvironmentHelper定义: https://fsharp.github.io/FAKE/apidocs/fake-environmenthelper.html

这些链接指向问题描述:(习惯于看的Unix) https://github.com/fsharp/FAKE/issues/670https://github.com/fsharp/FAKE/pull/695

+0

在我眼里,@@操作符是完全正常的,并且完全符合您期望的操作。而只是很奇怪。 –