Como cancelo o registro de dlls COM adicionadas inicialmente com RegSvr32 quando o argumento /u não funciona?

StackOverflow https://stackoverflow.com/questions/19725

Pergunta

Certo, inicialmente executei:

c:\regsvr32 Amazing.dll

então, (acidentalmente - devo acrescentar) devo tê-lo executado novamente e (de fato) novamente quando novas versões de 'Amazing.dll' foram lançadas.Sim eu sei agora Eu deveria ter corrido:

c:\regsvr32 /u Amazing.dll

de antemão - mas ei!Eu esqueci.

Para ir direto ao ponto, ao adicionar a referência COM no VS, posso ver 3 instâncias de 'Amazing', todas apontando para o mesmo local (c:\Amazing.dll), executando regsvr32 /u remove uma das referências, pela segunda vez - não faz nada...

Como faço para me livrar dessas referências?Estou olhando para um cenário regedit?- Se sim - o que exatamente acontece se eu deletar uma das chaves???

Saúde

Foi útil?

Solução

Os GUIDs do seu objeto não devem mudar.Em outras palavras, depois de registrar o objeto COM, o novo registro não deverá adicionar nada adicional ao registro.

A menos que você tenha adicionado interfaces ou objetos COM adicionais ao projeto.

De qualquer forma, se este for um acordo único (e parece que é), abra o regedit e exclua manualmente as chaves desnecessárias.

Outras dicas

Existe uma ferramenta da MS que ainda está circulando desde os dias do Win95, que verifica o registro e faz coisas como encontrar chaves COM que não estão mais apontando para um arquivo válido, etc., chamada RegClean (encontrei aqui: http://downloads.zdnet.com/abstract.aspx?assetid=881470&node=2094) que vi alguns lugares ainda usando, especialmente ao mexer com coisas COM herdadas no VB, que estão gerando novos GUIDs COM após cada compilação.

Então, se você conseguiu isso, cancelou o registro e excluiu ou moveu o arquivo, execute o aplicativo e ele limpará as entradas "órfãs".

Se você decidir remover as chaves usando RegEdit, talvez seja necessário remover os IDs de classe, bem como as entradas de guid.

Eu já me meti em uma confusão horrível com o COM antes.Infelizmente, tive que escolher meu caminho pelo registro, excluindo cada referência.

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