Cree un paquete o agrupación de MSIX con MakeAppx.exeCreate an MSIX package or bundle with MakeAppx.exe

MakeAppx.exe crea paquetes de aplicaciones (. msix o. appx) y agrupaciones de paquetes de aplicaciones (. msixbundle o. appxbundle).MakeAppx.exe creates both app packages (.msix or .appx) and app package bundles (.msixbundle or .appxbundle). MakeAppx.exe también extrae los archivos de un paquete de aplicaciones o un lote y cifra o descifra los paquetes de aplicaciones y lotes.MakeAppx.exe also extracts files from an app package or bundle and encrypts or decrypts app packages and bundles. Esta herramienta se incluye en el SDK de Windows 10 y puede usarse desde un símbolo del sistema o un archivo de script.This tool is included in the Windows 10 SDK and can be used from a command prompt or a script file.

Para obtener información sobre cómo usar MakeApp.exe para empaquetar una aplicación de escritorio, consulte empaquetar una aplicación de escritorio manualmente.For information about how to use MakeApp.exe to package a desktop app, see Package a desktop app manually.

Importante

Si usa Visual Studio para desarrollar la aplicación, se recomienda que use el Asistente de Visual Studio para crear el paquete de la aplicación.If you used Visual Studio to develop your app, it's recommended that you use the Visual Studio wizard to create your app package. Para obtener más información, vea empaquetar una aplicación para UWP con Visual Studio y empaquetar una aplicación de escritorio desde el código fuente mediante Visual Studio.For more information, see Package a UWP app with Visual Studio and Package a desktop app from source code using Visual Studio.

Importante

Tenga en cuenta que MakeAppx.exe no crea un archivo de carga de paquete de aplicaciones (. appxupload o. msixupload), que es el tipo recomendado de paquete de aplicación válido para envíos al centro de Partners.Note that MakeAppx.exe does not create an app package upload file (.appxupload or .msixupload), which is the recommended type of valid app package for submissions to Partner Center. El archivo de carga del paquete de aplicaciones se crea normalmente como parte del proceso de empaquetado de Visual Studio, aunque también se puede crear manualmente.The app package upload file is typically created as part of the Visual Studio packaging process, although it can also be created manually.

Uso de MakeAppx.exeUsing MakeAppx.exe

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

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

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

Opciones y sintaxis de MakeAppx.exeMakeAppx.exe syntax and options

Sintaxis general de MakeAppx.exe:General MakeAppx.exe syntax:

MakeAppx <command> [options]      

La siguiente tabla describe los comandos de MakeAppx.exe.The following table describes the commands for MakeAppx.exe.

ComandoCommand DescripciónDescription
packpack Crea un paquete.Creates a package.
unpackunpack Extrae todos los archivos del paquete especificado en el directorio de salida especificado.Extracts all files in the specified package to the specified output directory.
bundlebundle Crea un lote.Creates a bundle.
unbundleunbundle Desempaqueta todos los paquetes a un subdirectorio en la ruta de acceso de salida especificada, cuyo nombre es el nombre completo del paquete.Unpacks all packages to a subdirectory under the specified output path named after the bundle full name.
encryptencrypt Crea un paquete o un lote de aplicación cifrado desde el paquete o lote de entrada en el paquete o lote de salida especificado.Creates an encrypted app package or bundle from the input package/bundle at the specified output package/bundle.
Descifradodecrypt Crea un paquete o un lote de aplicación descifrado desde el paquete o lote de aplicación de entrada en el paquete o lote de salida especificado.Creates an decrypted app package or bundle from the input app package/bundle at the specified output package/bundle.

Esta lista de opciones se aplica a todos los comandos:This list of options applies to all commands:

