长期读者,第一个问题。fsi.exe 是一个 .NET 可执行文件,因此包含它自己的程序集,其中包含所有美味的方法和 fsi 用来执行 F# 脚本的东西。
查看 .NET Reflector 中的程序集(选择你的类,但 Shell 是最好的例子)揭示了一堆看起来像修饰的 C++ 函数的垃圾 * 名称(例如,来自 Dependency Walker)。顺便说一句,有点题外话,F# 程序集以几乎相同的方式编译,有很多垃圾*名称,这让我认为 fsi.exe 是用 F# 编写的,也许是作为可用性证明?
无论如何,这是我的问题:有没有人研究过 fsi.exe 并想出了如何将它嵌入到 .NET 应用程序中?因为我想使用 F# 作为脚本语言,但是程序编译为(惊喜)程序,并且脚本必须由 fsi.exe 执行,这在我的域中是不可接受的(我需要一个持久的 VM)。我不希望获得有关使用 fsi.exe 的操作指南,但我很想知道是否有人玩过它,如果有,您对它的工作原理有何发现?
谢谢你的时间。
* 垃圾一目了然。显然,出于某种特殊原因,它们以这种特殊方式格式化,这在引擎盖下。