Ao usar o InstallShield Le, o MSI contém uma versão desatualizada de um assembly, mas versões atuais dos outros

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

Pergunta

Estou usando o Visual Studio 2010, InstallShield Le em uma solução com cerca de 10 projetos totais.

Eu selecionei a principal saída do projeto da GUI para a parte 'Arquivos', instalada em um subdiretório de arquivos de programa, bastante padrão.

Eu construí o instalador algumas semanas atrás e instalei-o na minha máquina de teste, tudo estava funcionando bem. Desde então, fiz alterações em cada projeto na solução. Hoje, eu incrementei minha versão de montagem e reconstrui meu projeto de configuração para continuar testando.

Após a instalação, no diretório de instalação de arquivos de programa, notei que uma das montagens do meu projeto ainda lista a versão anterior, 1.0.0.0 e a data do arquivo tem mais de um mês de idade. As outras assembléias no diretório mostram as versões atuais e a data modificada atual.

Eu tentei excluir todas as pasta bin e obj no meu diretório de solução e também na pasta do projeto do instalador. Eu reinstalei, mas o problema permanece.

Eu procurei o Google, mas como o problema é estranho, uma boa frase de pesquisa foi elusiva.

Obviamente, eu preciso da versão mais atual das minhas montagens a serem incluídas no instalador MSI.

Obrigado por qualquer ajuda ou sugestões!

Foi útil?

Solução

Você precisa fazer duas coisas: extrair o arquivo real no MSI para saber se o binário atualizado está lá no MSI, e obter um log detalhado da instalação procurando o que o Windows Installer diz sobre o componente que contém o conjuntoem questão.BTW, você tem cada arquivo de montagem como o arquivo chave do seu próprio componente, não é?O Windows Installer só verifica as atualizações de versão para caminhos.

Outras dicas

Você vai querer ler:

Versão do arquivo padrão

Nota: Certifique-se de que você está comparando o AssemblyFileVersion.Não é o atributo AssemblyVersion que é importante, em vez disso, o atributo AssemblyFileVerion.O primeiro é usado pelo GAC e pelo Strong Name Contracts, enquanto os mapas posteriores para a estrutura nativa do Windows FileVersion.

Eu tive o mesmo problema com o projeto VS Setup antes.Eu veria novamente as referências de montagem em sua solução que referência ao projeto com a DLL antiga.Você deve apenas ser capaz de ver a janela Propriedades para ver a versão que está se referenciando.No meu caso, referenciaria a DLL da pasta de bin de outro projeto, em vez do próprio projeto.

Eu sei que você excluiu todas as suas pastas de bin e obj, mas provavelmente vale a pena tentar.

Se você encontrar a referência do problema, basta remover e adicioná-lo e você deve ser bom.

Dump InstallShield e ir com wix .. você nunca olhará para trás.

wix tem e.UpgradeCode para ajudá-lo a controlar as verificações de versão em recursos.

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