abp 调试
概要
研究Abp(ASP.NET Boilerplate)框架有几个月了,从一遍遍的看官方文档,到现在看源码,一路走来学习了很多知识。 很多新手都很关心源码如何调试,我也是如此,在反复看Debugging文档后还是无法调试!经过反复研究学习,终于可以调试了,先看一下下面截图效果,下面我来按步骤来介绍如何调试abp源码:

Sourcelink or Symbol file(.pdb)
官网上文档介绍abp是支持SourceLink,但是按照官网配置是无法调试的,希望作者在下个版本中修复。
程序数据库(.pdb)文件也叫Symbol file(符号文件)也可以用来调试,但不幸的是作者abp v2.1.3(包含) 之前发布的nuget 包中并未包含.pdb文件,可以查看Issuses #2133, v2.1.3版本之后作者应该会修复这个问题。
Symbol file(.pdb)如何调试
第一步 准备工作
首先说明准备工作,我所用的abp源码是v2.1.3,可以从github上获取,我使用的项目是官网提供的Event Cloud例子,也可以从github上获取,需要注意两者的abp版本号一致。
第二步 调试配置
打开Debug -- Options

取消"Enable Just My Code",勾选"Enable source server support"和“Enbale source link support”,实际不需要勾选这么多,暂且先勾上吧。

点击Symbols选项,点击“Sepcify modules”,增加abp*.dll模块,这样明确指定模块可以增加加载速度。

第三步 准备Symbol文件
我的abp v2.1.3的源码路径为"D:\aspnetboilerplate",在cmd命令中执行powershell.exe -file "D:\aspnetboilerplate\nupkg\pack.ps1",就会编译好所有dll, 例如:

我在另一台机器上执行上面cmd命令会报错,如下截图,我也没搞清楚为什么,因为我根本不知道pack.ps1到底有啥用,哈哈,有大神可以指导下吗?所以我换了一种方式,直接打开abp工程,把模式调成Release,直接整个解决方案编译。

第四步 替换文件
从上一步编译后生成的目录中替换文件到我们项目(Event Cloud)对应的目录中,例如:"D:\aspnetboilerplate\src\Abp\bin\Release\net46\Abp.pdb"到“D:\Projects\ABP\eventcloud-master\src\packages\Abp.2.1.3\lib\net46”;
"D:\aspnetboilerplate\src\Abp.Web.Api\bin\Release\net46\Abp.Web.Api.pdb"到“D:\Projects\ABP\eventcloud-master\src\packages\Abp.Web.Api.2.1.3\lib\net46”
需要调试什么源码拷贝对应的一套文件(dll,pdb,xml)到项目的对应packages中.

第五步 开始调试
点击调试,查看Output窗口查看我们关心的abp*.dll的Symbol是不是加载成功了人,如果加载成功,我们就可以F11调试abp源码了。有小伙伴说需要通过File -- Open -- File... 打开abp中对应源码文件加断点来调试,我测试下来,不打开也可以直接调试了.


