CustomInstallActions
O elemento CustomInstallActions contém todas as definições de quais ações de instalação personalizadas devem ser executadas e quando devem ser executadas. Você só pode declarar uma instância desse elemento no seu arquivo MicrosoftGame.config. Ele tem um elemento filho obrigatório, Folder, que é uma cadeia de caracteres que designa a pasta que contém todos os arquivos necessários para todas as ações personalizadas. Essa pasta pode conter subpastas. Você é responsável por garantir que o pacote inclua todas as dependências de quaisquer executáveis de ações personalizadas e que elas estejam no caminho de carregamento apropriado para cada um.Quando você empacota o título, o
makepkg converte esse elemento CustomInstallActions na extensão MSIX windows.customInstall no appxmanifest.xml gerado, em que o elemento equivalente é <CustomInstall>, com Folder expresso como um atributo. Você não cria essa forma <CustomInstall> manualmente - no MicrosoftGame.config, Folder é um elemento filho de CustomInstallActions, conforme mostrado nos exemplos de Alterações no arquivo de configuração do jogo mais adiante neste artigo.Você não deve colocar nenhum dos executáveis principais do jogo ou outros arquivos na Folder designada. Ela é explicitamente destinada apenas a arquivos de instalação personalizada.
Tipos de ação
Os três nós filhos da extensão de instalação personalizada determinam quando determinadas ações personalizadas são executadas. Há três tipos de ações de instalação personalizadas.- Ação de instalação: ações que a plataforma executa antes da primeira inicialização do aplicativo
- Ação de reparo: ações executadas quando o usuário seleciona Reparar ou Redefinir
- Ação de desinstalação: ações executadas quando o usuário desinstala o aplicativo
Apesar do nome, uma ação de instalação não é executada quando o pacote é instalado. Cada tipo de ação é executado em um ponto específico do ciclo de vida do aplicativo, e uma InstallAction é executada uma vez, imediatamente antes da primeira inicialização do título (esse é o primeiro ponto em que a plataforma pode apresentar o prompt do UAC necessário). “Install”, “Repair” e “Uninstall” nomeiam a categoria do ciclo de vida à qual a ação pertence - não o momento em que ela é executada. Se você precisar que um trabalho seja realizado no momento real da instalação/download do pacote, as ações de instalação personalizadas não são o mecanismo adequado. Consulte Uso de ações personalizadas para ver a sequência completa.
A ação de desinstalação só será executada se uma ação de instalação ou de reparo tiver sido executada. O sistema usa a propriedade Name para rastrear esse estado. Por esse motivo, é importante que as ações de instalação/reparo/desinstalação tenham o mesmo Name.
Partes de uma ação
File
Para cada ação, você deve especificar o arquivo a ser executado, e esse arquivo deve estar no seu pacote. Se você especificar um caminho, ele será implicitamente relativo ao caminho de Folder de CustomInstallActions. Você não pode especificar um caminho absoluto. Seu caminho não deve começar com uma barra invertida (\).Name
Você deve especificar um Name para a ação. Esse Name deve ser exclusivo dentro do nó Actions pai, mas pode ser compartilhado entre nós Actions diferentes. Por exemplo, você pode especificar File=“MySetup.exe” e Name=“abc123” tanto como InstallAction quanto como RepairAction. Por outro lado, se você tiver dois elementos InstallAction, cada um deles deverá ter um Name diferente. Você deve usar o mesmo Name para o mesmo executável entre versões do pacote, desde que esse executável não mude. O Name é usado como a identidade da ação e permite que a plataforma rastreie quais ações foram executadas com êxito e se elas precisam ser executadas para um pacote atualizado. Se um pacote atualizado especificar uma ação personalizada com um Name que já foi executado com êxito, a plataforma ignorará essa ação na atualização.Uma diferença na lista de argumentos não constitui uma diferença de identidade. Se você quiser executar o mesmo executável com argumentos diferentes em um pacote atualizado, deverá fornecer um Name diferente. É sua responsabilidade configurar os Names declarados adequadamente e rastreá-los entre versões.
Arguments
Cada ação de instalação personalizada tem um terceiro elemento, argument, que permite incluir todos os argumentos necessários para executar o comando do redistribuível.Uso de ações personalizadas
A instalação de software antitrapaça normalmente exige que o usuário tenha privilégios de administrador e, em geral - como as ações personalizadas são um recurso extremamente poderoso -, a plataforma exige privilégios de administrador para qualquer pacote que tenha ações personalizadas. Para operações executadas com privilégios de administrador, o Windows exige que um prompt do Controle de Conta de Usuário (UAC) seja exibido na primeira execução do aplicativo. O fluxo de trabalho do usuário é o seguinte.- A página da Microsoft Store do jogo inclui uma descrição dos requisitos, incluindo se a instalação exige privilégios elevados, se a instalação executa uma ação personalizada e o que isso pode significar para o usuário. Essas informações são fornecidas para que o usuário possa tomar uma decisão informada sobre a compra do jogo.
- Supondo que o usuário esteja de acordo com as restrições e implicações, ele seleciona Instalar.
- A plataforma detecta que o pacote inclui uma ação personalizada e registra o fato de que a ação personalizada precisa ser executada. No entanto, ela não executa a ação personalizada durante a fase inicial de instalação. Em vez disso, qualquer ação personalizada é executada na primeira vez que o usuário inicia o jogo.
- Na primeira inicialização do jogo, no momento em que a plataforma está prestes a executar as ações personalizadas, ela exibe um prompt do UAC. O usuário então precisa fornecer credenciais de administrador e aceitar a elevação. Mesmo que um pacote contenha várias ações personalizadas, o usuário recebe apenas um prompt do UAC. Não há outro prompt do UAC para atualizações, a menos que uma ou mais das ações personalizadas tenham sido alteradas. Há um prompt do UAC quando o jogo é desinstalado.
As ações de instalação personalizadas só têm suporte no pacote MSIXVC principal. Elas não têm suporte em pacotes de estrutura, pacotes opcionais, pacotes de modificação ou qualquer outro tipo de pacote.
As ações personalizadas de instalação, reparo e desinstalação são executadas pelo pipeline de implantação de varejo da Microsoft Store. Elas não são executadas quando você instala o pacote localmente para desenvolvimento - por exemplo, quando você instala um
.msixvc solto usando wdApp install ou registra um pacote usando Add-AppxPackage. Uma instalação local de desenvolvimento ainda permite verificar se o seu pacote declara as ações corretamente (elas aparecem no appxmanifest.xml gerado como a extensão windows.customInstall), mas os próprios executáveis das ações personalizadas não são invocados nesse caminho. Para validar a execução das ações de ponta a ponta, instale o título por meio de um fluxo da Store ou de uma sandbox.