我注意到添加软件包有时会破坏我的代码。诸如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