总结
abp的后续版本应该可以直接调试了,此博客只为abp老版本提供一个workround.
abp 调试的更多相关文章
- ABP入门系列(12)——如何升级Abp并调试源码
ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 升级Abp 本系列教程是基于Abp V1.0版本,现在Abp版本已经升级至V1.4.2(截至 ...
- ABP之调试
虽然通常情况下不需要,但是Abp还是提供了能在调试项目中进入Abp源码的方法.. 所有的ABP NuGet包都启用了源码连接.这意味着我们可以在我们的项目中调试ABP源码,要启用它,更改Visual ...
- ABP大型项目实战(2) - 调试与排错 - 日志 - 查看审计日志
这是<ABP大型项目实战>系列文章的一篇. 项目发布到生产环境后难免会有错误. 那么如何进行调试和排错呢? 我看到俱乐部里有人是直接登陆生产服务器把数据库下载到开发机器进行调试排错 ...
- ABP框架 - 介绍 VS2017调试器无法附加到IIS进程(w3wp.exe) c# 动态实例化一个泛型类
ABP框架 - 介绍 在14,15年间带领几个不同的团队,交付了几个项目,在这个过程中,虽然几个项目的业务不一样,但是很多应用程序架构基础性的功能却是大同小异,例如认证.授权.请求验证.异常处理. ...
- Abp.Core运行时提示XX没有实现,或者没有依赖注入的问题,或者调试时提示做出更改的问题
因为abp的web层对application层有项目引用,但是对domain层并不存在项目引用,而是bin目录下直接引用的dll文件,所以当domain层修改后不会自动将dll文件同步过去.所以有时候 ...
- abp vnext 调试
在用Abp或者asp.net core 开发过程中,难免会遇到稀奇古怪的问题,需要对底层源代码进行调试,下面就教大家如何通过配置Visual Studio 2019来进行调试: 首先我们通过查看Abp ...
- Postman调试Abp API
在swagger中查看登录需要用post方式访问,Abp需要用application/json方式调用 请求体 Postman调用方式 例:访问所有用户,调用Api地址为http://localhos ...
- RESTful 接口调试分享利器 restc
这个工具来自于https://elemefe.github.io/restc/ 这里对Abp进行了一次封装 1.在项目中添加nuget包 Abp.Web.Api.Restc 2.在项目Abp模块的D ...
- ABP框架理论学习之Debugging
返回总目录 所有的官方ABP nuget包都是支持GitLink的,这意味着你可以在项目中轻松地调试所有的以Abp为前缀的Nuget包. 要开启这项支持,"启用源服务器支持"选项应 ...
随机推荐
- hash 默认使用equal进行元素比较 防止元素重复
hash 默认使用equal进行元素比较 防止元素重复
- 【bzoj1507】[NOI2003]Editor /【bzoj1269】[AHOI2006]文本编辑器editor Splay
[bzoj1507][NOI2003]Editor 题目描述 输入 输入文件editor.in的第一行是指令条数t,以下是需要执行的t个操作.其中: 为了使输入文件便于阅读,Insert操作的字符串中 ...
- BZOJ4864 BeiJing 2017 Wc神秘物质(splay)
splay维护区间最大值.最小值.相邻两数差的绝对值的最小值即可. #include<iostream> #include<cstdio> #include<cmath& ...
- CMD命令提示符
mspaint 画图板 notepad 打开记事本 write 写字板 calc.exe 计算器 control.exe 控制面板 osk 打开屏幕键盘 rononce -p ----15 ...
- 【刷题】BZOJ 4503 两个串
Description 兔子们在玩两个串的游戏.给定两个字符串S和T,兔子们想知道T在S中出现了几次, 分别在哪些位置出现.注意T中可能有"?"字符,这个字符可以匹配任何字符. I ...
- [洛谷P3261][JLOI2015]城池攻占
题目大意:有$n$个点的树,第$i$个节点有一个权值$h_i$,$m$个骑士,第$i$个骑士攻击力为$v_i$,一个骑士可以把从它开始的连续的父亲中比它小的节点攻破,攻破一个节点可以把攻击力加或乘一个 ...
- Spring boot——构建rest风格
前言rest风格严格意义上说不是一种标准,而是一种风格,在如今互联网界,这个风格被广泛用于微服务系统之间的交互. REST简单介绍 REST(Representional State Transfer ...
- axios请求,拦截器的使用
1. axios 创建请求 import axios from 'axios' import {Message} from 'element-ui' import router from " ...
- BZOJ5312:冒险——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5312 Kaiser终于成为冒险协会的一员,这次冒险协会派他去冒险,他来到一处古墓,却被大门上的守护 ...
- CF449C:Jzzhu and Apples——题解
https://vjudge.net/problem/CodeForces-449C 题目大意:1-n编号的苹果两两一对,他们的最大公约数不为1,求这些对的最大匹配. ———————————————— ...