我注意到添加軟件包有時會破壞我的代碼。諸如Seq.replicate
和之類的函數正在工作中會得到紅色波浪線並且程序不再運行。這裏是一個應該重現問題的詳細過程(我正在使用VS Community Edition 2017
):爲什麼添加一些軟件包會破壞我的代碼?
1)創建一個項目。
2)Program.fs
包含代碼:
[<EntryPoint>]
let main argv =
printfn "%A" argv
0 // return an integer exit code
3)添加的兩行代碼如下:
[<EntryPoint>]
let main argv =
let repla = Seq.replicate 10 "A"
printfn "%A" (repla |> List.ofSeq |> List.take 5)
printfn "%A" argv
0 // return an integer exit code
3)命中Ctrl+F5
,程序運行沒有任何問題。
4)右鍵點擊Solution Explorer
上的References
。點擊Manage Nuget Packages...
。
5)點擊Browse
。
6)搜索Newtonsoft.Json
並安裝它。
7)點擊Ctrl+F5
,程序運行沒有任何問題。控制檯打印
["A"; "A"; "A"; "A"; "A"]
[||]
8)繼續如步驟4至6,並使用Nuget
安裝包MathNet.Numerics
。
9)點擊Ctrl+F5
,程序運行沒有任何問題。控制檯打印
["A"; "A"; "A"; "A"; "A"] [||]
10)繼續,如步驟4至6,並使用Nuget
安裝包MathNet.Numerics.FSharp
。
11)點擊Program.fs
標籤。可怕的紅色波浪線出現在Seq.replicate and
List.take`下。
12)命中Ctrl+F5
。一個對話框彈出以下消息:
There were build errors. Would you like to continue and run the last successful build?
問題:
一)究竟是怎麼回事?
b)這是一個與MathNet.Numerics.FSharp
中的問題或者安裝的軟件包的特定組合或安裝順序相關的獨立案例嗎?或者這是一個常見問題?
c)在使用Nuget時可以避免這個問題嗎?
d)如果沒有,是否可以通過其他方式安裝(而不是Nuget)來避免此問題?
你安裝什麼版本的軟件包? – mydogisbox
(1)紅色波浪下的錯誤是什麼? (2)你有沒有注意到,如果安裝'MathNet.Numerics.FSharp'已經導致安裝任何_other_軟件包(由於是傳遞依賴)? –
@FyodorSoikin - 紅色波浪下的錯誤是'值,構造函數,命名空間或類型'replicate'is not defined'。當安裝'MathNet.Numerics.FSharp'時,它也會安裝'FSharp.Core.3.1.2.5'。 – Soldalma