【发布时间】:2017-04-18 13:30:30
【问题描述】:
我在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,然后选择“Send to Interactive”,那么我可以在 F# Interactive 中打开 Suave。
我可以毫无问题地安装和使用 Deedle 等其他软件包。
有什么想法吗?
【问题讨论】:
-
您能否将您的
.fsproj文件发布到 Gist 或 pastebin,然后从您的问题中链接它?可能是引用在某种程度上不正确。另一件事是 installing the nightly builds of the Visual F# Tools:“强烈建议您每晚安装最新版本。 已经修复了许多错误、性能改进和新功能,使整体体验比VS 2017 版本中提供的内容。” (强调原文) -
乍一看,我看不出有什么明显的问题。如果您安装 Visual F# 工具的夜间版本会发生什么?这能解决吗?我知道与最终 Visual Studio 版本一起发布的 Visual F# 工具版本有一些错误,这些错误在夜间构建中很快得到修复,但我不知道细节。所以这是我的下一个建议。如果这不起作用,请尝试安装 VS Code 和 Ionide,并查看 Ionide 是否在 Visual Studio 无法处理的地方处理它。所有这些都将为我们提供更多数据点,以帮助我们找出问题的解决方案。
-
如果您没有获得自动完成功能,则说明您的 Visual F# Tools 安装有问题。我不使用 Visual Studio 进行 F# 开发,因为我的大部分开发工作都是在 Linux 上完成的,所以我无法确切告诉你要寻找什么——但听起来你的问题主要是由“有问题您的 Visual F# 工具安装”。所以也许扩展菜单(在 VS 中的任何位置)是开始的地方。
-
顺便说一句,我不确定 Suave 需要或期望什么 F# Core 版本,但您引用的是 F#4.0:
<HintPath>..\packages\FSharp.Core.4.0.0.1\lib\net40\FSharp.Core.dll</HintPath>,但是您的目标是 F# 4.1:@987654333 @. -
你当然应该更新它。 :) 你能否参考我在SO post 中关于安装 VF# 工具的夜间版本的回答。关于您的具体 Suave 问题,请参见下文。如果您正在使用它,请添加
Paket。
标签: visual-studio f# suave