F#在.fs VS .fsx文件中编译VS Intellisense

时间:2018-11-21 11:13:27

标签: visual-studio f# intellisense

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

1 个答案:

答案 0 :(得分:1)

在我的情况下,这是由于我最初是在VS 2015上创建项目的,但是后来我不得不在VS2017上工作一段时间。切换到2017年时,由于某种原因在项目引用之间找不到FSharp.Core -我添加了另一个引用,但是我(错误地)保留了对dll的旧引用。

切换回VS2015会带回旧的FSharp.Core引用以及VS2107中添加的另一个引用。这导致了问题中所述的行为。

我仍然必须测试将项目带回到VS2017是否会导致FSharp.Core引用再次消失,其背后的原因。