Visual Studio 2017调试开源项目代码
在我们的开发过程中很多时候我们会从GitHub上面下载一些开源的项目代码,然后在此基础上进行调试,正常情况下我们只需要将项目的源代码编译成Dll或者在.Net Core项目中直接引用相应的Nuget包就可以了,但有些时候除了引用这些Dll或者包之外,我们还需要直接在调试的过程中进行源代码的调试,这种情况下我们该如何直接在Visual Studio中进行代码的调试呢?可能说这些还不是能够很好的理解,那么我就具体举出一些示例来进行说明吧。
一 问题描述
比如在使用非常流行的ABP框架时候,我们从官网上面下载了具体的模板项目,但是这些项目模板都是直接引用这些框架的Nuget包的,我们可以参考下面的图片。

那么我们该怎样去调试这些包里面的源码呢?那么这个问题就将我们的思路带到了本篇文章的重点,在这个情况下我们该怎样去调试项目的源码呢?下面通过这些步骤你将达到以上的目的。
二 解决步骤
1 下载项目源代码到一个本地磁盘位置
我们首先需要去GitHub(视具体情况而定)下载项目的源代码,这里需要注意项目的源代码要和引用的Nuget保持一致,这个不需要多说明。
2 添加项目源代码位置
A 依次执行:解决方案--》右键--》属性--》通用属性--》调试源文件--》新建目录(以Visual Studio 2017为例来说明)

B 添加项目源代码位置

3 修改:工具--》选项 中的配置

这样在进行调试的时候当执行到某一个函数时按下F11就能够进入到程序包的源代码中进行调试了。
三 注意事项
1 注意在GitHub下载的源码一般都是最新发布的,所以在调试之前请保证引用的Nuget包也是最新的,具体方法就是在管理Nuget程序包中更新一下。
2 务必保持引用的包和附加的源码保持一致。
Visual Studio 2017调试开源项目代码的更多相关文章
- Visual Studio 2017 调试器的工作进程(msvsmon.exe)意外退出 调试将终止
开发环境: Windows 10 in Parallels Desktop Visual Studio 15.6 场景还原: 使用 Visual Studio 15.6 (即 Visual Studi ...
- 如何使用Visual Studio 2017调试.net库源代码
在Visual Studio 2017按如下步骤设置: 1.取消选中(工具 - >选项 - >调试 - >仅我的代码)复选框.2.确保设置了(工具 - >选项 - >调试 ...
- Visual Studio 2017 调试 windows server 2016 Docker Container
网上很多文章都是在win10下,用Docker for windows工具进行Docker的安装部署的.用知道windows server 2016已经原生支持Docker了,其windows Con ...
- visual studio 2017无建模项目?
教一跨行同事学C#,我想从基础的讲一下,也就是最基本的面象对象分析与设计(OOAD),我直接打开我最新安装的 visual studio 2017.准备建一个“建模项目”.结果发现死活找不到?打开一个 ...
- Visual Studio 2017打包安装项目
在我们用VS编好上位机后,就可以在自己电脑运行上位机,但是想其他人电脑运行上位机可能就行不通了,因为其他人电脑不一定有所需要的运行环境.这时我们就需要打包安装,把运行软件所需要的环境都打包在安装包里. ...
- Visual Studio Code - 调试 Node.js 代码
官方的文档写的太好了!大家还是看参考资料吧. 参考资料: Debugging in Visual Studio Code Debug Node.js Apps using Visual Studio ...
- 在 Visual Studio 2017 新建的项目中,无法设置项目版本号的通配符规则
错误信息:CS8357 指定的版本字符串中包含与确定性不兼容的通配符.从版本字符串删除通配符,或者禁用此编译的确定性 解决方法:删除项目文件中的配置,或将其设为 False :<Determin ...
- visual studio 2017调试时闪退。
解决方案: 在工程上右键--->属性--->配置属性--->连接器--->系统--->子系统(在窗口右边)--->下拉框选择控制台(/SUBSYSTEM:CONSO ...
- Windows 10 更新补丁后Visual Studio 2017 运行项目出现错误
问题: 今天更新了Windows 10(版本 1709)推送最新补丁后,打开Visual Studio 2017运行Web项目,都出现“指定的参数超出有效值的范围 参数名:site”,如下图: 解决方 ...
随机推荐
- CF369E Valera and Queries
嘟嘟嘟 这题刚开始以为是一个简单题,后来越想越不对劲,然后就卡住了. 瞅了一眼网上的题解(真的只瞅了一眼),几个大字令人为之一振:正难则反! 没错,把点看成区间,比如2, 5, 6, 9就是[1, 1 ...
- linux命令之df
功能:查看文件系统的磁盘空间使用情况 常用选项: -a 包含虚拟文件系统 -h 可易读单位显示 -i 显示 inode 信息而非块使用量 -k 1K 块的数量 -t 只显示指定文件系统为指定类型的信息 ...
- 解决 Vim 的 quickfix 插件错误信息乱码问题
将以下代码插入 vim 配置文件即可, function! QfMakeConv() let qflist = getqflist() for i in q ...
- jenkins发送生成的html报告作为邮件附件,但无内容的问题分析
- Linux内存管理 一个进程究竟占用多少空间?-VSS/RSS/PSS/USS
关键词:VSS.RSS.PSS.USS._mapcount.pte_present.mem_size_stats. 在Linux里面,一个进程占用的内存有不同种说法,可以是VSS/RSS/PSS/US ...
- 1-STM32带你入坑系列(STM32介绍)
由于自己的物联网开发板上的单片机是用的STM32,但是有些朋友没有用过,所以我将用这块开发板,带着大家入门STM32 先介绍一下STM32,我是在大三下学期的时候开始接触STM32,当时是想做一个小车 ...
- C++模板参数类型(转载)
实际上有三种类型模板参数:类型模板参数.无类型模板参数和模板模板参数(以模板作为模板的参数). .类型模板参数 类型模板参数是我们使用模板的主要目的.我们可以定义多个类型模板参数: template& ...
- 消息队列工具类(MSMQ)
所要做的是简化msmq的调用代码以及做到可替代性,实现后,调用消息队列代码变为如下所示: QueueService srv = QueueService.Instance(); //检查存储DTO1的 ...
- Python-正则表达式总结版
前言: 总是写不好正则表达式,时间长不用就有些忘记了,故此在总结一篇文章以便日后查阅. 一.常用的匹配规则总结表 模式 描述 \w 匹配字母数字及下划线 \W 匹配非字母数字及下划线 \s 匹配任意空 ...
- Python 内置库 sys用法
sys模块功能众多,这边先学习几个常用的方法sys常见函数列表① sys.argv: 实现从程序外部向程序传递参数.其实sys.argv[]就是一个列表,里面的项为用户输入的参数,但是sys.argv ...