OpciónOption DescripciónDescription
/d/d Especifica el directorio de entrada, salida o contenido.Specifies the input, output, or content directory.
/l/l Se usa para los paquetes localizados.Used for localized packages. La validación predeterminados se desactiva en paquetes localizados.The default validation trips on localized packages. Esta opción deshabilita solo esa validación específica, sin necesidad de deshabilitar toda la validación.This options disables only that specific validation, without requiring that all validation be disabled.
/kf/kf Cifra o descifra el paquete o lote mediante la clave del archivo de clave especificado.Encrypts or decrypts the package or bundle using the key from the specified key file. No puede usarse junto con /kt.This can't be used with /kt.
/kt/kt Cifra el o descifra el paquete o lote mediante la clave de prueba global.Encrypts the or decrypts package or bundle using the global test key. No puede usarse junto con /kf.This can't be used with /kf.
/no/no Se impide que se sobrescriba el archivo de salida, si lo hay.Prevents an overwrite of the output file if it exists. Si no se especifica esta opción o la opción /o, se pregunta al usuario si desea sobrescribir el archivo.If you don't specify this option or the /o option, the user is asked whether they want to overwrite the file.
/nv/nv Omite la validación semántica.Skips semantic validation. Si no se especifica esta opción, la herramienta realiza una validación completa del paquete.If you don't specify this option, the tool performs a full validation of the package.
/o/o Sobrescribe el archivo de salida, si existe.Overwrites the output file if it exists. Si no se especifica esta opción o la opción /no, se pregunta al usuario si desea sobrescribir el archivo.If you don't specify this option or the /no option, the user is asked whether they want to overwrite the file.
/p/p Especifica el paquete de la aplicación o el lote.Specifies the app package or bundle.
/v/v Permite la salida del registro detallado en la consola.Enables verbose logging output to the console.
/?/? Muestra el texto de ayuda.Displays help text.

La siguiente lista contiene posibles argumentos:The following list contains possible arguments:

ArgumentArgument DescripciónDescription
<output package name><output package name> El nombre del paquete creado.The name of the package created. Este es el nombre de archivo anexado con. msix o. appx.This is the file name appended with .msix or .appx.
<encrypted output package name><encrypted output package name> El nombre del paquete cifrado creado.The name of the encrypted package created. Este es el nombre de archivo anexado con. emsix o. eappx.This is the file name appended with .emsix or .eappx.
<input package name><input package name> Nombre del paquete.The name of the package. Este es el nombre de archivo anexado con. msix o. appx.This is the file name appended with .msix or .appx.
<encrypted input package name><encrypted input package name> El nombre del paquete cifrado.The name of the encrypted package. Este es el nombre de archivo anexado con. emsix o. eappx.This is the file name appended with .emsix or .eappx.
<output bundle name><output bundle name> El nombre del lote creado.The name of the bundle created. Este es el nombre de archivo anexado con. msixbundle o. appxbundle.This is the file name appended with .msixbundle or .appxbundle.
<encrypted output bundle name><encrypted output bundle name> El nombre del lote cifrado creado.The name of the encrypted bundle created. Este es el nombre de archivo anexado con. emsixbundle o. eappxbundle.This is the file name appended with .emsixbundle or .eappxbundle.
<input bundle name><input bundle name> El nombre del lote.The name of the bundle. Este es el nombre de archivo anexado con. msixbundle o. appxbundle.This is the file name appended with .msixbundle or .appxbundle.
<encrypted input bundle name><encrypted input bundle name> El nombre del lote cifrado.The name of the encrypted bundle. Este es el nombre de archivo anexado con. emsixbundle o. eappxbundle.This is the file name appended with .emsixbundle or .eappxbundle.
<directorio de contenido><content directory> La ruta de acceso del contenido de paquete de aplicación o el lote.Path for the app package or bundle content.
<mapping file><mapping file> El nombre de archivo que especifica el origen del paquete y el destino.File name that specifies the package source and destination.
<directorio de salida><output directory> La ruta de acceso al directorio de los paquetes y lotes de salida.Path to the directory for output packages and bundles.
<archivo de clave><key file> El nombre del archivo que contiene una clave para el cifrado o el descifrado.Name of the file containing a key for encryption or decryption.
<algorithm ID><algorithm ID> Los algoritmos usados al crear una asignación de bloques.Algorithms used when creating a block map. Los algoritmos válidos son: SHA256 (predeterminado), SHA384 y SHA512.Valid algorithms include: SHA256 (default), SHA384, SHA512.

Crear un paquete de aplicaciónCreate an app package

