1

スタックに関する私の3番目の質問と、同じトピックについての質問:-)

そこで、websharper でビルドしたアプリケーションを appharbor にアップロードすることにしましたが、もちろん問題があります。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]

私のvstudio 2010では問題なく動作します。コード行は次のとおりです。

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

そこにデータベースをまだ構成していないため、問題がある可能性がありますが、別のように見えます。さて、そこにdbを設定して見ていきます。

4

2 に答える 2

6

タイププロバイダーを使用するコードは.NET4.0で実行されます。ただし、コードがF#3.0コンパイラ(.NET 4.0をターゲットとする)でコンパイルされ、コピーローカルがTrueに設定されたFSharp.CoreおよびFSharp.Data.TypeProviders4.3.0.0を参照する場合に限ります。

この場合の問題は、AppHarborがコードをビルドすることです。まだ.NET4.5に更新されていないため、コードは型プロバイダーを理解しないF#2.0コンパイラでコンパイルされています。

AppHarborに独自のバイナリをコンパイルしてデプロイする方法があれば、それは機能します。

編集:

.NET4.5は.NET4.0のインプレース代替品であるため、これはVS2010でコンパイルできると思います。VS 2010が使用するF#コンパイラも置き換える必要があります。

于 2012-08-13T18:07:50.420 に答える
0

型プロバイダーには.NET 4.5が必要です。このエラーは、標準の構文エラーです。これは、三角かっこを閉じる必要があるためです。これは、型プロバイダー パラメーターではなく、F# 2.0 で三角かっこを使用する唯一の汎用パラメーターであると見なされるためです。

于 2012-08-13T09:16:17.357 に答える