f# - F# Fake globbing 运算符和 MSBuild
问题描述
我正在学习 Fake 5 (F# Make),并且正在学习入门教程。当我运行以下代码时,我收到一条错误消息: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 |> ...
并取消注释最后两行,我将得到预期的文件名输出。根据文档和 Ionide 工具提示,!!
应该返回一系列文件名。有人可以告诉我我可能做错了什么吗?
PS我正在使用安装的假5.3.1dotnet tool install fake-cli -g
UPD。对于这个问题,我没有任何解决方案。它在 Windows 10 获得更新后自行解决,我删除了 Nuget 包缓存%HOMEPATH\.nuget
,%HOMEPATH%\AppData\Local\Nuget
删除.fake
了文件夹并将文件锁定在与 FAKE 脚本相同的文件夹中,然后再次重新运行脚本。
如果您仍然面临类似的问题,开发人员会fake -vv run <yourScriptName>.fsx
在您清除所有缓存后要求扩展日志,并%HOMEPATH%\.nuget\packages\netstandard.library
在此运行后归档内容。
解决方案
为了完整起见,报告的问题可以在这里找到:https ://github.com/fsharp/FAKE/issues/2062
如果有人遇到此问题,请打开一个新问题(并链接旧问题)并提供以下信息:
您可以清理所有内容并发送 fake -vv run tryscript.fsx 的输出并附加日志文件吗?NetStandard.Library 包确实有些可疑
您还可以压缩并附加文件夹 C:\Users\.nuget\packages\netstandard.library 然后尝试删除它(并再次为此创建一个日志文件)吗?
我认为这是缓存问题或 F# 编译器错误或两者兼而有之。
推荐阅读
- java - 如何从主线程超时java线程?
- python - 为什么 Python 的 cProfile 报告的经过时间与使用 PyTorch 时使用 time.time() 增量不同?
- python - 按 1 列 1 行打印列表元素,然后 1 列 2 行,依此类推,直到列表末尾
- jquery - destroy datepicker on after select sepesific value
- ruby - 我该如何解决这个 codewars kata。(真的很简单)红宝石
- javascript - Chrome 正在阻止第三方 cookie;要求我设置相同站点属性 = 无和安全,但没有指定如何或在哪里?
- python - 使用点击库(调用函数)时“接受 0 个位置参数,但给出了 1 个”
- javascript - Angular 并且在 document.ready() 之后只调用一次 JS 事件?
- bash - 有没有一种简单的方法来制作多个读取命令而不是手动输入每个命令?
- aws-lambda - AWS APIGW - 访问 Lambda 映射模板中集成请求的静态 HTTP 标头