title: How to solve TYPE_E_ELEMENTNOTFOUND (0x8002802B) error loading old DLL?
body: <p>I am trying to use old VB6-made DLLs in a VS2017 solution, but one of them started to fail last week.</p>
  
  <p>I have registered them (regsvr32), added the references in the solution, and tried using the methods inside them. </p>
  
  <p>Everything was going OK when I closed my VS2017 for lunch break on Friday, and when I tried resuming my work one of the DLLs started misbehaving.</p>
  
  <p>The mentioned DLL throws a <strong>TYPE_E_ELEMENTNOTFOUND</strong> error like it is not even there and, obviously, I can't access the methods inside its class.</p>
  
  <p>Location is not an issue here (tried using it from System32 and SysWOW64 with no luck), and it is still showing the </p>
  
  <blockquote>
    <p>Could not determine the dependencies of the COM reference
    "prjPermisos". Element not found. (Exception from HRESULT: 0x8002802B
    (TYPE_E_ELEMENTNOTFOUND))</p>
  </blockquote>
  
  <p>warning (not even an Error, but the IDE is still not letting me use the DLL.)</p>
  
  <p>My code is as simple as can be:</p>
  
  <pre><code>prjPermisos.clsCarPermisos carPermisos = new prjPermisos.clsCarPermisos();
  carPermisos.CargaPermisos(ref oUsuario, ref sError);   //&lt;--"are you missing a using directive or an assembly reference?" error
  </code></pre>
  
  <p>Cleaned (both with the IDE and manually) the solution, Rebuilt, Built the solution and still nothing.</p>
  
  <p>I am positive I am missing something here, I just don't know what.</p>
  
  <p>Any help or guidance to the right direction is greatly appreciated.</p>