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:

  • reversão não irá funcionar corretamente.
    OK, isso faz sentido.

  • Anúncio não vai funcionar tão bem.
    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.

  • Auto-registro não suporta chaves por usuário corretamente.
    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.

  • auto-registro é mais suscetível a erros de codificação.
    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.

  • Auto-registrar dlls pode conectar-se a outras DLLs.
    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)

  • Foi útil?

    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.

    Licenciado em: CC-BY-SA com atribuição
    Não afiliado a StackOverflow
    scroll top