remove MSI necessário montagem em atualizar instalar, mas substitui-lo no reparo
-
19-09-2019 - |
Pergunta
Estou experimentando alguma estranheza relacionada a uma actualização de instalação MSI, talvez alguém lá fora, pode me ajudar:
Eu tenho dois MSIs, um original e um upgrade:
- MSI versão 1.0
- Contém um .NET assembly, foo.dll, a ser instalado no GAC
- foo.dll é do tipo "Montagem" (e não "Saída") dentro do gui sistema de arquivos MSI.
- MSI versão 2.0
- Também contém foo.dll (mesma versão), além de um grupo conjuntos adicionais.
- Gostaria MSI 2.0 para substituir totalmente 1.0, então eu definir RemovePerviousVersion para Falso.
Agora os dois cenários de instalação:
-
Eu corro MSI 1.0. Foo.dll é instalado no GAC corretamente. Em seguida, executado MSI 2,0 e
Foo.dll parece ser removida da GAC ?? , mas os conjuntos adicionais estão lá. Eu não tenho idéia caminho. No entanto, se eu vá para Adicionar / Remover programas e clique em "Reparar", Foo.dll é colocado em. -
MSI 1.0 nunca é instalado e eu corro MSI 2.0. Foo.dll (e os conjuntos adicionais)
é não, como seria de esperar.
Todas as ideias por que o foo.dll é removido durante a atualização ?? Agradecemos antecipadamente!
-Ken
Atualizar Depois de algum refrescante / reconstrução, parece funcionar agora. No entanto, agora ele não remove foo.dll quando eu desinstalar o MSI, apesar de sua propriedade "permanente" é definido como falso. Não tão grande de um problema, mas seria bom saber o que estava acontecendo.
Solução
Para corrigir a estranheza, eu acabei fazendo o seguinte:
- Instalado Orca.exe, parte do Windows SDK.
- Adicionado REINSTALLMODE = amus à mesa de Propery via Orca, construção post.
Isso resolveu o meu problema imediato e corrigiu os problemas de instalação / desinstalação que eu estava experimentando. O único problema é que este é um processo manual. O próximo passo, fazer disto uma parte de um evento automático de pós-compilação de alguma forma.