如何在运行后保持fsi.exe打开

Chr*_*oph 5 f# f#-interactive f#-scripting

我有一堆F#脚本(fsx),我用它来满足我的基本部署需求.我只是右键单击它们并说"运行F#interactive"

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

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

Gen*_*ski 9

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

  • 管理员打开regedit并找到密钥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"
Run Code Online (Sandbox Code Playgroud)

在这些mod之后,您可以.fsx使用鼠标右键单击任何脚本,选择Run with Fsi in shell并在脚本终止后保留shell窗口,直到您关闭它.只需很少的小调整,相同的方法适用于VS2010.

如果您的系统设置与上述不同,请务必小心调整细节.祝好运!

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