visual-studio - 为什么我不能让 Suave 在 VS 2017 上工作?

标签 visual-studio f# suave

我在 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 等其他软件包。

关于什么是错的任何想法?

最佳答案

当然,你可以,但这可能只是一点工作:

enter image description here

您应该可以克隆 my repo如有必要。您会注意到我的 fsprojects 文件没有引用 FSharp.Core 的显式版本,因此目标版本和实际版本之间没有混淆。它实际上是 FSharp.Core 4.1 btw。

如果您正在使用原始解决方案,我会先制作一个新解决方案。

  • 将项目设置为 .NET 4.6.2(或任何你喜欢的)
  • 目标 F# 4.1
  • Nuget 温文尔雅

  • 添加这一点 nuget 将下载 FSharp.Core 并在您的项目中替换它。那样不是很好。
  • 从您的引用文献中删除 FSharp.Core
  • 从 Nuget 添加 FSharp.Core 4.1

  • 你很高兴:

    enter image description here

    我也建议你安装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/

    相关文章:

    f# - 有什么方法可以在 FAKE 中拥有多构建文件结构?

    f# - 如何在suave中处理 "OPTIONS"请求

    .net - 双击.csproj将打开整个sln,它是

    visual-studio - 在 Eclipse 中预先输入自动完成

    f# - F#中矩阵计算的改进

    f# - 重定向似乎不适用于 Suave

    database - visual studio 2010数据库项目,有没有可视化的方法?

    c# - DataReader 不返回行但数据存在

    使用 CPS/部分应用程序的 F# 执行顺序