/ / Por que o atalho criado pela instalação do MSI inicia o processo de instalação novamente toda vez? - c #, .net, instalador do windows

Por que o atalho criado pela instalação do MSI inicia o processo de instalação novamente toda vez? - c #, .net, instalador do windows

Eu criei meu instalador MSI para nosso aplicativo C #via VS 2008. Eu instalei. Ele criou um atalho para mim na área de trabalho. Cliquei nesse atalho, o processo de instalação foi executado novamente e, no final, nosso aplicativo foi lançado. Não foi assim ontem antes de adicionar alguma ação personalizada para criar banco de dados. Eu não recriar o atalho no instalador porque é assim?

Respostas:

5 para resposta № 1

A MSI vem com um recurso de reparo automático que verifica se todos os componentes instalados pela MSI ainda estão presentes quando você inicia o aplicativo usando o atalho.

No seu caso, provavelmente um (ou mais) componentes foram removidos para que o instalador seja iniciado novamente para reparar sua instalação.

Para evitar que o reparo automático seja executado

  • Certifique-se de que nenhum arquivo, configuração de registro ou outro componente instalado seja removido

ou

  • Não defina o caminho da chave para esses componentes. Isso impedirá que a MSI verifique esses componentes específicos

De suas outras perguntas, parece que o seu MSIfoi criado por um projeto de instalação e implantação do Visual Studio. Infelizmente, não há nenhuma opção para modificar o caminho da chave no Visual Studio. Você tem as seguintes opções:

  • Modifique o MSI manualmente usando o Orca (isso não é uma boa opção porque é uma etapa manual)
  • Escreva um script, por exemplo usando o VBScript para corrigir o arquivo MSI
  • Mover para um sistema de instalação mais avançado que lhe dá mais controle, como WiX ou NSIS

6 para resposta № 2

Abra o MSI manualmente usando o Orca. Adicione o seguinte registro à tabela de propriedades (propriedade, valor) sem as aspas:

Property = "DISABLEADVTSHORTCUTS" Valor = "1"

Isso também pode ser roteirizado e executado como parte de um evento de pós-compilação.


1 para resposta № 3

O atalho está apontando para seu aplicativo ou sua configuração? Se ele está apontando para a sua configuração e você muda para a sua aplicação, o problema desaparece?


1 para resposta № 4

Parece que o sistema acha que a instalação foi corrompida e está tentando automaticamente um reparo. Qualquer coisa nos logs de eventos (procure a origem do MsiInstaller no log de eventos do aplicativo).

Você já construiu várias cópias?


1 para resposta № 5

Isso acontece quando o aplicativo exclui um arquivo implantado durante a instalação. O reparo automático é ativado e, portanto, você obtém a tela de instalação.


0 para a resposta № 6

Tive o mesmo problema. No meu caso, o problema era que os campos "Manufacturer" e "ProductName" estavam dentro das propriedades do Projeto Deoplyment. Ele precisa ser o mesmo que a estrutura de pastas para a qual seu atalho está apontando, caso contrário, você terminará com o erro "O recurso" C: Arquivos de Programas (x86) [Fabricante] [ProductName] "não existe" dentro do Visualizador de Eventos .