Почему подделка Fake / F# не работает на путях UNC
У меня есть небольшой тестовый скрипт, воспроизводящий проблему
// 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# globbing?
1 ответ
Решение
Не слишком удобный для пользователя, но шар не распознает абсолютные пути. Вы должны установить базовый каталог так
// 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 )