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