我可以使用 FSI 来调试我的代码吗?

Can I use FSI to debug my code?

有没有办法 运行 我的 .fs 文件中有断点或像 System.Diagnostics.Debugger.Launch() 这样的命令,这样我就可以使用 FSI 检查值,应用函数给他们,策划他们等等?

我知道以前有人问过这个问题,但我尝试了答案,但无法使它们起作用。清晰的说明或 link 的书面说明过程不仅对我有很大帮助,而且我相信对所有初学者都有很大帮助。

要打断点,在 visual studio 或 visual studio 代码中,只需单击要设置断点的行号左侧即可。这是 .fs 文件中非常受支持的功能。

不幸的是,您不能命中断点并跳转到 FSI。 运行 .NET 程序的上下文与交互式 FSI 会话的上下文完全不同,它们不够兼容,无法在两者之间切换。当来自其他 dynamic/interpreted 语言(例如 JavaScript、Python 等)时,我可以理解对这种调试的期望。这是一个非常强大的功能。

正如您已经注意到的,您可以使用 VS 立即数 window 但您需要使用其类似 C# 的语法并遵守其限制。此外,由于它不是 F#,您需要了解 F# 到 .NET 的转换才能充分利用它。

如果您在项目中使用 Paket 进行依赖管理,您还有另一种选择:将 generate_load_scripts: true 添加到您的 paket.dependencies。这将为您提供一个类似于 .paket\load\net452\main.group.fsx 的文件,您可以将其加载到 FSI 中以获取项目的所有依赖项。但是,您仍然有责任加载自己的源文件并构建一些类似于在所需断点处找到的状态。