Pergunta

Estou usando o componente da parte A3rd no meu projeto e recentemente atualizei para a versão mais recente que corrigiu o bug 'a'

Infelizmente, enquanto resolveu o bug 'A', outra parte ficou completamente instável, por isso introduziu um bug 'B'.

Como 'a' e 'b' estão em contextos completamente diferentes, quero ter as duas versões do controle instaladas e usar o de um em um caso em que o bug 'b' não é relevante, e o outro no caso desse bug ' A 'não é relevante.

Obviamente, tudo até que uma correção adequada seja emitida pelo desenvolvedor de terceiros

Alguém pensou como isso pode ser feito?

R

PS A DLL precisa ser registrada no Regsvr32 ... Eu suspeito

Foi útil?

Solução

Você pode implantar uma versão diferente de um componente com e usá -lo sem registro. Esse recurso do COM sem registro foi introduzido com o Windows XP e exige que você implante um arquivo .Manifest com as configurações apropriadas.

Dê uma olhada em Ativação sem registro de componentes com e Escape Dll Hell: Simplifique a implantação de aplicativos com clickonce e registro sem registro.

Outras dicas

Você só pode registrar uma composição do mesmo tipo em sua máquina ... é por isso que o GAC é introduzido pelo .NET

Se o componente de terceiros for um componente COM, você estará no caminho certo, precisará registrá -lo duas vezes usando nomes/GUIDs diferentes.

EDIT: Veja a resposta DIVO sobre o registro de múltiplos COM ... depois do XP, você pode fazer isso agora ...
Mas antes disso, a única maneira de fazer isso (sem o código -fonte e recompilar uma nova DLL com diferentes GUIDs de registro) era modificar manualmente a biblioteca de tipos e substituir os GUIDs existentes por novos. Isso seria extremamente difícil. (Pode existir uma ferramenta para fazer isso, mas se houver, não conheço) a biblioteca de tipos, a propósito, pode ser incorporada na própria DLL, ou pode estar em um arquivo *.tlb separado (comum para componentes VB6)

Se, otoh, o componente for um componente de código gerenciado, o registro só poderá ser necessário para a integração no Visual Studio, e será suficiente apenas copiar a DLL na pasta de aplicativos para o executável em que você está usando ...

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