我在 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 在视频中建议“Open Suave”,因为无法识别 startWebServer。我在编辑器中复制了相同的代码,在文件
Program.fs
中.出现错误消息“未定义值或构造函数'startWebServer'”但当光标悬停在左侧黄色区域时没有任何建议。 (也许是因为我使用的是社区版?)无论如何,我添加了
open Suave
到代码,所以我有:open Suave
[<EntryPoint>]
let main argv =
startWebServer
0 // return an integer exit code
此时,我在 Suave 下看到一个红色波浪线,并且错误消息“未定义命名空间或模块‘Suave’。”
如果我在解决方案资源管理器中右键单击 Suave,然后选择“发送到交互式”,那么我可以打开
Suave
在 F# 交互中。我可以毫无问题地安装和使用 Deedle 等其他软件包。
关于什么是错的任何想法?
最佳答案
当然,你可以,但这可能只是一点工作:
您应该可以克隆 my repo如有必要。您会注意到我的 fsprojects 文件没有引用 FSharp.Core 的显式版本,因此目标版本和实际版本之间没有混淆。它实际上是 FSharp.Core 4.1 btw。
如果您正在使用原始解决方案,我会先制作一个新解决方案。
添加这一点 nuget 将下载 FSharp.Core 并在您的项目中替换它。那样不是很好。
你很高兴:
我也建议你安装Paket对于 VS2017。然后,您可以从 VS 的“工具”菜单访问它。这样您就可以将 Suave 和 FSharp.core 添加到您的 paket.references 和依赖项文件中,设置
redirects: on
,从菜单中运行 Paket install 并忘记所有这些版本不匹配的业务。如果您使用大量 fsx 文件,这非常好,因为 paket 会从路径中删除版本号。请查看 GitHub 上解决方案中的 paket.dependencies 和 paket.references 文件:解决方案根目录中的 paket.dependencies:
framework: = net462
source https://www.nuget.org/api/v2
redirects: on
nuget Suave
项目文件夹中的 paket.references:
Suave
FSharp.Core
关于visual-studio - 为什么我不能让 Suave 在 VS 2017 上工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43460879/