Por que é selfregistration ruim?
-
22-07-2019 - |
Pergunta
Assumindo auto-registro é usado para instalar componentes como parte de um programa de instalação maior, porque é ruim auto-registro? Por exemplo. controles personalizados vb auto-registrar ou CAPICOM ou qualquer outra coisa. Eu reconheço que a auto-registro não é provavelmente tão seguro no caso de uma dll que você escreveu mesmo, mas eu não estou discutindo os.
As listas MSDN várias razões por auto-registro é ruim, reproduzido aqui:
OK, isso faz sentido.
Ignorando o fato de que a propaganda é apenas importante para certos tipos de clientes de software, eu não entendo por que isso é um problema. Apenas as principais necessidades de aplicação a ser anunciado, não seus componentes.
E daí? Dando a cada acesso do usuário aos componentes "comuns" não é uma coisa ruim a menos que você tem um monte de usuários na máquina, caso em que ainda não é acabar com o mundo.
eu posso definitivamente acreditar, exceto no caso de DLLs que foram escritas pela Microsoft (que pode ter erros, mas eu não acho que confiar neles é razoável). E no caso de TLB e OCXs que foram gerados por software, erros de codificação parece bastante improvável.
No caso de DLLs gerados por programas, não parece provável que o auto-registo irá falhar devido a isso, mas adicionando as chaves de registro manualmente teria funcionado. Eu prefiro ter a minha auto-registro retornará um erro que eu estou perdendo as DLLs.
Tenho certeza que isso vai chamar chamas: /
Edit:. Riscado argumentos que eu acho que realmente importa (com base nas respostas do usuário e minha própria)
Solução
Tanto quanto este item:
Auto-registro não suporta chaves por usuário corretamente.
Então, o que? Dando a cada acesso do usuário aos componentes "comuns" não é uma má coisa a menos que você tem um monte de usuários na máquina, caso em que ele é ainda não-mundo que termina.
Não é apenas uma questão de quantos usuários estão em uma máquina, mas também o que eles têm permissões. Se não for um administrador, o usuário será pouco provável que tem permissão para atualizar a parte HKEY_LOCAL_MACHINE
do registro.
Outras dicas
O item
Auto-registrar dlls pode conectar-se a outras DLLs
se aplica quando você tentar registrar a DLL, mas o instalador ainda não copiados / instalada outra dll sua função de registrar requer.
Gostaria de acrescentar um potencial "pegadinha", que eu tenho que correr em (com código de auto-registro gerado automaticamente para MS COM objetos):
Auto-registro é executado o executável, com tudo o que implica / requer. Assim, por exemplo, se o seu componente direta ou indiretamente registra o fato de que ele foi ativado (talvez para o registo de segurança se o componente só é suposto estar a correr em pontos muito específicos ou em contextos muito específicos, ou em coordenação com outras aplicações), registro aparecerá para ser uma ativação (a menos que você for cuidadoso sobre o registo). Isso também pode ser interessante se o registro seus registros, por exemplo, o contexto em que o componente foi utilizado, caso em que você vai ter o que herdou contexto provocou a auto-registro.
Não é um grande negócio na maioria dos casos, mas pode causar alguma confusão sutil, às vezes. Eu adicioná-lo à lista de razões pelas quais provavelmente não é preferível.