VSCode开发.net项目时调试无效

打印 上一主题 下一主题

主题 854|帖子 854|积分 2562

先说一下我遇到问题,我的项目是NET8.0版本,在VisualStudio上可以正常运行与调试,但是在VSCode里可以正常跑但无论怎么打断点都不会进去,提示"还没有为该文档加载任何符号"。

 其实最开始我以为是launch.json没有设置好,搞了一上午换了很多种设置方式结果都没有变。其中我创建新的net webapi项目运行起来断点也没问题,还跑了另一个正在开发的项目也没问题。最终确定问题可能出在启动项目的.csproj文件里,末了找到了问题地点——
DebugType 无、pdbonly、嵌入、可移植、或完整,从C#6开始pdbonly与full相同。这个设置成portable就行了,末了我附上ai对这个字段的解释
Q:vscode中 .csproj的DebugType为full  调试无效 改为portable就可以了
A:
 
假如您在使用 Visual Studio Code (VSCode) 进行 .NET Core 或 .NET 5/6+ 项目开发时遇到 DebugType 设为 full 时调试无效,而改为 portable 后调试正常的情况,这可能是由以下几个原因造成的:

  • C# 扩展不兼容:确保您安装的 OmniSharp 或 C# 扩展与您的 SDK 版本兼容。有时候扩展没有及时更新可能会导致与特定版本的调试信息不兼容。
  • SDK 行为变化:随着 .NET SDK 的更新,处理调试信息的方式可能会有所改变。在某些情况下,默认的 DebugType 可能已经变为 portable,而旧的工具链可能仍然期望 full 范例的 PDB 文件。
  • 调试设置问题:VSCode 的调试设置可能对 portable PDB 文件有特定的支持,而对 full PDB 文件支持不够完善。检查您的 launch.json 调试设置文件是否必要针对不同的 DebugType 做出调整。
  • 符号加载问题:在某些情况下,纵然天生了 full 范例的 PDB 文件,调试器也可能无法正确加载符号。这可能是因为路径问题、符号缓存问题或其他设置问题。
  • 平台差异:假如您在不同的操作体系上进行开发,可能会发现某些 PDB 范例在不同平台上的体现不一致。
 以下是一些可能的解决步调:

  • 更新扩展:确保 VSCode 中的 C# 扩展(OmniSharp)是最新的。
  • 检查 SDK 版本:确认您的 .NET SDK 和目的框架与您的开发情况和工具链兼容。
  • 更改调试设置:实验在 launch.json 中添加或修改 "symbolLoadInfo" 设置,如下所示:
    1. {
    2.   "version": "0.2.0",
    3.   "configurations": [
    4.     {
    5.       "name": ".NET Core Launch (web)",
    6.       "type": "coreclr",
    7.       "request": "launch",
    8.       // ... 其他配置 ...
    9.       "symbolLoadInfo": {
    10.         "loadAll": true,
    11.         "requireModuleFiles": false,
    12.         "searchPaths": []
    13.       }
    14.     }
    15.   ]
    16. }
    复制代码
  • 清算并重新天生解决方案:删除 bin 和 obj 文件夹中的内容,然后重新编译项目以确保天生最新的调试信息。
 末了,假如将 DebugType 从 full 更改为 portable 解决了问题,那么您可以选择继续使用 portable,同时留意是否有更新或补丁来解决 full 范例的调试问题。由于 portable PDB 提供了利益的可移植性,并且通常在现代开发情况中能提供充足的调试信息,因此对于很多开发场景来说,这是一个合理的选择。
 




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

我爱普洱茶

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表