O que acontece quando anunciamos um MSI de um aplicativo em execução no momento?

1

Atualmente, estou tentando projetar um serviço que monitora e faz downloads de atualização de MSIs. O serviço será executado sob uma conta interna com privilégios elevados (por exemplo, SYSTEM) e fará o download e anunciará um MSI.

Este MSI será uma atualização para um aplicativo já instalado. Eu entendo que os atalhos, etc. são atualizados no anúncio, mas o que acontece se o aplicativo já estiver sendo executado? O que acontece se o usuário iniciar uma segunda instância de um aplicativo já em execução a partir desse atalho?

    
por pixelbadger 21.06.2014 / 03:03

1 resposta

2

Depende de como o MSI é codificado. Por exemplo, com o WiX, você precisa implementar uma ação personalizada para determinar se o aplicativo já está em execução ou se o arquivo estiver bloqueado para gravação. Eu acho que a ação padrão de um MSI se você não tem ações personalizadas é que ele apenas lança um diálogo como "Abortar, Repetir, Falhar" (ou similar) se ele tentar gravar em um arquivo que é bloqueado para edição (como seria quando o aplicativo está sendo executado).

Para lidar com muitos desses casos que os aplicativos conhecidos lidam normalmente (por exemplo, Skype, Firefox etc.), como encerrar uma instância em execução, você precisa implementar o código personalizado. O próprio Windows Installer (que é tudo o que posso supor que você tem se estiver falando de um MSI genérico ) não suporta nativamente tal recurso. Ele suporta muito pouco da caixa, e é por isso que existem coisas como o InstallShield.

    
por 21.06.2014 / 03:41