Скомпилировать исходный код F# во время выполнения с Codedom?
Мне нужно скомпилировать некоторые исходные файлы F# во время выполнения в сборку.
В настоящее время я использую Fsharp.Compiler.CodeDom, и он делает то, что мне нужно, но кажется, что эта библиотека не поддерживается. Я хотел бы знать, я использую правильный?
Примечание: я видел несколько ответов на подобные вопросы, но на эти вопросы было несколько лет.
1 ответ
Решение
Это на самом деле должно пойти к Джону Палмеру.... Спинет из его ссылки в основном просто работает
[<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