Mesclar módulos e o componente GUID
-
25-09-2019 - |
Pergunta
Eu li o http://robmensching.com/blog/posts/2003/10/18/component-rules-101 BlogPost, que é muito esclarecedor.
No entanto, ainda tenho algumas perguntas:
Qual é o escopo de um componente GUID? Como tudo isso se relaciona ao usar Mergemodules em diferentes instaladores?
Digamos que eu tenha dois instaladores diferentes, instalando em diferentes pastas e ambos usando o mesmo Mergemodule. Os componentes do Mergemodule têm um certo GUID, mas são instalados nessas diferentes pastas.
E se eu desinstalar o segundo aplicativo instalado? Qual é o efeito no primeiro aplicativo?
Eu tentei esse cenário e os arquivos no primeiro aplicativo instalado ainda existem após o uso do segundo aplicativo instalado (um pouco esperado), mas é removido ao desinstalar o primeiro aplicativo instalado, o que eu não esperava: depois que todos os dados do componente foram atualizados pelo segundo instalador, que já está desinstalado.
Alguém pode esclarecer isso, por favor?
Solução
Isso é chamado de componentes compartilhados e o GUID é escopo para o produto. Geralmente, você geralmente deve ficar bem. Eu faço isso toda hora:
Foo.msm fuseredirectfolder bin foo.dll
P1.msi [ProgramFilesFolder Company p1] <--- foo.msm p2.msi [ProgramFilesFolder Company p2] <--- fom.msm
Para uma discussão mais detalhada, leia: