我试图在VS2017解决方案中使用旧的VB6制造的DLL,但是其中一个在上周开始失败。
我已经注册了它们(regsvr32),在解决方案中添加了引用,并尝试使用其中的方法。
当我在周五关闭VS2017午休时,一切正常,当我尝试恢复我的工作时,其中一个DLL开始出现异常。
提到的DLL抛出 TYPE_E_ELEMENTNOTFOUND 错误,因为它甚至不存在,并且显然,我无法访问其类内的方法。
这里的位置不是问题(在System32和SysWOW64中尝试使用它,没有运气),它仍然显示
无法确定COM参考的依赖性 “ prjPermisos”。找不到元素。 (来自HRESULT的异常:0x8002802B (TYPE_E_ELEMENTNOTFOUND))
警告(甚至没有错误,但IDE仍然不允许我使用DLL。)
我的代码非常简单:
prjPermisos.clsCarPermisos carPermisos = new prjPermisos.clsCarPermisos();
carPermisos.CargaPermisos(ref oUsuario, ref sError); //<--"are you missing a using directive or an assembly reference?" error
(使用IDE和手动方式)清洗了解决方案,然后重新构建,构建了解决方案,却一无所获。
我很肯定我在这里错过了一些东西,我只是不知道什么。
非常感谢向正确方向提供的任何帮助或指导。
答案 0 :(得分:0)
已解决。让我们感谢Murray Foxcroft的想法。
运行并重新编译DLL项目,替换出现故障的dll,一切恢复正常。 -_-