.net 无法加载程序集
.net 无法加载程序集
场景:
发布(启动)服务时,经常会遇到这种情况:无法加载程序集或他的依赖程序集,如下图:
如何解决这种问题:
第一种情况:如果对项目很熟悉,能够快速解决,因为知道 哪个 程序集引用了 这个 dll,添加上引用就可以了。
第二种情况:项目比较大 ,大量依赖其他团队的程序集,这样就很难判断出这个Dll到底是被哪个程序集使用。这种情况就比较难办,我来介绍一下 这种情况下的解决思路:
第一步:将服务下的所有Dll都放到反射工具(我用的反射工具是dnspy),然后搜索无法加载的dll(Beisen.Cloud.Plugins.Model),入下图:
这样我们就知道这个dll被Beisen.PPS.Trigger.SKD.dll和Beisen.PPS.Trigger.ServiceInterface.dll 所引用。
第二步:通过Nuget查看相应Dll的依赖项,如图:
Beisen.PPS.Trigger.SKD.dll 这个Dll 的依赖项并不包括“Beisen.Cloud.Plugins.Model”,这说明打包时,将依赖项“Beisen.Cloud.Plugins.Model”漏掉了。
第三步:找到Beisen.PPS.Trigger.SKD.dll的开发人员,通知他把依赖项加进来,重新发个包;
第四步:升级 Beisen.PPS.Trigger.SKD.dll ,就OK了。
完毕。有什么问题 还请赐教,Thank you.