Un paquete de aplicación es un conjunto completo de archivos de la aplicación empaquetados en un archivo de paquete. msix o. appx.An app package is a complete set of the app's files packaged in to a .msix or .appx package file. Para crear un paquete de aplicación mediante el comando pack, debes proporcionar un directorio de contenido o un archivo de asignación de la ubicación del paquete.To create an app package using the pack command, you must provide either a content directory or a mapping file for the location of the package. También puedes cifrar un paquete mientras lo creas.You can also encrypt a package while creating it. Si deseas cifrar el paquete, debes usar /ep y especificar si estás usando un archivo de clave (/kf) o la clave de prueba global (/kt).If you want to encrypt the package, you must use /ep and specify if you are using a key file (/kf) or the global test key (/kt). Para obtener más información sobre cómo crear un paquete cifrado, consulta Cifrar o descifrar un paquete o lote.For more information on creating an encrypted package, see Encrypt or decrypt a package or bundle.

Opciones específicas del comando pack:Options specific to the pack command:

OpciónOption DescripciónDescription
/f/f Especifica el archivo de asignación.Specifies the mapping file.
/h/h Especifica el algoritmo hash que usar al crear la asignación de bloques.Specifies the hash algorithm to use when creating the block map. Solo puede usarse con el comando pack.This can only be used with the pack command. Los algoritmos válidos son: SHA256 (predeterminado), SHA384 y SHA512.Valid algorithms include: SHA256 (default), SHA384, SHA512.
/m/m Especifica la ruta de acceso a un manifiesto de aplicación de entrada que se usará como base para generar el manifiesto del paquete de salida de la aplicación o del paquete de recursos.Specifies the path to an input app manifest which will be used as the basis for generating the output app package or resource package's manifest. Si usas esta opción, también debes emplear /f e incluir una sección [ResourceMetadata] en el archivo de asignación para especificar las dimensiones de los recursos que se incluirán en el manifiesto generado.When you use this option, you must also use /f and include a [ResourceMetadata] section in the mapping file to specify the resource dimensions to be included in the generated manifest.
/nc/nc Evita la compresión de los archivos del paquete.Prevents compression of the package files. De manera predeterminada, los archivos se comprimen en función del tipo de archivo detectado.By default, files are compressed based on detected file type.
/r/r Crea un paquete de recursos.Builds a resource package. Debe usarse junto con /m e implica el uso de la opción /l.This must be used with /m and implies the use of the /l option.

Los siguientes ejemplos de uso muestran algunas posibles opciones de sintaxis para el comando pack:The following usage examples show some possible syntax options for the pack command:

MakeAppx pack [options] /d <content directory> /p <output package name>
MakeAppx pack [options] /f <mapping file> /p <output package name>
MakeAppx pack [options] /m <app package manifest> /f <mapping file> /p <output package name>
MakeAppx pack [options] /r /m <app package manifest> /f <mapping file> /p <output package name>
MakeAppx pack [options] /d <content directory> /ep <encrypted output package name> /kf <key file>
MakeAppx pack [options] /d <content directory> /ep <encrypted output package name> /kt

El siguiente ejemplo muestra ejemplos de la línea de comandos para el comando pack:The following shows command line examples for the pack command:

MakeAppx pack /v /h SHA256 /d "C:\My Files" /p MyPackage.msix
MakeAppx pack /v /o /f MyMapping.txt /p MyPackage.msix
MakeAppx pack /m "MyApp\AppxManifest.xml" /f MyMapping.txt /p AppPackage.msix
MakeAppx pack /r /m "MyApp\AppxManifest.xml" /f MyMapping.txt /p ResourcePackage.msix
MakeAppx pack /v /h SHA256 /d "C:\My Files" /ep MyPackage.emsix /kf MyKeyFile.txt
MakeAppx pack /v /h SHA256 /d "C:\My Files" /ep MyPackage.emsix /kt

Crear un lote de aplicacionesCreate an app bundle

