2012-10-24 58 views
4

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

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

不过,我只是重新铺设一个单独的机器使用Windows 8和VS2012,并加载该机器上的解决方案会导致编译失败,作为该项目的目标是F#3.0和fparsec/fsharp的PowerPack不会出现编译了。

是否有可能在这个新的Windows上安装FSharp 2.0 SDK(如果是这样,我在哪里得到它?)8位机,并得到解决再编译,或者我需要做别的事情来获得这在旧的和新的机器上工作?

更新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的机器上。

任何想法?

+0

看起来像我的新问题一样,这里记录: https://bitbucket.org/riles01/fparsec/issue/1/nuget-package-not-working-with-vs2012去尝试绑定重定向,并确认是否可以解决问题。从VS2010升级的猜测环境已经在GAC中安装了F#2.0核心库? – Bittercoder

+0

请注意,NuGet包当前不包含最新版本的FParsec。如果您有与NuGet包问题,请从https://bitbucket.org/fparsec/main/overview尝试最新版本FParsec的,如果你那么仍然有问题,请提交一票。 –

回答

2

如果你设定的目标框架,以“4.0”(或更小),它应该编译与F#2.0(有一些不错的新功能,如自动属性)。我没有理由坚持要放弃这些新功能,绝对没有理由忽略F#3.0附带的所有错误修复。

+0

我发现重新启动机器后初始编译错误消失了,它已经是目标.Net Framework 4.0。但是,我现在有一个新问题 - 将更新问题。 – Bittercoder

+0

@Bittercoder看来Ryan Riley已经解决了你的新问题。 –