VS2019 16.11.4内置FSI加载源文件触发StackOverflowException错误
Visual Studio 2019 16.11.4 版本内置FSI加载源文件栈溢出问题修复方案
问题复现说明
将Visual Studio Community 2019升级到16.11.4版本后,无论使用Alt+Enter快捷键还是在内置FSI中执行#load命令加载任意.fs源文件(包括空源文件),都会触发栈溢出异常,错误日志如下:
Microsoft (R) F# Interactive versione 11.4.2.0 per F# 5.0 Copyright (C) Microsoft Corporation. Tutti i diritti sono riservati. Per informazioni, digitare #help;; #load "C:\Users\GianLuca\Source\Repos\x\x\Library1.fs";; Process is terminated due to StackOverflowException. Session termination detected.
已知排查情况
- 问题不受项目类型影响,.NET Framework 4.72、.NET Standard、.NET Core类库场景下均可复现
- 命令行执行
dotnet fsi加载相同文件运行正常,无异常 - 执行Visual Studio Installer修复操作无法解决该问题
修复方案
临时解决方案
- 改用外置
dotnet fsi进行调试:直接在系统命令行中启动dotnet fsi执行文件加载操作,该方式不受Visual Studio内置组件缺陷影响 - 调整内置FSI栈大小参数:
- 打开Visual Studio,依次进入「工具」→「选项」→「F# 工具」→「F# Interactive」
- 在「F# Interactive 选项」输入框中添加启动参数
--stack:1048576 - 保存设置后重启Visual Studio即可恢复使用
- 降级Visual Studio到16.11.3版本:回退到上一个小版本即可规避该缺陷
永久解决方案
直接将Visual Studio 2019升级到16.11.5及以上版本,微软已在后续版本补丁中修复了该内置FSI的栈溢出问题。
内容的提问来源于stack exchange,提问作者Ganfoss
相关产品推荐
相关产品推荐