Un lote de aplicaciones es similar a un paquete de aplicaciones, pero un lote puede reducir el tamaño de la aplicación que se descargarán los usuarios.An app bundle is similar to an app package, but a bundle can reduce the size of the app that users download. Los lotes de aplicaciones resultan ser útiles para recursos específicos por idioma, recursos de escala de imagen variables o recursos que se apliquen a versiones específicas de Microsoft DirectX, por ejemplo.App bundles are helpful for language-specific assets, varying image-scale assets, or resources that apply to specific versions of Microsoft DirectX, for example. De forma similar a crear un paquete de aplicación cifrado, también puedes cifrar el lote de aplicaciones mientras lo agrupas.Similar to creating an encrypted app package, you can also encrypt the app bundle while bundling it. Para cifrar el lote de aplicaciones, usa la opción /ep y especifica si vas a usar un archivo de clave (/kf) o la clave de prueba global (/kt).To encrypt the app bundle, use the /ep option and specify if you are using a key file (/kf) or the global test key (/kt). Para obtener más información sobre cómo crear un lote cifrado, consulta Cifrar o descifrar un paquete o lote.For more information on creating an encrypted bundle, see Encrypt or decrypt a package or bundle.

Opciones específicas del comando bundle:Options specific to the bundle command:

OpciónOption DescripciónDescription
/bv/bv Especifica el número de versión del lote.Specifies the version number of the bundle. El número de versión debe estar en cuatro partes separadas por puntos con la forma: <Principal>.<Secundaria>.<Compilación>.<Revisión>.The version number must be in four parts separated by periods in the form: <Major>.<Minor>.<Build>.<Revision>.
/f/f Especifica el archivo de asignación.Specifies the mapping file.

Ten en cuenta que si no se especifica la versión del paquete, o si se establece en "0.0.0.0", el lote se crea con la fecha y la hora actuales.Note that if the bundle version is not specified or if it is set to "0.0.0.0" the bundle is created using the current date-time.

Los siguientes ejemplos de uso muestran algunas posibles opciones de sintaxis para el comando bundle:The following usage examples show some possible syntax options for the bundle command:

MakeAppx bundle [options] /d <content directory> /p <output bundle name>
MakeAppx bundle [options] /f <mapping file> /p <output bundle name>
MakeAppx bundle [options] /d <content directory> /ep <encrypted output bundle name> /kf MyKeyFile.txt
MakeAppx bundle [options] /f <mapping file> /ep <encrypted output bundle name> /kt

El siguiente bloque contiene ejemplos para el comando bundle:The following block contains examples for the bundle command:

MakeAppx bundle /v /d "C:\My Files" /p MyBundle.msixbundle
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /p MyBundle.msixbundle
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kf MyKeyFile.txt
MakeAppx bundle /v /o /bv 1.0.1.2096 /f MyMapping.txt /ep MyBundle.emsixbundle /kt

Extraer archivos de un paquete o loteExtract files from a package or bundle

Además de empaquetar y crear lotes de aplicaciones, MakeAppx.exe también puede desempaquetar o sacar de lotes los paquetes existentes.In addition to packaging and bundling apps, MakeAppx.exe can also unpack or unbundle existing packages. Debes proporcionar el directorio de contenido como destino para los archivos extraídos.You must provide the content directory as a destination for the extracted files. Si estás intentando extraer archivos de un paquete o lote cifrado, puedes descifrar y extraer los archivos al mismo tiempo mediante la opción /ep y especificar si debe deben descifrarse con un archivo de clave (/kf) o con la clave de prueba global (/kt).If you are trying to extract files from an encrypted package or bundle, you can decrypt and extract the files at the same time using the /ep option and specifying whether it should be decrypted using a key file (/kf) or the global test key (/kt). Para obtener más información acerca de cómo descifrar un paquete o lote, consulta Cifrar o descifrar un paquete o lote.For more information on decrypting a package or bundle, see Encrypt or decrypt a package or bundle.

Opciones específicas de los comandos upack y unbundle:Options specific to unpack and unbundle commands:

OpciónOption DescripciónDescription
/nd/nd No realiza ningún descifrado al desempaquetar o separar el paquete o lote.Does not perform decryption when unpacking or unbundling the package/bundle.
/pfn/pfn Desempaqueta/separa todos los archivos a un subdirectorio de la ruta de salida especificada, cuyo nombre es el nombre completo del paquete o lote.Unpacks/unbundles all files to a subdirectory under the specified output path, named after the package or bundle full name

