C# 如何解决加载旧DLL时的类型_E_ELEMENTNOTFOUND(0x8002802B)错误?

C# 如何解决加载旧DLL时的类型_E_ELEMENTNOTFOUND(0x8002802B)错误?,c#,dll,vb6-migration,regsvr32,C#,Dll,Vb6 Migration,Regsvr32,我试图在VS2017解决方案中使用旧的VB6制造的DLL,但其中一个上周开始失败 我已经将它们注册为regsvr32,在解决方案中添加了引用,并尝试使用其中的方法 周五午休时,我关闭了VS2017,一切正常。当我试图恢复工作时,一个DLL开始出现问题 上面提到的DLL抛出一个类型为“”的ELEMENTNOTFOUND错误,就像它不在那里一样,显然,我无法访问其类中的方法 位置在这里不是问题,尝试从System32和SysWOW64使用它时没有运气,它仍然显示 无法确定COM引用的依赖项 prjP

我试图在VS2017解决方案中使用旧的VB6制造的DLL,但其中一个上周开始失败

我已经将它们注册为regsvr32,在解决方案中添加了引用,并尝试使用其中的方法

周五午休时,我关闭了VS2017,一切正常。当我试图恢复工作时,一个DLL开始出现问题

上面提到的DLL抛出一个类型为“”的ELEMENTNOTFOUND错误,就像它不在那里一样,显然,我无法访问其类中的方法

位置在这里不是问题,尝试从System32和SysWOW64使用它时没有运气,它仍然显示

无法确定COM引用的依赖项 prjPermisos。未找到元素。来自HRESULT的异常:0x8002802B 类型_E_元素未找到

警告:即使没有错误,但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和手动清理解决方案,重建、构建解决方案,但仍然一无所获

我肯定我错过了一些东西,我只是不知道是什么


非常感谢对正确方向的任何帮助或指导。

已解决。让我们感谢Murray Foxcroft的想法


运行并重新编译了DLL项目,替换了出错的DLL,一切都恢复正常-_-

您是否尝试过以管理员身份运行VS2017?是的,同样的错误。将目标也更改为x86。是否删除并重新添加引用?除了clean,您是否删除了Debug、Release和Obj文件夹?几次。每次都取消注册并重新注册。手动删除您提到的所有文件夹。是否使用tlbimp手动创建C代理?理想情况下,您应该在这个答案中添加更多的具体信息,以帮助下一个遇到类似问题的人。