最近碰到开发者问:我使用 nuget 安装了 Senparc.Weixin SDK,但是有一些已经封装好的过程想要调试,我又不想直接附加源代码项目,这样就没有办法同步更新了,我应该怎么办?
这其实是一个很常见也具有普遍代表性的问题,解决方案也是通用的,本文我们就来学习如何对已经安装了 dll 的项目的源代码进行断点调试。
PS:以下方法适用于所有项目。
一、配置
第一步:打开 Visual Studio 2019(低版本操作应该也是类似的)
第二步:点击顶部菜单【工具】>【选项...】
第三步:在【选项】窗口中,左侧列表选择【调试】
第四步:在右侧窗口中:
-
- 取消选中【启用“仅我的代码”】
- 取消选中【逐过程执行属性和运算符号(仅限托管)】
- 取消选中【要求源文件与原始版本完全匹配】
- 其他还有的选项根据自己实际需要修改
以下是我的开发环境完成的配置:
第五步:点击当前窗口左侧当前选中的【常规】下方的【符号】,选中右侧【NuGet.org 符号服务器】,再点击右上方【+】号,添加地址:https://nuget.smbsrc.net,并选中:
这一步用于定义符号文件(即包含源代码调试定位信息的文件),以后每次调试,都会自动加载相关的文件,为了加快速度,我们可以原先进行缓存,点击下方【加载所有符号】按钮,然后等待缓存结束。
注意:预先加载需要耗费比较多的时间(我重新测试了一次大概用了 20 分钟),但是为了减少后面的反复等待时间,这是值得的(缓存并不会占用太多硬盘空间,请放心加载)。如果程序集有比较大的变化,或者发生问题,也可以使用下方的按钮清空并重新加载。
设置完成后点击【确定】按钮。
二、试验
下面让我们以 Senparc.Weixin SDK 来测试一下,顺便学习一下如何创建新项目和安装 nuget 包。
第一步:打开 Visual Studio 2019
第二步,点击【创建新项目】,选择【ASP.NET Core Web 应用程序】(也可以选择 .NET Framework 项目):
第三步:点击【下一步】,配置项目名称、路径等参数,如: