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包. 要开启这项支持,"启用源服务器支持"选项应 ...
随机推荐
- 【hdu3555】Bomb 数位dp
题目描述 求 1~N 内包含数位串 “49” 的数的个数. 输入 The first line of input consists of an integer T (1 <= T <= 1 ...
- 重拾C#教程:变量
一个变量只不过是一个供程序操作的存储区的名字.在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局.范围内的值可以存储在内存中,可以对变量进行一系列操作. 我们已经讨论了各种数据类 ...
- HDU 2089 不要62 | 暴力(其实是个DP)
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2089 题解: 暴力水过 #include<cstdio> #include<algor ...
- 洛谷 U32911 道路维护 解题报告
U32911 道路维护 题目背景 最近很多人投诉说C国的道路破损程度太大,以至于无法通行. C国的政府很重视这件事,但是最近财政有点紧,不可能将所有的道路都进行维护,所以他们决定按照下述方案进行维护. ...
- 【线段树】【P3740】 [HAOI2014]贴海报
传送门 Description Bytetown城市要进行市长竞选,所有的选民可以畅所欲言地对竞选市长的候选人发表言论.为了统一管理,城市委员会为选民准备了一个张贴海报的electoral墙. 张贴规 ...
- 【题解】Weird journey Codeforces 788B 欧拉路
传送门:http://codeforces.com/contest/788/problem/B 好题!好题! 首先图不连通的时候肯定答案是0,我们下面讨论图联通的情况 首先考虑,如果我们每条边都经过两 ...
- ASP.NET基础学习(暴力破解密码)
首先写出一段登陆程序: //ashx端 <%@ WebHandler Language="C#" Class="AddCalation" %> us ...
- FreeRTOS ------ 栈、堆、任务栈
1.任务的栈资源(创建任务分配的资源,单位是4字节)来自 configTOTAL_HEAP_SIZE 定义的堆,如果任务栈总量超过 configTOTAL_HEAP_SIZE,任务创建失败: 2.如果 ...
- http-反向代理学习
主要是学习了反向代理. 结合公司的方向代理使用,然后与同事进行交流,知识还是需要通过交流才能印象深刻,以后多多交流.
- LightOJ 1085 - All Possible Increasing Subsequences 树状数组+离散
http://www.lightoj.com/volume_showproblem.php?problem=1085 题意:求一个序列的递增子序列个数. 思路:找规律可以发现,某个数作为末尾数的种类数 ...