Partilhar via


Instalações Simultâneas

Instalações simultâneas, também chamadas de instalações aninhadas, é 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 de atender corretamente. Não utilize instalações simultâneas para instalar produtos destinados a serem disponibilizados ao público. Instalações simultâneas podem ter aplicabilidade limitada em ambientes corporativos controlados quando usadas para instalar aplicativos que não se destinam a lançamento público. 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. 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 Source da tabela CustomAction identifica o pacote simultâneo. Uma ação de instalação simultânea só pode reinstalar ou remover um aplicativo que tenha sido 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 personalizada, o pacote para o aplicativo simultâneo pode residir em um subarmazenamento do pacote principal, como um arquivo em um local especificado por uma propriedade ou como um aplicativo anunciado na máquina do usuário. Os seguintes tipos de ações personalizadas executam uma instalação simultânea.

Tipo de ação personalizada Descrição
Ação personalizada Tipo 7 Instalação simultânea de um produto residente no pacote de instalação.
Ação Personalizada Tipo 23 Instalação simultânea de um pacote de instalação dentro da árvore de código-fonte atual.
Ação personalizada Tipo 39 Instalação simultânea de um pacote de instalação anunciado.

 

Uma instalação simultânea compartilha a mesma interface do usuário e as mesmas configurações de log que a instalação principal.

As ações de instalação simultâneas devem ser colocadas entre a ação InstallInitialize e ação InstallFinalize da sequência de ação da instalação principal. Após a reversão da instalação principal, o instalador irá reverter a instalação simultânea também. O uso de 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 de retorno para ações de instalação simultânea são os mesmos que para outras ações personalizadas. Consulte Valores de retorno de 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.

Uma vez que o instalador inicia uma instalação simultânea, ele bloqueia todas as outras instalações até que a instalação simultânea esteja 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 Custom Action Return Processing Options devem ser definidos como none (+0) ou msidbCustomActionTypeContinue (+64).

Uma ação de instalação simultânea pode instalar um aplicativo para ser executado localmente, para ser executado a partir da origem, para ser reinstalado ou para ser removido da mesma maneira que ao usar MsiInstallProduct para uma instalação regular. Para especificar o tipo de instalação, passe a ADDLOCAL , ADDSOURCE, REINSTALLou REMOVE propriedade para a ação de instalação simultânea.

As ações de instalação simultânea podem ser criadas em pares, uma ação usada para instalar e a outra ação usada para remover a instalação simultânea. Um Custom Action Type 7 ou Custom Action Type 23 normalmente é usado para instalar. Um Custom Action Type 39 normalmente é usado para remover a instalação simultânea quando o produto pai é desinstalado. O registro da ação personalizada de remoção no de tabela CustomAction do pode ter o GUID do 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 "NÃO instalado" 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 pelo seu custo. Isso dificulta o custeio de instalações simultâneas. As linhas devem ser adicionadas à tabela ReserveCost para indicar as pastas e os custos do pior caso 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 máquina 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 máquina quando ele está realmente registrado como por usuário. Para forçar o estado de uma instalação simultânea para controlar o estado de sua instalação pai, digite ALLUSERS="[ALLUSERS]" na coluna Destino da tabela CustomAction. Nesse caso, a instalação simultânea é por máquina, se o pai for por máquina, e a instalação simultânea é por usuário, se o pai for por usuário.

Os desenvolvedores devem observar os seguintes avisos 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 patches e a atualização podem não funcionar com instalações simultâneas.
  • O instalador pode não custar corretamente uma instalação simultânea.
  • As ProgressBars integradas não podem ser usadas 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 é desinstalado.

Para evitar 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 propriedadeParentOriginalDatabase e propriedade ParentProductCode.

"Not ParentProductCode"
"Not ParentOriginalDatabase"