F#伪全局运算符和MSBuild
我正在学习Fake 5(F#Make),我正在学习教程。运行以下代码时,我收到一条错误消息:F#伪全局运算符和MSBuild,f#,f#-fake,f#-fake-5,F#,F# Fake,F# Fake 5,我正在学习Fake 5(F#Make),我正在学习教程。运行以下代码时,我收到一条错误消息:tryscript.fsx(6,7)-(6,54):错误FS0001:类型'false.IO.IGlobbingPattern'与类型'seq…不兼容,取消注释最后两行,我将获得预期的文件名输出。 根据和Ionide工具提示应返回一系列文件名。有人能告诉我我可能做错了什么吗 另外,我使用的是Fake 5.3.1,安装时使用dotnet工具安装Fake cli-g UPD。我对这个问题没有任何解决办法。它在
tryscript.fsx(6,7)-(6,54):错误FS0001:类型'false.IO.IGlobbingPattern'与类型'seq…
不兼容,取消注释最后两行,我将获得预期的文件名输出。
根据和Ionide工具提示代码>应返回一系列文件名。有人能告诉我我可能做错了什么吗
另外,我使用的是Fake 5.3.1,安装时使用dotnet工具安装Fake cli-g
UPD。我对这个问题没有任何解决办法。它在Windows 10获得更新后自行解决,我删除了%HOMEPATH\.Nuget
,%HOMEPATH%\AppData\Local\Nuget
,并删除了。伪
文件夹和与伪脚本位于同一文件夹中的锁文件,然后重新运行脚本
如果您仍然面临类似的问题,则在清除所有缓存后,开发人员会要求扩展日志fake-vv run.fsx
,并在运行后存档%HOMEPATH%\.nuget\packages\netstandard.library
。为了完整起见,报告的问题可在此处找到:
如果有人遇到此问题,请打开新问题(并链接旧问题),并提供以下信息:
你能清理所有东西并发送fake-vv run tryscript.fsx的输出并附加日志文件吗?NetStandard.Library包确实有些可疑
您还可以压缩并附加文件夹C:\Users\.nuget\packages\netstandard.library,然后尝试删除它(并再次为此创建日志文件)
我认为这可能是缓存问题,也可能是F#编译器错误,或者两者兼而有之。如果在#r
指令中添加“nuget Fake.Core.Target//”行,会发生什么?我不知道Fake 5是如何被划分成包的,但是它的名字像Fake.Core
我希望它对工作正常是必不可少的。“nuget Fake.Core.Target//”行出现在您链接的入门教程的每个示例中,这一事实也表明它是Fake的一个重要部分。尝试将您的#r
更改为所看到的,看看这是否解决了问题。@rmun,添加false.Core.Target
没有帮助。我收到了相同的错误消息。我第一次遇到这个问题是在尝试Get Started页面中的示例时,当它们失败时,我使用文档中的代码创建了这个最小的示例。我现在没有合适的工具-使用组合(csProjectFiles>>Seq.iter
)而不是管道(csProjectFiles |>Seq.iter
)有什么不同吗?@psfinaki,我尝试了函数组合运算符>
,但得到了一个不同的错误:这个表达式的类型应该是“a->'b”,但这里的类型是“Fake.IO.IGlobbingPattern”
看着,我看到定义了一些扩展方法,因此,您可能需要打开适当的命名空间来激活这些扩展方法。打开Fake.IO
或Fake.IO.Globbing
命名空间(或两者)是否有帮助?
#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