f# - 运行后如何保持fsi.exe打开

标签 f# f#-interactive f#-scripting

我有一堆 F# 脚本 (fsx),可用于满足基本部署需求。我只需右键单击它们并说“使用 F# 交互式运行”

但是,有时脚本会失败,我希望保持交互式控制台运行。到目前为止,我还没有想出一个很好的方法来实现这一目标。

我尝试手动启动 fsi.exe,但如何从那里启动我的脚本?

最佳答案

如果您足够黑客,您可能只想添加另一个类似于 Run with F# Interactive 的资源管理器上下文菜单项。 ,但在 .fsx 之后保持控制台窗口打开脚本终止。以下是如何在 Windows7/VS2012 上实现此目标的工作大纲:

  • 正在管理员开放 regedit并找到 key HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell
  • 添加具有唯一名称的新子项,例如 openRunCmd , 制作 (Default)无论您想在上下文菜单中看到什么,该键的值,可能是 Run with Fsi in shell
  • 最后,添加子项 HKEY_CLASSES_ROOT\VisualStudio.fsx.11.0\shell\openRunCmd\command并设置 (Default)此子项的值到以下行:
    c:\windows\system32\cmd.exe /Q /K %%USERPROFILE%%\fsx.bat "%1"

  • 现在,关闭 regedit ,转到您的主目录并在那里创建一个批处理文件 fsx.bat与以下行:
    "C:\Program Files (x86)\Microsoft SDKs\F#\3.0\Framework\v4.0\Fsi.exe" --quiet --exec "%1"
    

    在这些模组之后,您将能够点击任何 .fsx用鼠标右键选择脚本,选择 Run with Fsi in shell并让 shell 窗口在脚本终止后停留,直到您关闭它。只需稍作调整,同样的方法也适用于 VS2010。

    如果您的系统设置与上述不同,请注意调整细节。祝你好运!

    更新 :对于那些想在家里或工作中尝试的人,我已经发布了详细的演练 here .

    关于f# - 运行后如何保持fsi.exe打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363002/

    相关文章:

    .net - F# 的 int 中的 get_Zero 是什么/在哪里?

    sprintf 和格式的 F# 错误

    .net - 在 F# 中比较文件内容

    f# - 强制 F# 类型的字段为空

    recursion - 互递归函数中的尾递归

    wcf - F# 交互式与 F# 解决方案和 WCF

    f# - 我需要一些有关 F# 交互式可用性的提示

    configuration-files - 使用 fsx 文件中的 app.config

    F# 按索引排序

    f# - 在 VSCode 中自动完成 F# 脚本代码