关于使用ABP框架搭建的项目升级时需要注意的问题汇总

时间:2023-03-08 17:24:10

ABP理论学习总目录

一步一步使用ABP框架搭建正式项目系列教程

ABP之Module-Zero学习目录


本篇目录

说明

这一篇文章会汇集所有使用ABP框架(包含Module-zero模块)搭建的项目进行升级时遇到的各种问题。以后只要是遇到问题,经过几番努力,最终找到解决办法,都可以将问题和答案发到群里,通知管理员,我会抽空将你的问题和答案更新到这里(也会包含问题的原因所在),方便后来更多的初学者,让更多人知其然,更知其所以然,也为每个使用ABP做项目的开发者填上不必要的坑。以后这篇博客会经常更新,每次更新都会在问题的后面标明更新时间,这样,更方便阅读和整理。也希望大家将升级的过程中遇到的问题提出来。

升级方法

我们可以将升级分为两部分:

  1. ABP和module-zero(主要是各种dll程序集)。它们可以轻松地更新,因为它们都已发布在了nuget。这里是nuget包的所以列表:
    http://www.cnblogs.com/farb/p/ABPNugetPackage.html
    http://www.cnblogs.com/farb/p/ModuleZeroNugetPackageManagement.html

    新的发布一般都是向后兼容的。如果有重大变化的话,官方会有特别说明的,并且有文档说明如何迁移的。因此,这一部分的更新很容易,只要更新nuget包就可以了。
  2. 前端资源(各种js,css文件)。如果你用的是ABP自带的静态资源,那么你也可以更新这些包。如果你有自己的UI,那么只需要考虑第一点。

问题_01:Log4Net导致编译不成功

有园友在使用ABP的时候,打开Nuget包管理器时发现有很多包可以更新了,由于数量很多,直接选择了全部更新,待这些包安装完成后,结果编译的时候,报下面的错误:
关于使用ABP框架搭建的项目升级时需要注意的问题汇总

原因:Castle Windsor只支持log4net v1.2.10,因为该版本使用了一个不同的key进行签名的,而升级到此版本以上会是一个重大变化,所以官方至今还没更新

解决办法:
更新程序集的时候不要更新log4net,就保持它是v1.2.10,直到官方给出更新再更新。

问题_02:升级V0.7.5.0 Abp等程序集后需要改的几个类

之前使用ABP官网创建的解决方案,内置了v0.7.1版本的以Abp为前缀的程序集(如Abp.dll,Abp.Zero等),今天升级了这些dll程序集之后,在生成解决方案时,遇到了如截图所示的问题:

关于使用ABP框架搭建的项目升级时需要注意的问题汇总

原因:新版本中的Abp.Zero.dll中的基类AbpUser,AbpRole等类的构造函数参数发生了变化。

解决办法:
在错误列表中双击提示的错误,定位到相应的代码区,手动修改新版本中的几个构造函数发生变化的类。将光标放到base方法上,或者直接查看定义,就可以看到需要传入哪几个参数了。按照要求的参数类型传入参数即可。

问题_03:升级V0.8.0.0~V0.8.2.0 Abp等程序集时需要注意的问题

将程序集升级到V0.8.0.0~V0.8.2.0时,打开解决方案时可能会出现下面的问题:

关于使用ABP框架搭建的项目升级时需要注意的问题汇总

原因:ABP框架在V0.8.0.0版本将目标框架升级到了.net framework 4.6.1,出现这个弹窗说明你的计算机上没有安装该框架。

解决办法:
打开.Net目标平台页面,选择相应的目标平台下载即可。
关于使用ABP框架搭建的项目升级时需要注意的问题汇总
比如,我用的是VS 2013,那我只需要按上面进行下载即可。