Compartir a través de


Personalización de las aplicaciones empresariales con paquetes de modificación

La capacidad de personalizar la experiencia de una aplicación es importante, especialmente para las empresas. Hemos hablado con profesionales de TI y sabemos que personalizar aplicaciones para satisfacer las necesidades de sus usuarios es esencial para el esfuerzo de pasar a Windows 10. Al personalizar las aplicaciones que se empaquetan mediante MSI, se entiende bien que los profesionales de TI deben adquirir el paquete de los desarrolladores y volver a empaquetar el instalador con la personalización para satisfacer sus necesidades. Este es un esfuerzo costoso para las empresas. Al avanzar, queremos desacoplar la personalización y la aplicación principal para que ya no se necesite volver a empaquetar. Esto garantiza que las empresas obtengan las actualizaciones más recientes de los desarrolladores a la vez que mantienen el control de sus personalizaciones.

En Windows 10, versión 1809, introdujimos un nuevo tipo de paquete MSIX denominado paquete de modificación. Los paquetes de modificación son paquetes MSIX que almacenan personalizaciones. Los paquetes de modificación también pueden ser complementos o extensiones que pueden no tener un punto de activación. Los profesionales de TI pueden usar esta característica para modificar de manera flexible los contenedores MSIX, de modo que las aplicaciones sean superpuestas con las personalizaciones de su empresa.

Cómo funciona

Los paquetes de modificación están diseñados para empresas que no poseen el código de la aplicación y solo tienen el instalador. Puedes crear un paquete de modificación con la versión más reciente de la herramienta de empaquetado MSIX (para Windows 10 versión 1809 o posterior). Si tiene el código de la aplicación, también puede crear una extensión de aplicación.

Si desea crear un paquete de modificación que tenga un enlace estricto a la aplicación principal, puede declarar la aplicación principal como una dependencia en el manifiesto del paquete de modificación.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App"/>
</Dependencies>

En el ejemplo siguiente se muestra cómo especificar un certificado o publicador diferente.

<Dependencies>
    <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.15063.0"/>
    <uap4:MainPackageDependency Name="Main.App" Publisher="CN=Contoso, C=US" />
</Dependencies>

Se trata de una configuración sencilla si la relación entre el paquete de modificación y el paquete principal es uno a uno. Las personalizaciones típicas suelen requerir claves del Registro en HKEY_CURRENT_USER o HKEY_CURRENT_USERCLASS. Dentro de nuestro paquete MSIX tenemos archivos User.dat y Userclass.dat para capturar las claves del Registro. Deberá crear User.dat si necesita claves del Registro en HKCU\Software* (al igual que Registry.dat se usa para HKLM\Software*). Use Userclass.dat si necesita claves en HKCU\Sofware\Classes*.

Estas son las formas típicas de crear un archivo .dat:

  • Use Regedit para crear un archivo. Cree un hive en Regedit e inserte las claves necesarias. Luego, haga clic con el botón derecho, exporte y guarde como archivo de *hive*. Asegúrese de asignar un nombre al archivo User.dat o Userclass.dat

  • Use una API para crear los archivos necesarios. Puede usar la función ORSaveHive para guardar un archivo .dat. Asegúrese de nombrar el archivo ya sea como User.dat o Userclass.dat.

Después de realizar los cambios necesarios, puede crear el paquete de modificación como cualquier otro paquete MSIX. A continuación, puede implementar el paquete con la configuración de implementación actual. Al volver a iniciar la aplicación principal, puede ver los cambios realizados en el paquete de modificación. Si decide quitar el paquete de modificación, la aplicación principal volverá a un estado sin el paquete de modificación.

Averigüe qué paquetes de modificación están instalados en el dispositivo

Con PowerShell, puede ver los paquetes de modificación instalados mediante el comando siguiente.

Get-AppPackage -PackageTypeFilter Optional

Paquetes de modificación en Windows 10, versión 1809

En Windows 10, versión 1809, los paquetes de modificación pueden incluir configuraciones necesarias para establecerse en el Registro de forma que el paquete principal se ejecute según lo previsto. Lo que significa que la aplicación principal aprovecha el registro para ver si existe un complemento. Al implementar el paquete principal y el paquete de modificación, en tiempo de ejecución, la aplicación verá el registro virtual (VREG) del paquete principal y el paquete de modificación.

