2010-12-21 15 views
0

アプリケーション構成をdllにコンパイルされるF#ファイルとして作成します。 (XMonadの設定のようにxmonad.hsがhaskell上にある)。 XML直列化を使用すると、より面白く、より良い方法を見つけました。別のF#プログラムからF#ライブラリをコンパイルする方法

だから私は、単一のファイル(またはそれ以上)をコンパイルすることができますどのようにどのような方法があるライブラリにはいくつかの構成で

module RNExcel.Repository 

open RNExcel.Model 

    type ExpenseReportRepository() = 
     member x.GetAll() = 
      seq{ yield {Name="User1" 
         Role="someRole" 
         Password = "123321" 
         ExpenseLineItems = 
          [{ExpenseType="Item1" 
           ExpenseAmount="50"}; 
          {ExpenseType="Item2" 
           ExpenseAmount="50"}]} 
       yield {Name="User2" 
         Role="Estimator" 
         Password = "123123" 
         ExpenseLineItems = 
          [{ExpenseType="Item1" 
           ExpenseAmount="50"}; 
          {ExpenseType="Item2" 
           ExpenseAmount="125"}]} } 

のような私の考えでは....シェルを実行し、プロジェクトをMSBuildのことでしたが、私ドンそれがすべてのユーザーのために働くと思う.net 4

答えて

1

F# Power Pack、特にFSharp.CodeDomライブラリをチェックしてください。このライブラリを使用して、実行時にF#コードをコンパイルすることができます。わずかなReflectionがスローされると、最小限の騒ぎでコードとしての設定の目標を達成できる可能性があります。

+0

本当ですか?私はF#CodeDOMが不完全で実行時にF#コードをコンパイルするために使用できなかったという印象を受けました。 –

+0

この特定のライブラリを試したことはありませんが、私は正直言って言うことはできません - Codeplexのフロントページで判断すると、少なくとも機能のいくつかは適切です。私は、最も基本的な機能がそこにあると思います。 @nCdyのために十分であるかどうかは、誰もが推測している... – Ben

+0

私はシェル明日それを試してください。 – Cynede

1

私はベンとして提案されたPowerPackのCodeDOMプロバイダを使用することが推奨されます。私はちょうどいくつかを追加したい(それはコメントボックスに収まらない)。

構成でF#コードを解析してコンパイルするには、 F#PowerPackを使用してユーザーが書き込むファイルをコンパイルする必要があります。 PowerPackのコンパイル部分は完成しており、うまく動作します。これは、カバーの下にあるF#コンパイラを呼び出し、コンパイルされたアセンブリを返します。唯一の問題は、アプリケーションのユーザーがF#コンパイラをインストールする必要があることです。

F#CodeDOMプロバイダの不完全な部分がCodeDOMツリーからF#コードを生成しています(このツリーはF#をサポートするように設計されていないためです)。

+0

私のユーザーにはF#コンパイラがインストールされていません。それは悲しいです、私は別のものが必要です。 – Cynede

+0

> PowerPackのコンパイル部分は完成していて、うまくいきます本当ですか? http://stackoverflow.com/questions/9565196/compileassemblyfromfile – psct

関連する問題