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包. 要开启这项支持,"启用源服务器支持"选项应 ...
随机推荐
- wmware的vmnet0、vmnet1、vmnet8
用vmware安装虚拟机后会出现三种网卡: 1.vmnet0:桥接网卡,虚拟机相当于一台实体机,可以自用访问与被访问及上网. 在桥接模式下,VMware虚拟出来的操作系统就像是局域网中的一独立的主机, ...
- [CQOI2009]跳舞 网络流
题面:[CQOI2009]跳舞 题解: 首先最大时间不好求,而且数据范围很小,所以我们可以先二分一个最大时间,然后就只需要判断是否可行即可. 因此我们每二分一个mid,对于每个女生,连s ---> ...
- mmc驱动的读写过程解析
mmc io的读写从mmc_queue_thread()的获取queue里面的request开始. 先列出调用栈,看下大概的调用顺序, 下面的内容主要阐述这些函数如何工作. host->ops- ...
- CodeBlocks调试功能快捷教程
在程序设计中,单步调试能够跟踪程序的执行流程.跟踪过程中,还可以观察变量的变化,从而发现其中存在的问题.单步执行除了可以帮助我们发现设计的程序中存在的问题,对于初学者,还可以帮助我们理解语言的机制. ...
- PostgreSQL主键索引膨胀的重建方法
普通的索引膨胀处理比较简单,主键的索引膨胀也不复杂,只是在新旧索引交替时有一些小处理.本试验在primary key上通过CONCURRENTLY建立第二索引来解决索引膨胀问题,适用9.3.9.4,其 ...
- Codeforces Round #343 (Div. 2) B
B. Far Relative’s Problem time limit per test 2 seconds memory limit per test 256 megabytes input st ...
- derby数据库windows自带的客户端
本示例演示用windows自带的ij来操作derby数据库,包括建库,建表,插入数据,查询数据 首先要配置环境变量: 其次打开cmd输入如下图所示的命令: java代码如下: package com. ...
- 题解【luogu4168 [Violet]蒲公英】
Description 给出一个长度为 \(n\) 序列 \(a\) ,\(m\) 次询问,每次询问区间 \([l,r]\) 里的众数(出现次数最多的数).若有多个,输出最小的. \(a_i \leq ...
- bzoj 4069 [Apio2015]巴厘岛的雕塑 dp
[Apio2015]巴厘岛的雕塑 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 494 Solved: 238[Submit][Status][Dis ...
- Ubuntu14.04-Python2.7-Virtualenv-Django1.9-MySQL完整环境配置
一.安装Ubuntu14.04LTS 1.下载了ubuntu14.04后用ultraISO写到硬盘镜像(U盘) 开机启动项改成U盘在前,安装. 清空分区,重新分配. /最少10G,我放了100G. 物 ...