Winform 反射调用DLL显示窗体,报错“调用目标发生了异常”,
查看详细信息后说"未能加载文件或程序集...",但检查过目录文件真实存在,而且
程序集成功加载出来了,但是在调用“frm = (Foshirm)Activator.CreateInstance(type);”
报出该错误。该如何解决?
PS:已经尝试过的方法=>
1.移除DLL引用,重新添加,
2.修改项目为与程序集相同的位,
3.更新整个项目代码,全部重新生成
我想着是不是杀毒软件拦截,然后关掉了唯一一个(腾讯管家,但似乎不能彻底关掉,有进程关不了),但是没效果!求答案
我也遇到过好多次这种问题,基本上都是反射的那个dll文件出了问题,具体问题类型就是,位数不统一(一个32一个64);反射的dll文件里又引用了别的dll
文件,而运行目录下没有这个文件;反射的dll文件引用的别的dll文件的版本和运行目录下这个程序的版本不一致(注意是程序版本儿非文件版本)。
大概就这个几种情况,你可以对照看下你的是不是有这几种状况,出现这种问题,大多数情况,就是那个程序集出问题了,以这个为突破口,好好查查,往往是我们注意不到的情况,造成的这种错误。
可以看看是不是代码生成的类型不匹配,一个是Win32,一个是Win64
Activator.CreateInstance(type)
你的type是什么,程序集是否正确加载,程序集用的.net框架版本是否正确。
系统不一样吧,32和64的会这样
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。