2017-04-26 64 views
1

我很高興地使用Seq.replicate,Seq.rev和其他List,Array和Sequence APIs。然後我安裝了幾個軟件包,並且一些API停止工作,如Seq.replicate。如果我用鼠標指針懸停在Seq.replicate上,我會看到一個提示The value, constructor, namespace, or type 'replicate' is not defined的工具提示。爲什麼Seq.replicate消失?

我檢查了replicaterev和其他我不能再調用的函數在以前版本Microsoft.FSharp.Collections中不存在。所以也許我安裝的軟件包會強制更改舊版本。我試圖編輯文件package.config並刪除我最近安裝的軟件包(MathNet.Numerics.FSharpMathNet.Numerics),但這並沒有解決問題。

有關如何處理此問題的任何建議?

+1

也許你確實引用了舊版本的FSharp.Core? 1.檢查是否可以用全新的解決方案取回這些功能。 2.如果需要nuget FSharp.Core和/或使用bindig重定向與paket。您也可以在paket.dependencies中指定版本號。 – s952163

+0

我正在使用NuGet。我使用Paket重新創建了整個解決方案,現在一切正常。仍然不確定問題是什麼。 – Soldalma

+1

這有點難說,但在很多情況下,軟件包的目標都是可以運行的最低版本。因此,例如對於Fsharp 3.1,會有一些參考。 Nuget會選擇它並下載該FSharp.Core,混淆整個解決方案。 Paket傾向於以更穩定的方式處理綁定重定向和版本。 – s952163

回答

1

是否有一個Nuget軟件包安裝了舊的FSharp.Core,它已經替換了您使用的默認FSharp.Core(不是來自Nuget)?

嘗試檢查Nuget包管理器,看看是否有更新的FSharp.Core(4.1.something),您可以安裝它來替換已添加到項目中的舊版本。