Instalações simultâneas
Instalações simultâneas, também chamadas de Instalações Aninhadas, são um recurso preterido do Windows Installer. Os aplicativos instalados com instalações simultâneas podem eventualmente falhar porque são difíceis para os clientes atenderem corretamente. Não use instalações simultâneas para instalar produtos que devem ser liberados ao público. As instalações simultâneas podem ter aplicabilidade limitada em ambientes corporativos controlados quando usadas para instalar aplicativos que não se destinam à versão pública. A documentação de instalações simultâneas é fornecida para autores de pacotes que desejam usar instalações simultâneas com aplicativos que não são para distribuição pública.
Uma ação de instalação simultânea instala outro pacote do Windows Installer durante uma instalação em execução no momento. Uma instalação simultânea é adicionada a um pacote criando uma ação de instalação simultânea na tabela CustomAction e agendando essa ação personalizada nas tabelas de sequência. O campo Destino da tabela CustomAction contém uma cadeia de caracteres de configurações de propriedade pública usadas pela instalação simultânea. O campo Origem da tabela CustomAction identifica o pacote simultâneo. Uma ação de instalação simultânea só pode reinstalar ou remover um aplicativo que foi instalado pelo pacote de instalação do aplicativo atual.
O tipo de ação de instalação simultânea é especificado no campo Tipo da tabela CustomAction. Dependendo do tipo de ação personalizado, o pacote para o aplicativo simultâneo pode residir em uma sub-estrutura do pacote principal, como um arquivo em um local especificado por uma propriedade ou como um aplicativo anunciado no computador do usuário. Os seguintes tipos de ações personalizadas executam uma instalação simultânea.
Tipo de ação personalizado | Descrição |
---|---|
ação personalizada tipo 7 | Instalação simultânea de um produto que reside no pacote de instalação. |
tipo de ação personalizada 23 | Instalação simultânea de um pacote do instalador na árvore de origem atual. |
tipo de ação personalizada 39 | Instalação simultânea de um pacote de instalador anunciado. |
Uma instalação simultânea compartilha as mesmas configurações de log e interface do usuário que a instalação principal.
As ações de instalação simultâneas devem ser colocadas entre o de ação InstallInitialize e de ação InstallFinalize da sequência de ações da instalação principal. Após a reversão da instalação principal, o instalador também reverterá a instalação simultânea. O uso de execução adiada com ações de instalação simultâneas é desnecessário porque o instalador combina informações de reversão das instalações simultâneas e principais. Todas as alterações são revertidas após uma instalação de reversão.
Os valores retornados para ações de instalação simultâneas são os mesmos de outras ações personalizadas. Consulte valores de retorno da ação personalizada.
Ações padrão ou personalizadas que especificam uma reinicialização automática do sistema ou solicitam que o usuário reinicie também podem executar a reinicialização ou solicitação de dentro de uma instalação simultânea.
Depois que o instalador inicia uma instalação simultânea, ele bloqueia todas as outras instalações até que a instalação simultânea seja concluída e antes de continuar a instalação principal. O instalador só pode executar instalações simultâneas como ações personalizadas síncronas. Consulte ações personalizadas síncronas e assíncronas. Os sinalizadores de opção descritos em Opções de Processamento de Retorno de Ação Personalizada devem ser definidos como nenhum (+0) ou msidbCustomActionTypeContinue (+64).
Uma ação de instalação simultânea pode instalar um aplicativo a ser executado localmente, executar da origem, ser reinstalado ou ser removido da mesma maneira que ao usar o MsiInstallProduct para uma instalação regular. Para especificar o tipo de instalação, passe o ADDLOCAL, ADDSOURCE, REINSTALL ou propriedade REMOVE para a ação de instalação simultânea.
Ações de instalação simultâneas podem ser criadas em pares, uma ação usada para instalação e a outra ação usada para remover a instalação simultânea. Um tipo de ação personalizada 7 ou de ação personalizada tipo 23 normalmente é usado para instalar. Um tipo de ação personalizada 39 normalmente é usado para remover a instalação simultânea quando o produto pai é desinstalado. O registro da ação personalizada de remoção na tabela CustomAction pode ter o GUID de código do produto no campo Origem e "REMOVE=ALL" no campo Destino. As duas ações personalizadas precisam ser criadas na tabela de sequência de ações com condições mutuamente exclusivas. Por exemplo, a ação personalizada que instala o produto pode ter "NOT Installed" em seu campo Condição e a ação personalizada remove a instalação simultânea pode ter REMOVE="ALL" em seu campo Condição.
Não há nenhum método para consultar um pacote quanto ao seu custo. Isso dificulta o custo de instalações simultâneas. As linhas devem ser adicionadas à tabela ReserveCost para indicar as pastas e os custos piores do componente associado à instalação simultânea.
As únicas opções de processamento de retorno de ação personalizada disponíveis com ações de instalação simultâneas são nenhuma (+0) ou msidbCustomActionTypeContinue (+64).
Observe que uma instalação pai não pode chamar seu próprio pacote como uma ação de instalação simultânea.
Observe que, se uma instalação por computador tentar executar uma instalação simultânea por usuário, o instalador registrará a instalação pai como por usuário por padrão. Isso pode fazer com que o instalador remova incorretamente o aplicativo porque o instalador tenta desinstalar o aplicativo por computador quando ele é realmente registrado como por usuário. Para forçar o estado de uma instalação simultânea a acompanhar o estado de sua instalação pai, insira ALLUSERS="[ALLUSERS]" na coluna Destino da tabela CustomAction. Nesse caso, a instalação simultânea será por computador se o pai for por computador e a instalação simultânea for por usuário se o pai for por usuário.
Os desenvolvedores devem observar os avisos a seguir ao criar instalações simultâneas.
- Instalações simultâneas não podem compartilhar componentes.
- Uma instalação administrativa também não pode conter uma instalação simultânea.
- A aplicação de patch e atualização pode não funcionar com instalações simultâneas.
- O instalador pode não custar corretamente uma instalação simultânea.
- ProgressBars integrados não podem ser usados com instalações simultâneas.
- Os recursos que devem ser anunciados não podem ser instalados pela instalação simultânea.
- Um pacote que executa uma instalação simultânea de um aplicativo também deve desinstalar o aplicativo simultâneo quando o produto pai for desinstalado.
Para impedir que um pacote seja instalado como uma instalação simultânea, adicione uma das seguintes instruções condicionais à tabela LaunchCondition. Isso impede que o pacote seja instalado por uma ação de instalação simultânea executada por outra instalação. Isso não impede que o pacote seja removido pela ação RemoveExistingProducts. Consulte também a propriedadeParentOriginalDatabasee propriedade ParentProductCode.
"Not ParentProductCode"
"Not ParentOriginalDatabase"