CustomInstallActions
El elemento CustomInstallActions contiene todas las definiciones de qué acciones de instalación personalizadas se deben ejecutar y cuándo deben ejecutarse. Solo puede declarar una instancia de este elemento en su archivo MicrosoftGame.config. Tiene un elemento secundario obligatorio, Folder, que es una cadena que designa la carpeta que contiene todos los archivos necesarios para todas las acciones personalizadas. Esta carpeta puede contener subcarpetas. Usted es responsable de garantizar que el paquete incluya las dependencias de los ejecutables de las acciones personalizadas, y de que estas se encuentren en la ruta de carga adecuada para cada uno.Al empaquetar el título,
makepkg traduce este elemento CustomInstallActions a la extensión MSIX windows.customInstall en el appxmanifest.xml generado, donde el elemento equivalente es <CustomInstall> con Folder expresado como un atributo. Usted no crea esa forma <CustomInstall> por sí mismo: en MicrosoftGame.config, Folder es un elemento secundario de CustomInstallActions, como se muestra en los ejemplos de Cambios en el archivo de configuración del juego más adelante en este artículo.No debe colocar ninguno de los ejecutables principales del juego ni otros archivos en la carpeta Folder designada. Es explícitamente solo para archivos de instalación personalizada.
Tipos de acciones
Los tres nodos secundarios de la extensión de instalación personalizada determinan cuándo se ejecutan determinadas acciones personalizadas. Hay tres tipos de acciones de instalación personalizadas.- Acción de instalación: acciones que la plataforma ejecuta antes del primer inicio de la aplicación
- Acción de reparación: acciones que se ejecutan cuando el usuario selecciona Reparar o Restablecer
- Acción de desinstalación: acciones que se ejecutan cuando el usuario desinstala la aplicación
A pesar del nombre, una acción de instalación no se ejecuta cuando se instala el paquete. Cada tipo de acción se ejecuta en un punto específico del ciclo de vida de la aplicación, y una InstallAction se ejecuta una vez, inmediatamente antes del primer inicio del título (este es el primer punto en el que la plataforma puede mostrar el aviso de UAC requerido). “Install”, “Repair” y “Uninstall” nombran la categoría del ciclo de vida a la que pertenece la acción, no el momento en que se ejecuta. Si necesita realizar trabajo en el momento real de la instalación o descarga del paquete, las acciones de instalación personalizadas no son el mecanismo. Consulte Uso de las acciones personalizadas para conocer la secuencia completa.
La acción de desinstalación solo se ejecutará si se ha ejecutado una acción de instalación o de reparación. El sistema usa la propiedad Name para hacer un seguimiento de este estado. Por este motivo, es importante que las acciones de instalación/reparación/desinstalación tengan el mismo Name.
Partes de una acción
File
Para cada acción, debe especificar el archivo que se va a ejecutar, y este archivo debe estar en el paquete. Si especifica una ruta, será implícitamente relativa a la ruta de Folder de CustomInstallActions. No puede especificar una ruta absoluta. La ruta no debe comenzar con una barra diagonal inversa (\).Name
Debe especificar un Name para la acción. Este Name debe ser único dentro del nodo Actions primario, pero puede compartirse entre distintos nodos Actions. Por ejemplo, podría especificar File=“MySetup.exe” y Name=“abc123” tanto como InstallAction como RepairAction. Por otro lado, si tiene dos elementos InstallAction, cada uno debe tener un Name diferente. Debe usar el mismo Name para el mismo ejecutable en las distintas versiones del paquete, siempre que ese ejecutable no cambie. El Name se usa como identidad de la acción y permite a la plataforma hacer un seguimiento de qué acciones se han ejecutado correctamente y de si deben ejecutarse para un paquete actualizado. Si un paquete actualizado especifica una acción personalizada con un Name que ya se ha ejecutado correctamente, la plataforma omite esta acción durante la actualización.Una diferencia en la lista de argumentos no constituye una diferencia de identidad. Si quiere ejecutar el mismo ejecutable con argumentos diferentes en un paquete actualizado, debe proporcionar un Name diferente. Es su responsabilidad configurar los Names declarados adecuadamente y hacer un seguimiento de ellos entre versiones.
Arguments
Cada acción de instalación personalizada tiene un tercer elemento, argument, que permite incluir los argumentos que necesite para ejecutar el comando del redistribuible.Uso de las acciones personalizadas
La instalación de software antitrampas suele requerir que el usuario tenga privilegios de administrador y, en general, dado que las acciones personalizadas son una característica extremadamente potente, la plataforma requiere privilegios de administrador para cualquier paquete que tenga acciones personalizadas. Para las operaciones que se ejecutan con privilegios de administrador, Windows requiere que se muestre un aviso de Control de cuentas de usuario (UAC) en la primera ejecución de la aplicación. El flujo de trabajo del usuario es el siguiente.- La página de Microsoft Store del juego incluye una descripción de los requisitos, incluidos si la instalación requiere privilegios elevados, si la instalación ejecuta una acción personalizada y lo que esto podría significar para el usuario. Esta información se proporciona para que el usuario pueda tomar una decisión informada sobre la compra del juego.
- Suponiendo que el usuario esté conforme con las restricciones e implicaciones, selecciona Instalar.
- La plataforma detecta que el paquete incluye una acción personalizada y registra el hecho de que la acción personalizada debe ejecutarse. Sin embargo, no ejecuta la acción personalizada durante la fase de instalación inicial. En su lugar, cualquier acción personalizada se ejecuta la primera vez que el usuario inicia el juego.
- En el primer inicio del juego, en el punto en que la plataforma está a punto de ejecutar las acciones personalizadas, muestra un aviso de UAC. El usuario debe entonces proporcionar credenciales de administrador y aceptar la elevación. Incluso si un paquete contiene varias acciones personalizadas, el usuario solo recibe un aviso de UAC. No hay más avisos de UAC para las actualizaciones, a menos que una o varias de las acciones personalizadas hayan cambiado. Hay un aviso de UAC cuando se desinstala el juego.
Las acciones de instalación personalizadas solo se admiten dentro del paquete MSIXVC principal. No se admiten en paquetes de marco, paquetes opcionales, paquetes de modificación ni en ningún otro tipo de paquete.
Las acciones personalizadas de instalación, reparación y desinstalación las ejecuta la canalización de implementación comercial de Microsoft Store. No se ejecutan cuando instala el paquete localmente para desarrollo, por ejemplo, cuando instala un
.msixvc suelto mediante wdApp install o registra un paquete mediante Add-AppxPackage. Una instalación local de desarrollo aún le permite comprobar que su paquete declara las acciones correctamente (aparecen en el appxmanifest.xml generado como la extensión windows.customInstall), pero los propios ejecutables de las acciones personalizadas no se invocan en esa ruta. Para validar las acciones ejecutándose de un extremo a otro, instale el título a través de un flujo de Store o de sandbox.