Pregunta

Mi instalador de InstallShield no parece registrar varias de sus DLL COM de manera correcta, aunque he actualizado la información de COM en el instalador. Si ejecuto regsvr32 manualmente después de la instalación, todo está bien.

Noto que después de la instalación, tengo valores InprocServer32 en el registro para mis componentes que contienen cadenas de aspecto aleatorio, que creo que son descriptores Darwin , que entiendo que anularán la ubicación de la ruta de texto sin formato si está presente . Cuando ejecuto manualmente regsvr32, estos descriptores de Darwin desaparecen. Mi hipótesis actual es que la información codificada en estos descriptores es incorrecta y, por lo tanto, cuando mi programa intenta crear una instancia de los componentes COM, utiliza la información incorrecta del descriptor de Darwin y falla, aunque la ruta de texto en claro a las DLL sea correcta.

¿Puede alguien arrojar alguna luz sobre cómo puedo ver si este es el caso, descifrar estos descriptores, impedir que InstallShield genere Descriptores de Darwin o arreglar mi instalador?

¿Fue útil?

Solución

Entiendo que los descriptores de Darwin son el servicio del instalador de Windows que rastrea los puntos de entrada COM de nuevo al .MSI original (para que pueda curar el .dll si se elimina, etc.). El MSI contiene el valor real.

Es de suponer que desde que ha reconstruido la información de COM, ha desinstalado el MSI de su máquina y lo ha vuelto a instalar (por lo que msiexec no solo realiza una instalación de mantenimiento en lugar de una instalación completa).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top