如何在调试API时单步进入自行开发的NuGet项目代码?
调试自行开发的NuGet包源码方案
方案1:合并解决方案(最省心)
- 打开API项目所在的解决方案,右键点击解决方案 → 「添加」→ 「现有项目」,找到你NuGet包项目的
.csproj文件并添加进来。 - 卸载API项目中已安装的自家NuGet包:右键API项目的「依赖项」→ 「管理NuGet程序包」,找到你的NuGet包并卸载。
- 添加项目引用:右键API项目的「依赖项」→ 「添加项目引用」,勾选刚加入的NuGet包项目,确认保存。
- 直接启动API的调试会话,现在就能正常单步进入NuGet包的代码了,两者共用同一个调试上下文,没有附加冲突问题。
方案2:配置符号与源码加载(不合并解决方案)
- 确保NuGet包编译时生成了
.pdb符号文件,打包时要么生成符号NuGet包(.symbols.nupkg),要么把.pdb文件和.dll一起打包到NuGet包的lib目录下。 - 在Visual Studio中打开调试设置:工具 → 选项 → 调试 → 常规,勾选「启用源服务器支持」和「启用.NET框架源步进」,同时取消勾选「要求源文件与原始版本完全匹配」。
- 启动API的调试会话,当发起请求触发NuGet包代码调用时,尝试单步进入,VS会提示找不到源码文件,此时点击「浏览」,定位到你本地NuGet包项目的源码文件所在目录,确认后就能正常调试了。
方案3:多调试会话附加(适合分开维护解决方案的场景)
- 先启动API项目(不带调试,按
Ctrl+F5),让进程在后台运行。 - 打开NuGet包的解决方案,点击调试 → 附加到进程,找到API对应的进程(通常是
dotnet.exe,如果是自包含部署则是你的API程序名)。 - 在附加对话框中,点击「选择」按钮,勾选「托管(.NET Core, .NET 5+)代码」,确认附加。
- 回到API的解决方案,同样点击调试 → 附加到进程,选择同一个API进程,重复上述选择托管代码的步骤后附加。
- 现在两个解决方案的调试器都附加到了同一个进程,发起Web请求后就能在API和NuGet包代码之间来回单步调试了。
内容的提问来源于stack exchange,提问作者JᴀʏMᴇᴇ
相关产品推荐
相关产品推荐

