【问题标题】:Compiling an F# 2.0 project in VS2012在 VS2012 中编译 F# 2.0 项目
【发布时间】:2012-10-24 19:28:52
【问题描述】:

我有一个适用于 VS2010 的解决方案,其中包括一些针对 F# 2.0 编译器/SDK、利用 fparsec 和 fsharp powerpack 的 F# 项目。

然后我将我的主要开发机器升级到VS2012,加载了解决方案并且能够正常编译。

但是,我刚刚用 Windows 8 和 VS2012 重新铺设了一台单独的机器,在该机器上加载解决方案会导致编译失败,因为该项目的目标是 F# 3.0,并且 fparsec/fsharp powerpack 似乎不再编译了。

是否可以在这台新的 windows 8 机器上安装 FSharp 2.0 SDK(如果是,我从哪里获得它?)并获得重新编译的解决方案,或者我需要做其他事情来获得这个在新旧机器上工作?

2012 年 10 月 25 日更新

重新启动 VS2012 后编译现在可以工作,但是在执行代码时,我遇到了与我的 F# 代码相关的意外错误:

Method not found: 'ParserResult`2<!!0,Microsoft.FSharp.Core.Unit> FParsec.CharParsers.run(
Microsoft.FSharp.Core.FSharpFunc`2<FParsec.CharStream`1<Microsoft.FSharp.Core.Unit>,
FParsec.Reply`1<!!0>>, System.String)'.

在首先使用 F# 安装 VS2010 然后升级到 vs2012 的机器上编译/执行相同的代码时不会发生这种情况 - 仅在仅安装了 vs2012 的机器上发生。

有什么想法吗?

【问题讨论】:

  • 看起来我的新问题与此处记录的问题相同:bitbucket.org/riles01/fparsec/issue/1/… 将尝试绑定重定向并确认是否可以解决问题。猜猜从VS2010升级的环境是否已经在GAC中安装了F# 2.0核心库?
  • 请注意,NuGet 包当前不包含最新版本的 FParsec。如果您在使用 NuGet 包时遇到问题,请从bitbucket.org/fparsec/main/overview 尝试最新版本的 FParsec,如果仍然有问题,请提交工单。

标签: visual-studio-2010 f# visual-studio-2012 fparsec


【解决方案1】:

如果您将目标框架设置为“4.0”(或更低),它的编译应该与 F# 2.0 相同(具有一些新的不错的功能,例如自动属性)。我认为没有理由坚持忽略新功能,也绝对没有理由忽略 F# 3.0 附带的所有错误修复。

【讨论】:

  • 我发现重启机器后初始编译错误消失了,它已经是目标.Net Framework 4.0。但是我现在有一个新问题 - 将更新问题。
  • @Bittercoder 看来 Ryan Riley 解决了你的新问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-09
相关资源
最近更新 更多