f#.net framework 4.0和类型提供程序

f#.net framework 4.0和类型提供程序,f#,type-providers,websharper,F#,Type Providers,Websharper,我的第三个问题是关于堆栈的,也是关于同一主题的:-) 所以我决定在appharbor上上传我在websharper中构建的应用程序,但当然有一个问题。在尝试使用visual studio 2012和.net framework 4.5并遇到无法解决的奇怪错误(我不想整天用谷歌搜索)后,我决定使用vstudio 2010和.net framework 4.0。 一切正常(我复制了typeproviders.dll),但appharbore上存在编译错误。这是一份日志。如果你懒得点击这里,这里有一个

我的第三个问题是关于堆栈的,也是关于同一主题的:-)

所以我决定在appharbor上上传我在websharper中构建的应用程序,但当然有一个问题。在尝试使用visual studio 2012和.net framework 4.5并遇到无法解决的奇怪错误(我不想整天用谷歌搜索)后,我决定使用vstudio 2010和.net framework 4.0。 一切正常(我复制了typeproviders.dll),但appharbore上存在编译错误。这是一份日志。如果你懒得点击这里,这里有一个问题:

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]
它在我的vstudio 2010上运行良好。 代码行是:

    type  internal dbSchema = Microsoft.FSharp.Data.TypeProviders.SqlDataConnection<ConnectionString = @"Data Source=IRON;Initial Catalog=borkdorkfork;Integrated Security=True">
type internal dbSchema=Microsoft.FSharp.Data.TypeProviders.SqlDataConnection

可能有一个问题,因为我还没有在这里配置数据库,但它看起来像其他东西。我将在这里配置db并查看

类型提供程序需要.NET 4.5。该错误是标准语法错误,因为它希望您关闭三角括号,它认为三角括号不是类型提供程序参数,而是泛型参数——F#2.0中三角括号的唯一用途。

类型提供程序需要.NET 4.5。该错误是标准语法错误,因为它希望您关闭三角括号,它认为三角括号不是类型提供程序参数,而是泛型参数。-在F#2.0中,三角括号的唯一用途。

使用类型提供程序的代码将在.NET 4.0上运行,假设代码是使用F#3.0编译器(目标为.NET 4.0)编译的,并且引用了FSharp.Core和FSharp.Data.TypeProviders 4.3.0.0,并将Copy Local设置为True

本例中的问题是AppHarbor为您构建代码。由于它们尚未更新到.NET4.5,因此您的代码正在使用F#2.0编译器进行编译,而F#2.0编译器不理解类型提供程序

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

编辑:


我认为这可以在VS2010上编译,因为.NET4.5已经取代了.NET4.0。它还必须替换VS 2010使用的F#编译器。

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

本例中的问题是AppHarbor为您构建代码。由于它们尚未更新到.NET4.5,因此您的代码正在使用F#2.0编译器进行编译,而F#2.0编译器不理解类型提供程序

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

编辑:


我认为这可以在VS2010上编译,因为.NET4.5已经取代了.NET4.0。它一定也在取代VS 2010使用的F#编译器。

我不明白你重新查询.net 3.5是什么意思。应用程序在localhost和.net framwork>=4.0上运行良好。在3.5上,我犯了数百万个错误。请详细说明answerType提供程序是否需要F#3.0编译器和.NET 4.0或更高版本。它们不需要.NET4.5。一个使用F#3.0编译器编译的程序,但目标是.NET4.0框架,将在一台从未见过.NET4.5的机器上运行得非常愉快。本例中的问题是AppHarbor编译了您的代码,他们使用的是F#2.0编译器。这里有一个参考,除了我上周刚刚做了这件事,它工作得很好外:@JoelMueller的确,您是对的-FSharp.Core 4.3不需要.NET 4.5(我想我记得Beta版有这样一个限制,但似乎我错了。)borkdorfork-你记得使用FSharp.Core 4.3吗?如果需要,请重定向到它?我确实使用了FSharp.Core版本。我是从C:\Program Files(x86)添加的\将Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0引用到bin\Debug版本并添加了对它的引用,但似乎我不知道如何告诉vstudio使用哪个版本。您能告诉我如何告诉vstudio使用哪个版本吗。我不明白您重新查询.net 3.5的意思。应用程序在本地主机和.net framwork上运行得非常好>=4.0。在3.5上,我会遇到数百万个错误。请详细说明您的answerType提供程序需要F#3.0编译器和.NET 4.0或更高版本。它们不需要.NET 4.5。使用F#3.0编译器编译的程序,但目标是.NET 4.0框架,将在从未见过.NET 4.5的机器上非常愉快地运行。本例中的问题是AppHarbor编译了你的代码,他们使用的是F#2.0编译器。这里有一个参考资料,除了我上周刚刚做了这件事,它工作得很好:@JoelMueller的确,你是对的-FSharp.Core 4.3不需要.NET 4.5(我想我记得Beta版有这样一个限制,但似乎我错了).borkdorfork-您是否记得使用FSharp.Core 4.3,并在必要时重定向到它?我确实使用了FSharp.Core版本。我是从C:\Program Files(x86)添加的\将Assemblies\Microsoft\FSharp\3.0\Runtime\v4.0引用到bin\Debug版本并添加了对它的引用,但似乎我不知道如何告诉vstudio使用哪个版本。您能告诉我如何告诉vstudio使用哪个版本吗。