Los siguientes ejemplos de uso muestran algunas opciones de sintaxis posible para los comandos unpack y unbundle:The following usage examples show some possible syntax options for the unpack and unbundle commands:

MakeAppx unpack [options] /p <input package name> /d <output directory>
MakeAppx unpack [options] /ep <encrypted input package name> /d <output directory> /kf <key file>
MakeAppx unpack [options] /ep <encrypted input package name> /d <output directory> /kt

MakeAppx unbundle [options] /p <input bundle name> /d <output directory>
MakeAppx unbundle [options] /ep <encrypted input bundle name> /d <output directory> /kf <key file>
MakeAppx unbundle [options] /ep <encrypted input bundle name> /d <output directory> /kt

El siguiente bloque contiene ejemplos de uso de los comandos unpack y unbundle:The following block contains examples for using the unpack and unbundle commands:

MakeAppx unpack /v /p MyPackage.msix /d "C:\My Files"
MakeAppx unpack /v /ep MyPackage.emsix /d "C:\My Files" /kf MyKeyFile.txt
MakeAppx unpack /v /ep MyPackage.emsix /d "C:\My Files" /kt

MakeAppx unbundle /v /p MyBundle.msixbundle /d "C:\My Files"
MakeAppx unbundle /v /ep MyBundle.emsixbundle /d "C:\My Files" /kf MyKeyFile.txt
MakeAppx unbundle /v /ep MyBundle.emsixbundle /d "C:\My Files" /kt

Cifrar y descifrar un paquete o loteEncrypt or decrypt a package or bundle

La herramienta MakeAppx.exe también puede cifrar o descifrar un paquete o un lote existentes.The MakeAppx.exe tool can also encrypt or decrypt an existing package or bundle. Simplemente debes proporcionar el nombre del paquete, el nombre del paquete de salida y si el cifrado o el descifrado deben usar un archivo de clave (/kf) o la clave de prueba global (/kt).You must simply provide the package name, the output package name, and whether encryption or decryption should use a key file (/kf) or the global test key (/kt).

El cifrado y el descifrado no están disponibles a través del asistente de empaquetado de Visual Studio.Encryption and decryption are not available through the Visual Studio packaging wizard.

Opciones específicas de los comandos encrypt y decrypt:Options specific to encrypt and decrypt commands:

OpciónOption DescripciónDescription
/ep/ep Especifica un paquete o lote de aplicaciones cifrado.Specifies an encrypted app package or bundle.

Los siguientes ejemplos de uso muestran algunas opciones de sintaxis posible para los comandos encrypt y decrypt:The following usage examples show some possible syntax options for the encrypt and decrypt commands:

MakeAppx encrypt [options] /p <package name> /ep <output package name> /kf <key file>
MakeAppx encrypt [options] /p <package name> /ep <output package name> /kt

MakeAppx decrypt [options] /ep <package name> /p <output package name> /kf <key file>
MakeAppx decrypt [options] /ep <package name> /p <output package name> /kt

El siguiente bloque contiene ejemplos de uso de los comandos encrypt y decrypt:The following block contains examples for using the encrypt and decrypt commands:

MakeAppx.exe encrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kt
MakeAppx.exe encrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kf MyKeyFile.txt

MakeAppx.exe decrypt /p MyPackage.msix /ep MyEncryptedPackage.emsix /kt
MakeAppx.exe decrypt p MyPackage.msix /ep MyEncryptedPackage.emsix /kf MyKeyFile.txt

Archivos de claveKey files

Los archivos de clave deben comenzar con una línea que contenga la cadena "[Keys]" seguida de líneas que describan las claves con las que cifrar cada paquete.Key files must begin with a line containing the string "[Keys]" followed by lines describing the keys to encrypt each package with. Cada clave se representa mediante un par de cadenas entre comillas, separadas por espacios o tabuladores.Each key is represented by a pair of strings in quotation marks, separated by either spaces or tabs. La primera cadena representa el Id. de clave de 32 bits codificado en base64, y la segunda representa la clave de cifrado de 32 bits codificada en base64.The first string represents the base64 encoded 32-byte key ID and the second represents the base64 encoded 32-byte encryption key. Un archivo de clave debe ser un archivo de texto sencillo.A key file should be a simple text file.

