开发者社区> 问答> 正文

Winform 反射调用DLL显示窗体,报错“调用目标发生了异常” ?报错

Winform 反射调用DLL显示窗体,报错“调用目标发生了异常”,
查看详细信息后说"未能加载文件或程序集...",但检查过目录文件真实存在,而且
程序集成功加载出来了,但是在调用“frm = (Foshirm)Activator.CreateInstance(type);”
报出该错误。该如何解决?
PS:已经尝试过的方法=>
1.移除DLL引用,重新添加,
2.修改项目为与程序集相同的位,
3.更新整个项目代码,全部重新生成图片说明图片说明](https://img-ask.csdn.net/upload/201710/06/1507280243_920622.png)图片说明](https://img-ask.csdn.net/upload/201710/06/1507280238_83112.png)06/1507280222_354476.png)

我想着是不是杀毒软件拦截,然后关掉了唯一一个(腾讯管家,但似乎不能彻底关掉,有进程关不了),但是没效果!求答案

展开
收起
爱吃鱼的程序员 2020-06-23 14:59:55 1576 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    我也遇到过好多次这种问题,基本上都是反射的那个dll文件出了问题,具体问题类型就是,位数不统一(一个32一个64);反射的dll文件里又引用了别的dll
    文件,而运行目录下没有这个文件;反射的dll文件引用的别的dll文件的版本和运行目录下这个程序的版本不一致(注意是程序版本儿非文件版本)。
    大概就这个几种情况,你可以对照看下你的是不是有这几种状况,出现这种问题,大多数情况,就是那个程序集出问题了,以这个为突破口,好好查查,往往是我们注意不到的情况,造成的这种错误。

    可以看看是不是代码生成的类型不匹配,一个是Win32,一个是Win64

    Activator.CreateInstance(type)
    你的type是什么,程序集是否正确加载,程序集用的.net框架版本是否正确。

    系统不一样吧,32和64的会这样

    2020-06-23 15:00:13
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
建立联系方法之一 立即下载
fibjs 模块重构从回调到协程--陈垒 立即下载
不止代码 立即下载

相关实验场景

更多