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:

  1. 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.

  2. 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.

Foi útil?

Solução

Para corrigir a estranheza, eu acabei fazendo o seguinte:

  1. Instalado Orca.exe, parte do Windows SDK.
  2. 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.

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