C/S架构软件开发平台迭代开发记录-从数据库加载模块DLL方式报错
C/S架构软件开发平台迭代开发记录-从数据库加载模块DLL方式报错
前言
开发框架提供两个方案加载业务模块:
- 从帐套数据库sys_ModuleFileList表获取模块文件(*dll)
- 从应用程序目录获取模块文件(*dll)
错误原因
从.NETFramework4.7版本升级到.NET7版本后出现这个问题。
解决方案
解决1:修复ModuleManager.LoadModules方法
文件位置:CSFrameworkV6.ClientFoundation\CSFrameworkV6.Library\CommonClass\ModuleManager.cs
修复后代码:
if (SystemSettings.Current.ModuleLoadType == ModuleLoadType.ByModuleFileTable)
{
var listModels = CommonData.GetDataDict<sys_ModuleFileList>();
//转换为TModuleFileList实体列表
var fileList = listModels.Convert<TModuleFileList>();
_Modules = loader.GetModuleList(fileList);//从运行目录中搜索模块文件
}
解决2:修复ModuleLoaderBase.GetModuleList
文件位置:CSFrameworkV6.Core\CSFrameworkV6.CoreWindows\ModuleLoaderLib\ModuleLoaderBase.cs
修复后代码:
var rs = fileList.Where(w => w.IsVisible == "Y").OrderBy(o => o.SortID).ToList();//模块可用和排序
重新编译,复制以下两个文件替换旧的即可。
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网