Ubuntu20.04下VSCode运行dotnet控制台项目不输出Console.WriteLine内容如何解决
问题排查解决步骤
- 先验证.NET SDK安装完整性
在终端执行dotnet --info,确认输出列表中同时存在5.0版本的SDK和Runtime,若缺失对应版本,先卸载现有.NET组件后重新安装5.0版本即可。 - 确认项目配置与执行路径正确
- 执行
ls确认当前终端路径下存在.csproj后缀的项目文件和Program.cs文件,若不存在需切换到创建项目的对应目录再执行运行命令 - 打开.csproj文件,确认
节点值为 net5.0,和你安装的Runtime版本匹配,若版本不匹配修改后保存再重新运行
- 执行
- 验证输出缓冲与直接执行二进制
- 可先在Console.WriteLine代码后新增
Console.Out.Flush();强制刷新输出缓冲,再运行看是否有内容输出 - 执行
dotnet build完成编译后,手动进入bin/Debug/net5.0/目录,直接执行生成的和项目同名的可执行文件,观察是否有Hello World输出
- 可先在Console.WriteLine代码后新增
- 排查环境差异问题
- 不要使用VSCode集成终端,直接打开Ubuntu系统自带的终端,进入项目目录执行
dotnet run,如果系统终端正常输出,说明是VSCode集成终端配置问题,重置VSCode终端的默认shell配置即可恢复 - 若项目创建在VirtualBox的宿主机共享文件夹内,可在Ubuntu本地目录比如
~/test下重新创建项目测试,共享文件夹的权限限制可能会导致运行异常
- 不要使用VSCode集成终端,直接打开Ubuntu系统自带的终端,进入项目目录执行
- 若以上步骤都无效,可以尝试安装全新的.NET 6 SDK版本,创建对应目标框架的项目运行,.NET 5已经停止官方支持,升级到更高的LTS版本也可以规避旧版本的已知问题。
内容的提问来源于stack exchange,提问作者Johnny
相关产品推荐
相关产品推荐

