Diretrizes para pacotes

Como o UAC no Windows Vista restringe privilégios durante uma instalação, os desenvolvedores de pacotes do Windows Installer não devem supor que sua instalação sempre tem acesso a todas as partes do sistema.

Um pacote do instalador que pode ser implantado com êxito para usuários padrão por meio da Política de Grupo, na maioria dos casos, também deve funcionar com o UAC no Windows Vista. Exceções podem ocorrer caso a tabela InstallUISequence contenha a ação LaunchConditions ou a tabela LaunchCondition contenha uma condição baseada na propriedade Privileged. Portanto, os desenvolvedores de pacotes do Windows Installer devem seguir as diretrizes a seguir para garantir que o pacote funcione com o UAC e o Windows Vista.

  • Ao incluir uma condição de contexto de instalação com uma ação na tabela InstallUISequence, use uma instrução condicional com base na propriedade Privileged. Não use uma condição com base na propriedade AdminUser.
  • Ao incluir o contexto de instalação com as condições de inicialização da instalação, use um Tipo de ação personalizada 19 na tabela InstallExecuteSequence e torne a ação personalizada condicional na propriedade Privileged. Não use uma ação na tabela LaunchCondition com uma condição baseada na propriedade AdminUser ou na propriedade Privileged.
  • Para ler ou modificar a configuração do sistema, use uma ação personalizada de execução adiada na tabela InstallExecuteSequence. Não use ações personalizadas de execução imediata na tabela InstallUISequence para modificar as configurações do sistema.
  • Para modificar partes do sistema que não são específicas do usuário, use uma ação personalizada adiada na tabela InstallExecuteSequence. Você deve incluir o bit msidbCustomActionTypeNoImpersonate no tipo de ação personalizada.
  • Omita o Bit 3 do valor da propriedade Summary da Contagem de Palavras para indicar que o pacote pode ser necessário para ser elevado. Não inclua esse bit se não precisar dos privilégios elevados para instalar esse pacote.
  • Inclua um manifesto com o Nível de Execução Solicitado do aplicativo.
  • Inclua um certificado na tabela MsiPatchCertificate do pacote original e assine todos os patches com o mesmo certificado.
  • Se forem necessários privilégios elevados para instalar um pacote do Windows Installer, o autor do pacote deverá incluir o atributo ElevationShield para o controle PushButton usado para iniciar a instalação. Isso alertará o usuário de que clicar no botão exibirá a caixa de diálogo do UAC solicitando autorização do administrador para continuar a instalação.
  • Defina a propriedade MSIDEPLOYMENTCOMPLIANT como 1 para indicar ao Windows Installer que o pacote foi criado e testado para estar em conformidade com o UAC no Windows Vista. Se essa propriedade não estiver definida, o instalador determinará se o pacote está em conformidade com o UAC.

Fora da Política de Grupo, as seguintes verificações de conformidade com o UAC podem ser usadas no Windows XP.

Para verificar a conformidade do UAC fora do Política de Grupo

  1. Faça logon no computador como administrador.

  2. Anuncie o pacote para uma instalação por computador:

    msiexec /jmpackage.msi

  3. Faça logoff do computador.

  4. Faça logon no computador como um usuário padrão.

  5. Tente instalar o pacote anunciado:

    msiexec /ipackage.msi

  6. Na maioria dos casos, se a instalação obtiver êxito, o pacote estará em conformidade com o UAC.

  7. Defina a propriedade MSIDEPLOYMENTCOMPLIANT no pacote como 1.

  8. Teste a instalação correta do pacote usando o Windows Vista.