bra*_*ing 10 c# debugging f# read-eval-print-loop visual-studio-2012
如果我在ac#程序中有断点,我很乐意使用F#REPL来检查我的代码.这有可能吗?
Jac*_* P. 12
您应该能够使用F#REPL调试C#项目 - 我在调试F#库项目时这样做,但C#应用程序/库也可以工作(我认为).
编译你的C#项目.在F#interactive中,使用#r
指令引用C#程序集(请参阅ArthurFSharp的帖子).在C#代码中的某处插入断点.
在Visual Studio中,转到Tools
- > Attach to Process
.Fsi.exe
在进程列表中查找并双击它; 如果你没有在那里看到它,请确保已启动Fsi进程(只需在F#Interactive窗口内单击即可).
在F#Interactive中,执行一些能够到达您设置的断点的代码; 调试器应该像你想要的那样在断点上停止执行.只要调试器没有在某个断点上停止,您也可以从FSI中执行其他代码,例如更改正在运行的C#应用程序中的设置.
重要信息:请记住,只要将程序集加载到进程中,Windows就会锁定程序集.这意味着只要FSI打开,您将无法重新编译C#应用程序!修复很简单 - 一旦您对C#应用程序进行了一些更改并想要重新编译并再次开始测试,只需在F#Interactive窗口中右键单击并在上下文菜单中单击"重置交互式会话".该过程将被终止并重新启动,因此您可以重新开始.(如果您忘记重新启动FSI进程并尝试重新编译应用程序,编译将花费比平时更长的时间,那么您将收到一条错误消息,告诉您编译器无法写入输出文件.)