我正在学习Fake 5(F#Make),并且正在阅读Getting Started教程。当我运行以下代码时,我收到一条错误消息:tryscript.fsx (6,7)-(6,54): Error FS0001: The type 'Fake.IO.IGlobbingPattern' is not compatible with the type 'seq<'a>'
#r "paket: nuget Fake.IO.FileSystem //"
open Fake.IO.Globbing.Operators
let csProjectFiles = !! "src/app/**/*.csproj"
csProjectFiles
|> Seq.iter (fun x -> printfn "ProjectFile: %s" x)
// for projectFile in csProjectFiles do
// printfn "F# ProjectFile: %s" projectFile
但是,如果我注释掉以csProjectFiles |> ...
开头的两行并取消注释最后两行,则将得到文件名的预期输出。
根据{{3}}和Ionide工具提示,!!
应该返回一系列文件名。有人可以告诉我我可能做错了什么吗?
P.S。我正在使用通过dotnet tool install fake-cli -g
UPD。对于此问题,我没有任何解决方案。 Windows 10更新后,它自行解决,我删除了%HOMEPATH\.nuget
,%HOMEPATH%\AppData\Local\Nuget
中的Nuget程序包缓存,并删除了.fake
文件夹并将文件锁定为FAKE脚本所在的文件夹,然后重新运行脚本再次。
如果您仍然面临类似的问题,则在清除所有缓存和运行后的fake -vv run <yourScriptName>.fsx
的归档内容后,开发人员会要求扩展日志%HOMEPATH%\.nuget\packages\netstandard.library
。
答案 0 :(得分:1)
仅出于完整性考虑,可以在以下位置找到报告的问题:https://github.com/fsharp/FAKE/issues/2062
如果有人遇到此问题,请打开一个新的问题(并链接旧的问题)并提供以下信息:
可以清理所有内容并发送伪造的-vv输出,运行tryscript.fsx并附加日志文件吗? NetStandard.Library软件包确实有些令人毛骨悚然
您是否还可以压缩并附加文件夹C:\ Users \ .nuget \ packages \ netstandard.library,然后尝试将其删除(并为此再次创建一个日志文件)?
我认为这是一个缓存问题或一个F#编译器错误,或两者兼而有之。