¿Por qué es malo el auto registro?
-
22-07-2019 - |
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í:
OK, esta razón tiene sentido.
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.
¿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.
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.
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).
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.