有没有办法用断点或类似的命令运行我的 .fs 文件,System.Diagnostics.Debugger.Launch()
以便我可以FSI
用来检查值、对它们应用函数、绘制它们等等?
我知道以前有人问过这个问题,但是我尝试了答案,但无法使它们起作用。清晰的说明或解释过程的文章链接不仅对我自己有很大帮助,而且我相信对所有初学者都有很大帮助。
不幸的是,您不能打断点并跳入 FSI。正在运行的 .NET 程序的上下文与交互式 FSI 会话的上下文完全不同,它们的兼容性不足以在一个或另一个之间切换。当来自其他动态/解释语言(如 JavaScript、Python 等)时,我可以理解对这种调试的期望。这是一个非常强大的功能。
正如您已经注意到的,您可以使用 VS 即时窗口,但您需要使用其类似 C# 的语法并尊重其限制。此外,由于它不是 F#,因此您需要了解 F# 到 .NET 的转换才能充分利用它。
如果您在项目中使用 Paket 进行依赖管理,您还有另一个选择:添加generate_load_scripts: true
到您的paket.dependencies
. 这将为您提供一个类似 的文件.paket\load\net452\main.group.fsx
,您可以将其加载到 FSI 以获取项目的所有依赖项。但是,您仍然负责加载自己的源文件并建立一些类似于在所需断点处找到的状态。
要打断点,在 Visual Studio 或 Visual Studio 代码中,您只需单击要设置断点的行号的左侧。这是 .fs 文件中非常受支持的功能。