gpt4 book ai didi

.net - fsi.exe 程序集 : Anyone know how to embed it?

转载 作者:行者123 更新时间:2023-12-04 14:51:41 28 4
gpt4 key购买 nike

长期读者,第一个问题。 fsi.exe 是一个 .NET 可执行文件,因此包含它自己的程序集,其中包含所有美味的方法以及 fsi 用来执行 F# 脚本的东西。

查看 .NET Reflector 中的程序集(选择您的类,但 Shell 是最好的例子)会发现一堆垃圾*名称,它们看起来像装饰的 C++ 函数(例如,来自 Dependency Walker)。顺便说一句,有点离题的是,F# 程序集的编译方式大致相同,有很多垃圾*名称,这让我认为 fsi.exe 是用 F# 编写的,也许是为了证明可用性?

无论如何,这是我的问题:有没有人深入研究 fsi.exe 并想出如何将它嵌入到 .NET 应用程序中?因为我想使用 F# 作为脚本语言,但是程序编译为(意外)程序,并且脚本必须由 fsi.exe 执行,这在我的域中是 Not Acceptable (我需要一个持久的 VM)。我不希望有关于使用 fsi.exe 的操作指南,但我很想知道是否有人玩过它,如果有,你对它的工作原理有什么发现?

谢谢你的时间。

* 垃圾一目了然。显然,出于某种特殊原因,它们以这种特殊方式格式化。

最佳答案

据我所知,fsi.exe不公开任何可用于将其嵌入到应用程序中的 API(例如实现脚本)。我认为基本上有两种选择:

  • 如果您想使用现有的 fsi.exe直接,唯一的方法是使用 .NET 启动它 Process类并以某种方式与它交流。这应该是可行的 - 您可以使用标准输入向进程发送命令。要读回输出,您可以使用标准输出,但这只能提供有限的信息。可能可以使用 .NET Remoting 在 fsi.exe 之间进行通信和您的应用程序(例如,您在 FSI 脚本上下文中加载的对象将通过远程处理向您的应用程序发送信息)。
  • 另一种选择是使用 open-source release F# 和修改 fsi.exe将您需要的所有信息作为 API 公开。这需要更多的努力才能理解 fsi.exe工作,但它应该是可行的。您可能不需要那么多添加 - FSI 维护的状态包含全局变量之类的内容。

  • 关于许可证 - 您可能无法使用 fsi.exe与 Visual Studio 一起分发。我不确定 fsi.exe随 CTP 版本一起发布。从源代码(可用 here )编译它肯定没问题(因为它有开源版本)。

    关于.net - fsi.exe 程序集 : Anyone know how to embed it?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4637181/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com