我在https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-F-Tools上看到了一个视频,其中创建了一个使用Suave的项目。我试图准确地跟踪所做的事情,但我安装VS 2017,今天刚刚更新,行为完全不同。
首先,我安装的Suave和视频完全一样,它出现在我的参考资料中,在mscorlib和System之间,就像在视频中一样。
然后,视频显示以下代码:
[<EntryPoint>]
let main argv =
startWebServer
0 // return an integer exit code在这一点上VS 2017建议“开放Suave”在视频中,因为startWebServer是不被认可的。我在编辑器中在Program.fs文件中复制了相同的代码。有一条错误消息“未定义值或构造函数'startWebServer‘”,但当光标悬停在左侧黄色区域时,没有任何建议。(也许是因为我使用了Community?)
在任何情况下,我都将open Suave添加到代码中,因此我有:
open Suave
[<EntryPoint>]
let main argv =
startWebServer
0 // return an integer exit code此时,我在Suave下得到一个红色的切换,错误消息是“名称空间或模块'Suave‘是未定义的。”
如果我在解决方案资源管理器中右键单击Suave,然后选择"Send“,那么我可以在Suave交互中打开F#。
我可以安装和使用其他软件包,如Deedle,没有任何问题。
有什么不对的想法吗?
发布于 2017-04-18 05:25:29
当然,你可以,但这可能只是一个小小的工作:

如果有必要,您应该能够克隆我的回购。您将注意到,我的fsprojects文件没有引用FSharp.Core的显式版本,因此在目标和实际版本之间没有混淆。它实际上是FSharp.Core 4.1兆瓦。
如果你是从原来的解决方案工作,我会先做一个新的解决方案。
添加这一点,nuget将下载FSharp.Core并在项目中替换它。那可不太好。
你可以走了:

我还建议您安装帕克特 for VS2017。然后,您可以从VS中的“工具”菜单中访问它。这样,您就可以将Suave和FSharp.core添加到您的paket.references和依赖项文件中,设置redirects: on,从菜单中运行Paket,并忘记所有这些版本不匹配的业务。如果您正在使用大量的fsx文件,这是非常好的,因为paket将从路径中删除版本号。请查看解决方案中的paket.dependencies和paket.references文件GitHub:
解决方案根中的paket.dependencies:
framework: = net462
source https://www.nuget.org/api/v2
redirects: on
nuget Suave项目文件夹中的paket.references:
Suave
FSharp.Corehttps://stackoverflow.com/questions/43460879
复制相似问题