0

私はこのようなASPXページを持っています:

<%@ Page Language="F#" %>
<!DOCTYPE html>
<html>
<head>   
   <title></title>
</head>
<body>
   <%-- Try to output "This is a Test" 10 times --%>
   <% for i = 1 To 10 do  %>
      <p>This is a test</p>   
</body>
</html>

および次のようなweb.config:

<?xml version="1.0"?>
<configuration>
   <system.codedom>
      <compilers>
         <compiler language="F#;f#;fs;fsharp"
            extension=".fs"
            warningLevel="4"
            type="Microsoft.FSharp.Compiler.CodeDom.FSharpAspNetCodeProvider,
            FSharp.Compiler.CodeDom, Version=2.0.0.0,
            Culture=neutral,
            PublicKeyToken=a19089b1c74d0809">
            <providerOption name="CompilerVersion" value="v4.0" />
            <providerOption name="WarnAsError" value="false" />
         </compiler>
      </compilers>
   </system.codedom> 
   <system.web>
      <compilation debug="true" targetFramework="4.0" />
   </system.web>
</configuration>   

VS2010 WebAppを実行すると、次のようなエラーが発生します。
「CodeDomプロバイダータイプ "Microsoft.FSharp.Compiler.CodeDom.FSharpAspNetCodeProvider、
FSharp.Compiler.CodeDom、Version = 2.0.0.0、
Culture = neutral、
PublicKeyToken =a19089b1c74d0809"見つかりませんでした。」

ここでmanojldsが言及した設定を試しましたが、どちらも機能していないようです。私のVS2010Proのコピーには新しいバージョンのF#コンパイラが含まれているためだと思いますが、確実に伝える方法がわかりません。

「compiler」要素と「providerOption」要素のVS2010web.configで使用する必要がある正しいバージョン設定を誰かが理解するのを手伝ってもらえますか?

4

1 に答える 1

2

私はこれを試していませんが、構成ファイルは私には正しいように見えます-FSharp.Compiler.CodeDomアセンブリのどのバージョンがGACにインストールされているかを確認できますか(を見てC:\windows\assembly)?

ただし、現時点では、WebページのASPX部分の書き込みにF#を使用することはお勧めしません。動作しますが、C#をASPXと混合したり、Razorテンプレートエンジン(ASP.NET MVCの場合)を使用したりすると、スムーズなエクスペリエンスが得られません。

F#でサーバー側のASP.NET Webアプリケーションを作成する最良の方法は、コードビハインド(従来のWebFormsの場合)またはモデルとコントローラーの部分(MVCの場合)にF#を使用することだと思います。これを行う方法を説明するテンプレートとチュートリアルもいくつかあります。

于 2013-02-07T11:04:49.207 に答える