4

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

然后我将我的主要开发机器升级到 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 的机器上发生。

有任何想法吗?

4

1 回答 1

2

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

于 2012-10-24T21:28:12.197 回答