f#.net framework 4.0和typeproviders

bor*_*ork 1 f# websharper type-providers

好吧我的第三个问题在堆栈上再次关于同一主题:-)

所以我决定在appharbor上传我的应用程序内置的websharper,但当然有问题.在尝试使用visual studio 2012和.net framework 4.5并获得对我来说无法解决的奇怪错误(我不想整天google)之后我决定使用vstudio 2010和.NET framework 4.0.一切都很顺利(我复制了typeproviders.dll)但appharbore上有编译错误.这是一个日志.http://pastebin.com/r9MtegHH,如果你懒得点击这里是一个问题:

D:\temp\ovuxcbrh.4p1\input\borkfork\borkfork\Website\borkData.fs(19,102): error FS0010: Unexpected symbol '=' in type arguments. Expected ',', '>' or other token. [D:\temp\ovuxcbrh.4p1\input\borkfork\borkfork\Website\Website.fsproj]
Run Code Online (Sandbox Code Playgroud)

它在我的vstudio 2010上工作正常.代码行是:

    type  internal dbSchema = Microsoft.FSharp.Data.TypeProviders.SqlDataConnection<ConnectionString = @"Data Source=IRON;Initial Catalog=borkdorkfork;Integrated Security=True">
Run Code Online (Sandbox Code Playgroud)

也许有一个问题,因为我还没有配置数据库覆盖,但它看起来像其他东西.好吧,我将配置db overhere并查看.

Joe*_*ler 6

使用类型提供程序的代码将在.NET 4.0上运行,前提是该代码已使用F#3.0编译器(针对.NET 4.0)进行编译,并引用FSharp.Core和FSharp.Data.TypeProviders 4.3.0.0,并将Copy Local设置为True.

这种情况下的问题是AppHarbor为您构建代码.由于它们尚未更新到.NET 4.5,因此您的代码正在使用F#2.0编译器进行编译,该编译器不了解类型提供程序.

如果AppHarbor有一种方法可以编译自己的二进制文件并进行部署,那就行了.

编辑:

我认为这可以在VS 2010上为您编译,因为.NET 4.5是.NET 4.0的就地替代品.它必须替换VS 2010使用的F#编译器.