Tenga en cuenta que el paquete principal puede usar el VREG para hacer lo siguiente:

  • Visualización de dónde cargar el archivo (el archivo DLL) del complemento. Si este es el caso, asegúrese de que el archivo forma parte del paquete. Al hacerlo, el paquete principal puede acceder al archivo en tiempo de ejecución.
  • Consultar dónde ver el valor de las teclas VREG. Es posible que el paquete principal busque un valor que exista en el VREG. Al crear el paquete de modificación manualmente o mediante nuestra herramienta, asegúrese de que el valor sea correcto.

Paquetes de modificación en Windows 10, versión 1903 y posteriores

Las siguientes características se agregaron a Windows 10, versión 1903.

Actualización del manifiesto

Hemos añadido soporte para el siguiente elemento en el manifiesto del paquete de modificación de MSIX.

<Properties>
   <rescap6:ModificationPackage>true</rescap6:ModificationPackage>
</Properties>

Para asegurarse de que los paquetes de modificación funcionan en la versión 1903 o posterior, el manifiesto del paquete de modificación debe incluir este elemento. Esto se realizará automáticamente para usted si empaqueta el paquete de modificación de MSIX con la versión de enero del software de empaquetado MSIX. Si ha convertido un paquete mediante nuestra herramienta antes de la versión, puede editar el paquete existente en nuestra herramienta para agregar este nuevo elemento. Además, si los usuarios instalan el paquete de modificación, se les avisará de que el paquete puede modificar la aplicación principal.

Si usa un paquete de modificación que se creó antes de la versión 1903, es necesario editar el manifiesto del paquete para actualizar el MaxVersionTested atributo a 10.0.18362.0.

<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="10.0.18362.0" />

Creación de un paquete de modificación mediante la herramienta de empaquetado MSIX

Puede crear un paquete de modificación con la herramienta de empaquetado MSIX:

  • Especifique el paquete principal. Asegúrese de tener disponible en el equipo la versión MSIX de su paquete principal donde está realizando la conversión. Si no es así, le pediremos que proporcione manualmente la información del publicador y de la aplicación principal. Además, algunas personalizaciones requieren que la aplicación principal esté instalada en el equipo. Paquete de Modificación MPT

  • Modifique el paquete una vez que haya pasado por la conversión mediante el editor de paquetes. Puede haber un caso en el que el paquete principal requiera que el paquete de modificación tenga determinados valores en su VREG. Aquí es donde iría y editaría el paquete correctamente.

Creación de un paquete de modificación mediante MakeAppx.exe

Puedes crear manualmente un paquete de modificación mediante la herramienta MakeAppX.exe que se incluye en el SDK de Windows 10.

  • En el manifiesto, especifique el paquete principal. Incluya el publicador y el nombre del paquete principal.

    <Dependencies>
      <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17701.0" MaxVersionTested="12.0.0.0"/>
      <uap4:MainPackageDependency Name="HeadTrax" Publisher="CN=Contoso Software, O=Contoso Corporation, C=US" />
    </Dependencies>
    
  • Cree Registry.dat, User.dat y Userclass.dat para crear las claves del Registro necesarias para cargar el paquete de modificación. Esto solo es necesario si necesita que su aplicación principal vea las claves de registro personalizadas. Recuerde que, dado que todo se ejecuta dentro de un contenedor, en tiempo de ejecución, el paquete principal y el registro virtual del paquete de modificación se combinarán de modo que el paquete principal pueda ver el registro virtual de paquetes de modificación.

Este proceso también admite complementos y personalizaciones del sistema de archivos, siempre y cuando el ejecutable de la aplicación principal no esté en un sistema de archivos virtual (VFS). Esto es para asegurarse de que el paquete principal obtendrá todos los VFS del paquete principal y el paquete de modificación.

Instalación de paquetes de modificación en la máquina

La instalación de paquetes de modificación en la máquina sigue otras convenciones de instalación. Merece la pena tener en cuenta que es posible que desee usar el parámetro -OptionalPackagePath al instalar el paquete.

Resolución de conflictos

En el caso de varios paquetes de modificación que intentan cambiar el mismo valor, el conflicto se resuelve considerando el orden alfabético de los nombres de los paquetes de modificación.