[英]Why can't I import a C# namespace in interactive mode in VS2017?
[英]Why can't I get Suave to work on VS 2017?
我在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'”但是当光标悬停在左侧黄色区域时没有任何建议。 (也许那是因为我使用的是Community Edition?)
无论如何,我在代码中添加了open Suave
,所以我有:
open Suave
[<EntryPoint>]
let main argv =
startWebServer
0 // return an integer exit code
此时我在Suave下出现红色波形,并且错误消息“未定义名称空间或模块'Suave'。”
如果我在解决方案资源管理器中右键单击Suave然后选择“发送到交互式”,那么我可以在F#Interactive中打开Suave
。
我可以安装和使用像Deedle这样的其他软件包没有问题。
关于什么是错的任何想法?
当然,你可以,但它可能只是一点点工作:
如有必要,您应该可以克隆我的仓库 。 您会注意到我的fsprojects文件没有引用FSharp.Core的显式版本,因此Target和实际版本之间没有混淆。 它实际上是FSharp.Core 4.1 btw。
如果您使用原始解决方案,我会先制作一个新解决方案。
添加此点nuget将下载FSharp.Core并将其替换为您的项目。 那样不是很好。
你很高兴去:
我还建议您安装Paket for VS2017。 然后,您可以从VS中的“工具”菜单访问它。 这样你就可以将Suave和FSharp.core添加到你的paket.references和dependencies文件中,设置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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.