4
我需要在運行時將一些f#源文件編譯到程序集中。使用Codedom在運行時編譯F#源代碼?
目前我使用Fsharp.Compiler.CodeDom,它做我需要它做的事情,但它似乎像這個圖書館沒有被維護。 我想知道,我使用正確的嗎?
注:我看到一些類似的問題的答案,但這些問題是幾年前。
我需要在運行時將一些f#源文件編譯到程序集中。使用Codedom在運行時編譯F#源代碼?
目前我使用Fsharp.Compiler.CodeDom,它做我需要它做的事情,但它似乎像這個圖書館沒有被維護。 我想知道,我使用正確的嗎?
注:我看到一些類似的問題的答案,但這些問題是幾年前。
這應該真正去約翰 - 帕爾默....從他的鏈接尖晶石,基本上只是工作
[<EntryPoint>]
let main argv =
printfn "%A" argv
let scs = SimpleSourceCodeServices();
let fn = Path.GetTempFileName();
let fn2 = Path.ChangeExtension(fn, ".fs");
let fn3 = Path.ChangeExtension(fn, ".dll");
File.WriteAllText(fn2, """
module File1
let seven =
3 + 4
""");
let errors1, exitCode1 = scs.Compile([| "fsc.exe"; "-o"; fn3; "-a"; fn2 |])
let ex = File.Exists(fn3)
printfn "File %s exists: %b" fn3 ex
我不得不承認,這將是冷靜地看到非fsc.exe選項:d
我相信fsharp編譯器服務允許這個 - 請參閱http://fsharp.github.io/FSharp.Compiler.Service/compiler.html –
是的,這有效,想把它作爲答案?有關Fsharp.core的一些調整,但現在沒關係 – roundcrisis