Generar componentes del paquete MSIXGenerating MSIX package components

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).This article shows you how to generate MSIX package components for packaging your application using command line tools (without using Visual Studio or the 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.To manually package your app, you need to create a package manifest file, add your package components and then run the MakeAppx.exe command line tool to generate an MSIX package.

Primero, prepárate para empaquetarFirst, prepare to package

Si todavía no lo has hecho, consulta esta sección sobre lo que necesitas saber antes de empaquetar una aplicación.If you haven't yet, review this section on what you need to know before packaging your application.

Crear un manifiesto de paqueteCreate a package manifest

Crea un archivo y denomínalo appxmanifest.xml; a continuación, agrégale este código XML.Create a file, name it appxmanifest.xml, and then add this XML to it.

Esta es una plantilla básica que contiene los elementos y atributos que necesita el paquete.It's a basic template that contains the elements and attributes that your package needs. Agregaremos los valores de estos en la siguiente sección.We'll add values to these in the next section.

<?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 archivoFill in the package-level elements of your file

Rellena esta plantilla con la información que describe el paquete.Fill in this template with information that describes your package.

Información de identidadIdentity information

Este es un ejemplo del elemento Identity con texto del marcador de posición de los atributos.Here's an example Identity element with placeholder text for the attributes. Puedes establecer el atributo ProcessorArchitecture en x64 o x86.You can set the ProcessorArchitecture attribute to x64 or 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.If you've reserved your application name in the Microsoft Store, you can obtain the Name and Publisher by using Partner Center. 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.If you plan to sideload your application onto other systems, you can provide your own names for these as long as the publisher name that you choose matches the name on the certificate you use to sign your app.

PropiedadesProperties

El elemento Properties tiene tres elementos secundarios obligatorios.The Properties element has 3 required child elements. Este es un ejemplo del nodo Properties con texto de marcador de posición de los elementos.Here is an example Properties node with placeholder text for the elements. El elemento DisplayName es el nombre de la aplicación que reservas en Store, para las aplicaciones que se cargan a Store.The DisplayName is the name of your application that you reserve in the Store, for apps which are uploaded to the Store.

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

RecursosResources

Este es un ejemplo del nodo Resources.Here is an example Resources node.

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

DependenciasDependencies

En el caso de las aplicaciones de escritorio para las que creas un paquete, establece siempre el atributo Name en Windows.Desktop.For desktop apps that you create a package for, always set the Name attribute to Windows.Desktop.

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

FuncionalidadesCapabilities

En el caso de las aplicaciones de escritorio para las que creas un paquete, tendrás que agregar la capacidad runFullTrust.For desktop apps that you create a package for, you'll have to add the runFullTrust capability.

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

Rellenar los elementos de nivel de aplicaciónFill in the application-level elements

Rellena esta plantilla con la información que describe la aplicación.Fill in this template with information that describes your app.

Elemento ApplicationApplication element

En el caso de las aplicaciones de escritorio para las que creas un paquete, el atributo EntryPoint del elemento Application siempre es Windows.FullTrustApplication.For desktop apps that you create a package for, the EntryPoint attribute of the Application element is always Windows.FullTrustApplication.

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

Elementos visualesVisual elements

Este es un ejemplo del nodo VisualElements.Here is an example VisualElements node.

<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(Optional) Add Target-based unplated assets

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.Target-based assets are for icons and tiles that appear on the Windows taskbar, task view, ALT+TAB, snap-assist, and the lower-right corner of Start tiles. Puedes obtener más información sobre ellos aquí.You can read more about them here.

  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).Obtain the correct 44x44 images and then copy them into the folder that contains your images (i.e., Assets).

  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.For each 44x44 image, create a copy in the same folder and append .targetsize-44_altform-unplated to the file name. Debe tener 2 copias de cada icono, cada una llamada de forma específica.You should have two copies of each icon, each named in a specific way. 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.For example, after completing the process, your assets folder might contain MYAPP_44x44.png and 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 Square44x44Logo del paquete MSIX.In this example, the icon named MYAPP_44x44.png is the icon that you'll reference in the Square44x44Logo logo attribute of your MSIX package.

  3. En el archivo de manifiesto, establece el elemento BackgroundColor en cada icono que vaya a ser transparente.In the manifest file, set the BackgroundColor for every icon you are making transparent.

  4. Continúa con la siguiente subsección para generar un nuevo archivo de índice de recursos del paquete.Continue to the next subsection to generate a new Package Resource Index file.

Generar un archivo de índice de recursos del paquete (PRI) mediante MakePriGenerate a Package Resource Index (PRI) file using 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.If you create target-based assets as described in the section above, or you modify any of the visual assets of your application after you've created the package, you'll have to generate a new PRI file.

En función de la ruta de acceso de instalación del SDK, aquí es donde está MakePri.exe en tu equipo Windows 10:Based on your installation path of the SDK, this is where MakePri.exe is on your Windows 10 PC:

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

No hay ninguna versión ARM de esta herramienta.There is no ARM version of this tool.

  1. Abre una ventana del símbolo del sistema o PowerShell.Open a Command Prompt or PowerShell window.

  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.Change directory to the package's root folder, and then create a priconfig.xml file by running the command <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.Create the resources.pri file(s) by using the command <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.For example, the command for your application might look like this: <path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml.

  4. Empaqueta tu aplicación mediante las instrucciones del siguiente paso.Package your application by using the instructions in the next step.

Prueba de la aplicación antes del empaquetadoTest your application before packaging

Puedes implementar una aplicación no empaquetada y probarla antes de empaquetarla o firmarla.You can deploy your non-packaged application and test it before packaging or signing. Para ello, ejecuta el siguiente cmdlet desde una ventana de PowerShell.To do so, run the cmdlet below from a PowerShell window. 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:Make sure to pass in your application's manifest file located in the root of your package directory with all your other package components:

Add-AppxPackage –Register AppxManifest.xml

Una vez hecho esto.Once this is done. La aplicación se implementará en el sistema y podrás probarla para asegurarte de que todo funciona antes del empaquetado.Your app should be deployed on the system and you can test it to make sure everything works before packaging. 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.To update your app's .exe or .dll files, replace the existing files in your package with the new ones, increase the version number in AppxManifest.xml, and then run the above command again.

Empaquetar los componentes en un MSIXPackage your components into an MSIX

El siguiente paso consiste en usar MakeAppx.exe para generar un paquete MSIX para la aplicación.The next step is to use MakeAppx.exe to generate an MSIX package for your application. 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.Makeappx.exe is included with the Windows 10 SDK, and if you have Visual Studio installed, it can be easily accessed through the Developer Command Prompt for Visual Studio.

Consulta Crear un paquete MSIX con la herramienta MakeAppx.exeSee Create an MSIX package or bundle with the MakeAppx.exe tool

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.A packaged application always runs as an interactive user, and any drive that you install your packaged application on to must be formatted to NTFS format.