Visual Studio 2015,相同的F#4.0控制台应用程序。
两个文件,一个Program.fs
文件和一个Script.fsx
脚本文件,具有相同的代码:
open FSharp.Core
open Microsoft.FSharp.Collections
let seq = seq { 1 .. 3 }
let seqItem1 = Seq.nth(0) seq
let seqItem2 = Seq.item(0) seq
Program.fs
将无法编译:未定义“ .item”构造函数方法。没有更多来自智能感知的消息。Script.fsx
正常工作,但是Intellisense提示已弃用Seq.nth
,请改用Seq.item
。答案 0 :(得分:1)
在我的情况下,这是由于我最初是在VS 2015上创建项目的,但是后来我不得不在VS2017上工作一段时间。切换到2017年时,由于某种原因在项目引用之间找不到FSharp.Core
-我添加了另一个引用,但是我(错误地)保留了对dll的旧引用。
切换回VS2015会带回旧的FSharp.Core
引用以及VS2107中添加的另一个引用。这导致了问题中所述的行为。
我仍然必须测试将项目带回到VS2017是否会导致FSharp.Core
引用再次消失,其背后的原因。