我有一个重现问题的小测试脚本
// include Fake lib
#r @"tools\FAKE\tools\FakeLib.dll"
open Fake
let root = @"\\wgprintsrv\FTP\FTPSoftware\FTPSW\weincad\release"
let glob = root @@ "**\*.dll"
trace glob
!! glob
|> Seq.iter (fun file -> trace file )
它什么也没列出。只是为了检查以下 powershell 命令
ls -R \\wgprintsrv\FTP\FTPSoftware\FTPSW\weincad\release -Filter *.dll
生成我期望的一切。如果我用本地相对路径替换 UNC 路径,那么一切正常。这是否可以变通,或者这是 UNC 路径和 F# 通配的核心问题?
最佳答案
不太用户友好,但 glob 无法识别绝对路径。你必须像这样设置基本目录
// include Fake lib
#r @"tools\FAKE\tools\FakeLib.dll"
open Fake
let root = @"\\wgprintsrv\FTP\FTPSoftware\FTPSW\weincad\release"
let glob = "**\*.dll"
trace glob
!! glob
|> SetBaseDir root
|> Seq.iter (fun file -> trace file )
关于powershell - 为什么 Fake/F# 通配在 UNC 路径上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24627470/