Generar componentes del paquete MSIX

En este artículo se muestra cómo generar componentes del paquete MSIX para empaquetar una aplicación mediante herramientas de línea de comandos (sin usar Visual Studio o MSIX Packaging Tool).

Para empaquetar manualmente una aplicación, debes crear un archivo de manifiesto del paquete, agregar los componentes del paquete y, posteriormente, ejecutar la herramienta de línea de comandos MakeAppx.exe para generar un paquete MSIX.

Primero, prepárate para empaquetar

Si todavía no lo has hecho, consulta esta sección sobre lo que necesitas saber antes de empaquetar una aplicación.

Crear un manifiesto de paquete

Crea un archivo y denomínalo appxmanifest.xml; a continuación, agrégale este código XML.

Esta es una plantilla básica que contiene los elementos y atributos que necesita el paquete. Agregaremos los valores de estos en la siguiente sección.

<?xml version="1.0" encoding="utf-8"?>
<Package
	xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
    <Properties>
       <DisplayName></DisplayName>
       <PublisherDisplayName></PublisherDisplayName>
			 <Description></Description>
      <Logo></Logo>
    </Properties>
    <Resources>
      <Resource Language="" />
    </Resources>
	  <Dependencies>
	  <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
	  </Dependencies>
	  <Capabilities>
	    <rescap:Capability Name="runFullTrust"/>
	  </Capabilities>
    <Applications>
      <Application Id="" Executable="" EntryPoint="Windows.FullTrustApplication">
        <uap:VisualElements DisplayName="" Description=""	Square150x150Logo=""
				   Square44x44Logo=""	BackgroundColor="" />
      </Application>
     </Applications>
  </Package>

Rellenar los elementos de nivel de paquete del archivo

Rellena esta plantilla con la información que describe el paquete.

Información de identidad

Este es un ejemplo del elemento Identity con texto del marcador de posición de los atributos. Puedes establecer el atributo ProcessorArchitecture en x64 o x86.

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
			    ProcessorArchitecture="x64">

Nota

Si has reservado el nombre de la aplicación en Microsoft Store, puedes obtener los elementos Name y Publisher mediante el Centro de partners. Si vas a transferir localmente la aplicación a otros sistemas, puedes proporcionar tus propios nombres a estos elementos, siempre y cuando el nombre del editor que elijas coincida con el nombre que aparece en el certificado que uses para firmar la aplicación.

Propiedades

El elemento Properties tiene tres elementos secundarios obligatorios. Este es un ejemplo del nodo Properties con texto de marcador de posición de los elementos. El elemento DisplayName es el nombre de la aplicación que reservas en Store, para las aplicaciones que se cargan a Store.

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

Recursos

Este es un ejemplo del nodo Resources.

<Resources>
  <Resource Language="en-us" />
</Resources>

Dependencias

En el caso de las aplicaciones de escritorio para las que creas un paquete, establece siempre el atributo Name en Windows.Desktop.

<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" />
</Dependencies>

Funcionalidades

En el caso de las aplicaciones de escritorio para las que creas un paquete, tendrás que agregar la capacidad runFullTrust.

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

Rellenar los elementos de nivel de aplicación

Rellena esta plantilla con la información que describe la aplicación.

Elemento Application

En el caso de las aplicaciones de escritorio para las que creas un paquete, el atributo EntryPoint del elemento Application siempre es Windows.FullTrustApplication.

<Applications>
  <Application Id="MyApp"     
		Executable="MyApp.exe" EntryPoint="Windows.FullTrustApplication">
   </Application>
</Applications>

Elementos visuales

Este es un ejemplo del nodo VisualElements.

<uap:VisualElements
	BackgroundColor="#464646"
	DisplayName="My App"
	Square150x150Logo="images\icon.png"
	Square44x44Logo="images\small_icon.png"
	Description="A useful description" />

(Opcional) Agregar recursos sin placa basados en el destino

Los recursos basados en el destino se usan para los iconos y las ventanas que se muestran en la barra de tareas de Windows, la vista de tareas, ALT+TAB, el asistente para el espacio restante y la esquina inferior derecha de las ventanas de Inicio. Puedes obtener más información sobre ellos aquí.

  1. Obtén las imágenes de 44 x 44 correctas y cópialas en la carpeta que contiene las imágenes (es decir, los recursos).

  2. Para cada imagen de 44 x 44, crea una copia en la misma carpeta y anexa .targetsize-44_altform-unplated al nombre del archivo. Debe tener 2 copias de cada icono, cada una llamada de forma específica. Por ejemplo, después de completar el proceso, es posible que la carpeta de recursos contenga MYAPP_44x44.png y MYAPP_44x44.targetsize-44_altform-unplated.png.

    Nota

    En este ejemplo, el icono denominado MYAPP_44x44.png es el icono al que se hará referencia en el atributo del logotipo del paquete MSIX.

  3. En el archivo de manifiesto, establezca el elemento BackgroundColor en cada icono que vaya a ser transparente.

  4. Continúa con la siguiente subsección para generar un nuevo archivo de índice de recursos del paquete.

Generar un archivo de índice de recursos del paquete (PRI) mediante MakePri

Si creas recursos basados en el destino, tal y como se describe en la sección anterior, o modificas cualquiera de los recursos visuales de la aplicación después de crear el paquete, tendrás que generar un nuevo archivo PRI.

En función de la ruta de acceso de instalación del SDK, aquí es donde está MakePri.exe en tu equipo Windows 10:

  • x86: C:\Archivos de programa (x86)\Windows Kits\10\bin<número_compilación>\x86\makepri.exe
  • x64: C:\Archivos de programa (x86)\Windows Kits\10\bin\<número_compilación>\x64\makepri.exe

No hay ninguna versión ARM de esta herramienta.

  1. Abre una ventana del símbolo del sistema o PowerShell.

  2. Cambia el directorio a la carpeta raíz del paquete y crea un archivo priconfig.xml mediante el comando <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US.

  3. Crea los archivos resources.pri mediante el comando <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml.

    Por ejemplo, el comando de la aplicación podría tener el siguiente aspecto: <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. Empaqueta tu aplicación mediante las instrucciones del siguiente paso.

Prueba de la aplicación antes del empaquetado

Puedes implementar una aplicación no empaquetada y probarla antes de empaquetarla o firmarla. Para ello, ejecuta el siguiente cmdlet desde una ventana de PowerShell. Asegúrate de pasar el archivo de manifiesto de la aplicación que se encuentra en la raíz del directorio del paquete con todos los demás componentes del paquete:

Add-AppxPackage –Register AppxManifest.xml

Una vez hecho esto. La aplicación se implementará en el sistema y podrás probarla para asegurarte de que todo funciona antes del empaquetado. Para actualizar los archivos .exe o .dll de la aplicación, reemplaza los archivos existentes en el paquete con los nuevos, aumenta el número de versión en AppxManifest.xml y, a continuación, vuelve a ejecutar el comando anterior.

Empaquetar los componentes en un MSIX

El siguiente paso consiste en usar MakeAppx.exe para generar un paquete MSIX para la aplicación. Makeappx se incluye en el SDK de Windows 10 y, si tienes instalado Visual Studio, puedes obtener acceso a él fácilmente a través del símbolo del sistema para desarrolladores de Visual Studio.

Consulta Crear un paquete MSIX con la herramienta MakeAppx.exe

Nota

Una aplicación empaquetada se ejecuta siempre como un usuario interactivo, por lo que cualquier unidad en la que instales la aplicación empaquetada debe tener un formato NTFS.