Acumatica 22.105.0031发布自定义包时PX.Payroll程序集加载失败求助
解决Acumatica 22.105.0031带清理发布时PX.Payroll程序集加载错误的方案
问题根源
Acumatica 22.105.0031版本已移除旧版的PX.Payroll.dll,替换为PX.Payroll.WebServiceClient.dll。带清理发布时,系统会彻底清除旧缓存并重新构建,此时自定义项目中残留的旧程序集引用会触发找不到依赖的错误;而普通发布不会完全清理缓存,旧程序集仍存在于环境中,因此能正常执行。
解决步骤
更新自定义项目的程序集引用
- 打开Customization Projects(SM204505)界面,进入目标项目的Project References节点
- 找到所有指向
PX.Payroll.dll的引用条目,直接删除 - 添加对
PX.Payroll.WebServiceClient.dll的引用,确保选择的版本与当前Acumatica 22.105.0031匹配
修正代码中的命名空间和类型引用
- 遍历自定义项目中的所有代码文件,搜索
using PX.Payroll;语句,替换为using PX.Payroll.WebServiceClient; - 检查代码中使用的PX.Payroll相关类型(如PayrollEntry、EmployeeEarnings等),确认这些类型在新程序集中的命名空间是否有变更,若有则同步调整类型调用路径
- 遍历自定义项目中的所有代码文件,搜索
清除本地和服务器缓存
- 关闭Acumatica客户端,找到自定义项目的本地存储目录(默认路径:
C:\Program Files\Acumatica ERP\App_Data\Customization\Projects\[你的项目名]) - 删除该目录下的
bin和obj文件夹,彻底清除本地编译缓存 - 登录Acumatica服务器,找到网站根目录的
bin文件夹,手动删除残留的PX.Payroll.dll文件
- 关闭Acumatica客户端,找到自定义项目的本地存储目录(默认路径:
执行带清理发布
完成上述操作后,回到SM204505界面,选择带清理的发布选项执行发布,此时系统会基于新的程序集引用构建项目,不会再出现加载错误
验证
发布完成后:
- 检查网站
bin目录,确认仅存在PX.Payroll.WebServiceClient.dll,无PX.Payroll.dll - 测试自定义模块中与薪资相关的功能,确保业务逻辑正常运行
内容的提问来源于stack exchange,提问作者vachmir
相关产品推荐
相关产品推荐

