首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能让Suave去做VS 2017?

为什么我不能让Suave去做VS 2017?
EN

Stack Overflow用户
提问于 2017-04-17 22:51:06
回答 1查看 816关注 0票数 4

我在https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-F-Tools上看到了一个视频,其中创建了一个使用Suave的项目。我试图准确地跟踪所做的事情,但我安装VS 2017,今天刚刚更新,行为完全不同。

首先,我安装的Suave和视频完全一样,它出现在我的参考资料中,在mscorlibSystem之间,就像在视频中一样。

然后,视频显示以下代码:

代码语言:javascript
复制
[<EntryPoint>]
let main argv = 
    startWebServer
    0 // return an integer exit code

在这一点上VS 2017建议“开放Suave”在视频中,因为startWebServer是不被认可的。我在编辑器中在Program.fs文件中复制了相同的代码。有一条错误消息“未定义值或构造函数'startWebServer‘”,但当光标悬停在左侧黄色区域时,没有任何建议。(也许是因为我使用了Community?)

在任何情况下,我都将open Suave添加到代码中,因此我有:

代码语言:javascript
复制
open Suave

[<EntryPoint>]
let main argv = 
    startWebServer
    0 // return an integer exit code

此时,我在Suave下得到一个红色的切换,错误消息是“名称空间或模块'Suave‘是未定义的。”

如果我在解决方案资源管理器中右键单击Suave,然后选择"Send“,那么我可以在Suave交互中打开F#。

我可以安装和使用其他软件包,如Deedle,没有任何问题。

有什么不对的想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-18 05:25:29

当然,你可以,但这可能只是一个小小的工作:

如果有必要,您应该能够克隆我的回购。您将注意到,我的fsprojects文件没有引用FSharp.Core的显式版本,因此在目标和实际版本之间没有混淆。它实际上是FSharp.Core 4.1兆瓦。

如果你是从原来的解决方案工作,我会先做一个新的解决方案。

  1. 将项目设置为.NET 4.6.2 (或任何您想要的)
  2. 目标F# 4.1
  3. Nuget Suave

添加这一点,nuget将下载FSharp.Core并在项目中替换它。那可不太好。

  1. 从引用中删除FSharp.Core
  2. 从Nuget添加FSharp.Core 4.1

你可以走了:

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

解决方案根中的paket.dependencies:

代码语言:javascript
复制
framework: = net462
source https://www.nuget.org/api/v2
redirects: on

nuget Suave

项目文件夹中的paket.references:

代码语言:javascript
复制
Suave
FSharp.Core
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43460879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档