Почему подделка 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 )
Другие вопросы по тегам