Pregunta

Suponiendo que el autorregistro se usa para instalar componentes como parte de un programa de instalación más grande, ¿por qué es malo el autorregistro? P.ej. controles personalizados vb de registro automático o capicom o lo que sea. Reconozco que el auto registro probablemente no sea tan seguro en el caso de un archivo DLL que usted mismo escribió, pero no estoy discutiendo eso.

El MSDN enumera varias razones por qué el auto registro es malo, reproducido aquí:

  • Rollback no funcionará correctamente.
    OK, esta razón tiene sentido.

  • La publicidad no funcionará tan bien.
    Ignorando el hecho de que la publicidad solo es importante para ciertos tipos de clientes de software, no entiendo por qué esto es un problema. Solo se debe anunciar la aplicación principal, no sus componentes.

  • El registro automático no admite las claves por usuario correctamente.
    ¿Y qué? Dar a cada usuario acceso a "común" componentes no es algo malo a menos que tenga muchos usuarios en la máquina, en cuyo caso aún no termina el mundo.

  • El autorregistro es más susceptible a errores de codificación.
    Definitivamente puedo creer esto, excepto en el caso de los archivos DLL que fueron escritos por Microsoft (pueden tener errores, pero no creo que no sea razonable confiar en ellos). Y en el caso de tlbs y ocxs que fueron generados por software, los errores de codificación parecen bastante improbables.

  • Los dlls autorregistrados pueden vincularse a otros dlls.
    En el caso de los archivos dlls generados por los programas, no parece probable que el registro automático falle debido a esto, pero agregar las claves de registro manualmente hubiera funcionado. Prefiero que mi autorregistro devuelva un error de que me faltan los dlls.

    Estoy seguro de que esto atraerá llamas: /

    Editar: Tachado de argumentos que creo que realmente importan (basados ??en las respuestas de los usuarios y las mías).

        
  • ¿Fue útil?

    Solución

    En cuanto a este elemento:

      
        
    • El autorregistro no admite claves por usuario correctamente.

           

      ¿Y qué? Dar acceso a cada usuario   a "común" componentes no es malo   cosa a menos que tenga muchos usuarios   en la máquina, en cuyo caso es   todavía no termina el mundo.

    •   

    No es solo una cuestión de cuántos usuarios hay en una máquina, sino también qué permisos tienen. Si no es un administrador, es poco probable que el usuario tenga permiso para actualizar la parte HKEY_LOCAL_MACHINE del registro.

    Otros consejos

    El artículo

      

    Los archivos DLL de registro automático pueden vincularse a   otros dlls

    se aplica cuando intenta registrar el dll, pero el instalador aún no ha copiado / instalado otro dll que requiere su función de registro.

    Agregaría un potencial "gotcha" con el que me he encontrado (con código de autorregistro generado automáticamente para objetos MS COM):

    Auto-registro ejecuta el ejecutable, con todo lo que conlleva / requiere. Entonces, por ejemplo, si su componente registra directa o indirectamente el hecho de que se activó (tal vez para el registro de seguridad si se supone que el componente solo se ejecuta en puntos muy específicos o en contextos muy específicos, o en coordinación con otras aplicaciones), el registro parecerá ser una activación (a menos que tenga cuidado al iniciar sesión). Esto también puede ser interesante si sus registros registran, por ejemplo, el contexto en el que se utilizó el componente, en cuyo caso tendrá el contexto heredado que desencadenó el auto registro.

    No es un gran problema en la mayoría de los casos, pero a veces puede causar cierta confusión sutil. Lo agregaría a la lista de razones por las que probablemente no sea preferible.

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