Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从另一个F#程序编译F#库_F# - Fatal编程技术网

如何从另一个F#程序编译F#库

如何从另一个F#程序编译F#库,f#,F#,我想将我的应用程序配置为F#文件,它将被编译为dll。(类似于haskell上带有XMonad.hs的XMonad配置)。我发现它比使用XML序列化更有趣、更好 那个么,有并没有办法用一些配置将单个文件(或更多文件)编译到库中,比如 module RNExcel.Repository open RNExcel.Model type ExpenseReportRepository() = member x.GetAll() = seq{ yiel

我想将我的应用程序配置为F#文件,它将被编译为dll。(类似于haskell上带有XMonad.hs的XMonad配置)。我发现它比使用XML序列化更有趣、更好

那个么,有并没有办法用一些配置将单个文件(或更多文件)编译到库中,比如

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的用户。请查看,特别是FSharp.CodeDom库。您可以使用此库在运行时编译F#代码,只需稍加考虑,就可以轻松实现代码配置的目标。

我认为按照Ben的建议使用PowerPack中的CodeDOM提供程序是一种可行的方法。我只想添加一些东西(但它不适合放在评论框中)

要使用配置解析和编译F#代码,只需编译用户使用F#PowerPack编写的源文件。PowerPack的编译部分已经完成,工作正常。它在封面下调用F#编译器,并返回编译后的程序集。唯一的问题是,应用程序的用户需要安装F#编译器(而不仅仅是redist)


F#CodeDOM provider的不完整部分正在从CodeDOM树生成F#代码(因为这些树不是为支持F#而设计的),但在这种情况下不需要这样做。

确定吗?我的印象是F#CodeDOM不完整,无法在运行时用于编译F#代码。我从未尝试过这个特定的库,我不能诚实地说——从Codeplex的首页判断,至少有些功能已经到位;我猜最基本的特征就在那里。对于@nCdy来说,它是否足够是任何人的猜测……我的用户没有安装F#编译器(不仅仅是redist)。真遗憾,我还需要其他东西。>PowerPack的编译部分已经完成,工作正常,你确定吗?