Ejemplo de un archivo de clave:Example of a key file:

[Keys]
"OWVwSzliRGY1VWt1ODk4N1Q4R2Vqc04zMzIzNnlUREU="    "MjNFTlFhZGRGZEY2YnVxMTBocjd6THdOdk9pZkpvelc="

Archivos de asignaciónMapping files

Los archivos de asignación deben comenzar con una línea que contenga la cadena "[Files]" seguida de líneas que describan los archivos que agregar al paquete.Mapping files must begin with a line containing the string "[Files]" followed by lines describing the files to add to the package. Cada archivo se describe mediante un par de rutas de acceso entre comillas, separadas por espacios o pestañas.Each file is described by a pair of paths in quotation marks, separated by either spaces or tabs. Cada archivo representa su origen (en el disco) y destino (en el paquete).Each file represents its source (on disk) and destination (in the package). Un archivo de asignaciones debe ser un archivo de texto sencillo.A mapping file should be a simple text file.

Ejemplo de un archivo de asignaciones (sin la opción /m):Example of a mapping file (without the /m option):

[Files]
"C:\MyApp\StartPage.html"               "default.html"
"C:\Program Files (x86)\example.txt"    "misc\example.txt"
"\\MyServer\path\icon.png"              "icon.png"
"my app files\readme.txt"               "my app files\readme.txt"
"CustomManifest.xml"                    "AppxManifest.xml"

Al usar un archivo de asignaciones, puedes elegir si quieres usar la opción /m.When using a mapping file, you can choose whether you would like to use the /m option. La opción /m permite al usuario especificar los metadatos de recursos en el archivo de asignaciones que se incluirán en el manifiesto generado.The /m option allows the user to specify the resource metadata in the mapping file to be included in the generated manifest. Si usas la opción /m, el archivo de asignaciones debe contener una sección que comience por la línea "[ResourceMetadata]", seguida de líneas que especifique "ResourceDimensions" y "ResourceId."If you use the /m option, the mapping file must contain a section that begins with the line "[ResourceMetadata]", followed by lines that specify "ResourceDimensions" and "ResourceId." Es posible que un paquete de aplicación contenga varias "ResourceDimensions", pero solo puede haber un "ResourceId".It is possible for an app package to contain multiple "ResourceDimensions", but there can only ever be one "ResourceId."

Ejemplo de un archivo de asignaciones (con la opción /m):Example of a mapping file (with the /m option):

[ResourceMetadata]
"ResourceDimensions"                    "language-en-us"
"ResourceId"                            "English"

[Files]
"images\en-us\logo.png"                 "en-us\logo.png"
"en-us.pri"                             "resources.pri"

Validación semántica realizada por MakeAppx.exeSemantic validation performed by MakeAppx.exe

MakeAppx.exe realiza una validación semántica limitada que se ha diseñado para capturar los errores de implementación más comunes y ayudar a garantizar que el paquete de la aplicación sea válido.MakeAppx.exe performs limited sematic validation that is designed to catch the most common deployment errors and help ensure that the app package is valid. Consulta la opción /nv si quieres omitir la validación mientras usas MakeAppx.exe.See the /nv option if you want to skip validation while using MakeAppx.exe.

Esta validación garantiza que:This validation ensures that:

  • Todos los archivos a los que se hace referencia en el manifiesto del paquete se incluyen en el paquete de la aplicación.All files referenced in the package manifest are included in the app package.
  • Una aplicación no tiene dos claves idénticas.An application does not have two identical keys.
  • Una aplicación no se registra para un protocolo prohibido de esta lista: SMB, FILE, MS-WWA-WEB, MS-WWA.An application does not register for a forbidden protocol from this list: SMB, FILE, MS-WWA-WEB, MS-WWA.

No es una validación semántica completa, ya que solo está diseñada para detectar errores comunes.This is not a complete semantic validation as it is only designed to catch common errors. No se garantiza que los paquetes creados por MakeAppx.exe puedan instalarse.Packages built by MakeAppx.exe are not guaranteed to be installable.