> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Make package (makepkg.exe)

> Make package (makepkg.exe)

Crea paquetes de aplicación, carga paquetes en Partner Center y realiza operaciones de empaquetado relacionadas. `makepkg` admite los formatos de paquete XVC, MSIXVC y MSIXVC2. Use la opción `/msixvc2` para generar paquetes en el formato MSIXVC2.

```text theme={null}
makepkg <command> [options]
```

## Opciones globales

| Opción     | Descripción                                 |
| ---------- | ------------------------------------------- |
| `/v`       | Habilita la salida detallada en la consola. |
| `/?`, `/h` | Muestra la ayuda y la información de uso.   |

## Comandos

* [pack](#pack): crea un nuevo paquete de aplicación a partir de archivos en disco.
* [upload](#upload): carga un paquete o un directorio de archivos en Partner Center.
* [genkey](#genkey): genera una clave de cifrado para usarla con `pack /lk`.
* [genid](#genid): convierte entre un GUID de identificador de producto y un identificador de la Store.
* [genmap](#genmap): genera un archivo XML de asignación basado en el contenido en disco.
* [validate](#validate): ejecuta la validación sin crear un paquete.
* [updatesubval](#updatesubval): actualiza SubmissionValidator.dll sin ejecutar otra operación.
* [localize](#localize): genera un archivo Resources.pri basado en el contenido en disco.

## pack

Crea un nuevo paquete de aplicación a partir de archivos en disco.

```text theme={null}
makepkg pack [options]
```

**Ejemplo de uso:**

```text theme={null}
makepkg pack /msixvc2 /f layout.xml /d <sourcedir> /pc /pd <destinationdir>
```

### Opciones

| Opción                              | Descripción                                                                                                                                                                                                                                                                                                                                                             |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/msixvc2`                          | Genera un paquete en el formato de paquete MSIXVC2. Sin esta opción, se genera un paquete MSIXVC.                                                                                                                                                                                                                                                                       |
| `/updcompat 3`                      | Usa granularidad de actualización de contenido a nivel de subarchivo para paquetes XVC y MSIXVC. El único valor admitido es `3`.                                                                                                                                                                                                                                        |
| `/d <sourcedir>`                    | **(Obligatorio)** Especifica el directorio de origen que contiene el contenido que se va a empaquetar.                                                                                                                                                                                                                                                                  |
| `/pd <destinationdir>`              | **(Obligatorio)** Especifica el directorio de destino para el paquete generado.                                                                                                                                                                                                                                                                                         |
| `/f <mapfile>`                      | Especifica el archivo de asignación que se va a usar para el empaquetado. Si se omite, se genera un diseño predeterminado de un solo fragmento.                                                                                                                                                                                                                         |
| `/compress <method>`                | Comprime la salida. Los métodos disponibles son `Automatic` (predeterminado) y `None`. `Automatic` usa Brotli para los paquetes MSIXVC2 y ninguna compresión para los paquetes XVC o MSIXVC.                                                                                                                                                                            |
| `/pc`                               | Genera un paquete para su uso en PC.                                                                                                                                                                                                                                                                                                                                    |
| `/contentid <contentid>`            | Especifica el identificador de contenido al que pertenece este paquete.                                                                                                                                                                                                                                                                                                 |
| `/gameos <gameos>`                  | Especifica el archivo del sistema operativo del juego que se va a insertar en el paquete.                                                                                                                                                                                                                                                                               |
| `/l`                                | Cifra el paquete con una licencia de contenido única. Al enviar un paquete XVC o MSIXVC a certificación, use `/l` o `/lk` a menos que el equipo de certificación le indique lo contrario.                                                                                                                                                                               |
| `/lk <key.lekb>`                    | Cifra el paquete con una licencia de contenido mediante un archivo de clave especificado. Use `genkey` para generar el archivo de clave. Al enviar un paquete XVC o MSIXVC a certificación, use `/l` o `/lk` a menos que el equipo de certificación le indique lo contrario.                                                                                            |
| `/productid <productid>`            | Especifica el identificador de producto al que pertenece este paquete.                                                                                                                                                                                                                                                                                                  |
| `/maxencryptionfragments <count>`   | Especifica el número de fragmentos de cifrado que se reservan en los metadatos del paquete. Esta opción solo se aplica a los paquetes XVC y MSIXVC.                                                                                                                                                                                                                     |
| `/priorpackage <OldPackage.msixvc>` | Especifica un paquete XVC, MSIXVC o MSIXVC2 de una operación de empaquetado anterior para la comparación del tamaño de la actualización de contenido.                                                                                                                                                                                                                   |
| `/loggable`                         | Suprime la salida que contiene caracteres de control que no son adecuados para un archivo de registro.                                                                                                                                                                                                                                                                  |
| `/symbolpaths <symbolpaths>`        | Especifica rutas de acceso adicionales para la búsqueda de resolución de símbolos durante la agrupación de símbolos. Separe las rutas de acceso con punto y coma.                                                                                                                                                                                                       |
| `/skipsymbolbundling`               | Omite la agrupación de símbolos.                                                                                                                                                                                                                                                                                                                                        |
| `/skipvalidation`                   | Omite el validador de envíos (Submission Validator). No use esta opción para compilaciones que podrían enviarse a certificación.                                                                                                                                                                                                                                        |
| `/validationcritical`               | Trata los errores del validador de envíos como errores críticos para el proceso de `makepkg`.                                                                                                                                                                                                                                                                           |
| `/openvalidationlog`                | Abre el archivo de registro del validador de envíos en la aplicación XML predeterminada después de la validación.                                                                                                                                                                                                                                                       |
| `/validationlanguage <lang>`        | Especifica un idioma adicional para el archivo de registro del validador de envíos.                                                                                                                                                                                                                                                                                     |
| `/validationpath <path>`            | Especifica el directorio desde el que se carga SubmissionValidator.dll.                                                                                                                                                                                                                                                                                                 |
| `/updatesubval`                     | Descarga la versión más reciente de SubmissionValidator.dll antes de la validación, a menos que la versión instalada esté actualizada. Use `/validationpath` para seleccionar una ubicación diferente. Si la actualización falla, el empaquetado o la validación continúan con la DLL instalada. Para actualizar sin otra operación, use [updatesubval](#updatesubval). |

### Comentarios

De forma predeterminada, `makepkg pack` cifra los paquetes XVC o MSIXVC mediante una clave de cifrado conocida que reconocen todos los kits de desarrollo para pruebas. Estos paquetes no están protegidos criptográficamente.

Para una protección adicional durante la carga, los paquetes XVC y MSIXVC pueden usar `/l` o `/lk`. Los paquetes que usan `/l` no se pueden instalar en un kit de desarrollo o PC antes de la carga. Los paquetes que usan `/lk` se pueden instalar en un kit de desarrollo antes de la carga. Independientemente del modo de cifrado de carga, el servicio de XBOX cifra el paquete para su distribución con claves de cifrado administradas por Microsoft.

Los paquetes MSIXVC2 no usan cifrado de carga del lado cliente. El servicio de XBOX gestiona el cifrado para la distribución.

Para obtener información sobre el esquema del archivo de asignación, consulte [Esquema del paquete de implementación](/build/core-features/common/packaging/deployment/atoc-deployment-schema).

## upload

Carga un paquete en Partner Center. Solo para MSIXVC2, el comando `upload` también puede empaquetar archivos sueltos y cargarlos en una sola operación cuando se especifica `/d`. La carga de archivos sueltos requiere la opción `/msixvc2`.

Si no se especifica una rama o un vuelo (flight), el paquete se carga en la rama `main`.

El archivo EKB y el archivo de registro del validador de envíos deben estar en el mismo directorio que el paquete y se cargan automáticamente. También se carga un paquete de símbolos cuando está presente. El identificador de la Store se extrae del paquete, pero se puede proporcionar cuando el paquete se generó sin uno.

```text theme={null}
makepkg upload [options]
```

**Ejemplo de uso (cargar un paquete ya compilado):**

```text theme={null}
makepkg upload /pd <package_directory> /branch <branch> /auth CacheableBrowser
```

**Ejemplo de uso (empaquetar y cargar archivos sueltos):**

```text theme={null}
makepkg upload /d <sourcedir> /msixvc2 /pc /branch <branch>
```

### Opciones de origen del paquete

| Opción                    | Descripción                                                                                                                                           |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/pd <package_directory>` | Especifica el archivo de paquete o su directorio. Si el directorio contiene más de un paquete, especifique el nombre completo del archivo de paquete. |
| `/d <sourcedir>`          | Especifica el directorio de origen que se va a empaquetar y cargar en una sola operación.                                                             |
| `/f <mapfile>`            | Especifica el archivo de asignación que se va a usar con `/d`.                                                                                        |
| `/msixvc2`                | Genera un paquete MSIXVC2 cuando se usa con `/d`.                                                                                                     |
| `/compress <method>`      | Comprime la salida. Los métodos disponibles son `Automatic` (predeterminado) y `None`.                                                                |
| `/pc`                     | Genera un paquete para PC cuando se usa con `/d`.                                                                                                     |
| `/productid <productid>`  | Especifica el identificador de producto al que pertenece este paquete.                                                                                |

### Opciones de destino

| Opción               | Descripción                                                                                                                 |
| -------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| `/storeid <storeId>` | Especifica el identificador de la Store. Si se omite, el identificador de la Store se extrae del paquete.                   |
| `/branch <branch>`   | Especifica la rama en la que se va a cargar. El valor predeterminado es `main` si no se especifica ni una rama ni un vuelo. |
| `/flight <flight>`   | Especifica el vuelo en el que se va a cargar. Esta opción no se puede usar con `/branch`.                                   |
| `/market <market>`   | Especifica el mercado en el que se va a cargar. El valor predeterminado es `default`.                                       |
| `/disclayout <path>` | Especifica un archivo de diseño de disco para un paquete que se distribuye en más de un disco.                              |

### Opciones de autenticación

| Opción                         | Descripción                                                                                                                                                                                                                                                                                                                                             |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/auth <method>`               | Especifica el método de autenticación. El valor predeterminado es `CacheableBrowser`. Solo hay varios métodos disponibles para las cargas de MSIXVC2. Las cargas de XVC y MSIXVC solo pueden usar `CacheableBrowser`. Para la autenticación avanzada con esos formatos, use [Package Uploader](/build/core-features/common/packaging/package-uploader). |
| `/tenantid <tenantId>`         | Especifica el inquilino en el que se va a cargar. Si se omite, se usa el inquilino predeterminado del usuario.                                                                                                                                                                                                                                          |
| `/clientid <clientId>`         | Especifica el identificador de cliente. Obligatorio para `ManagedIdentity`, `ClientCertificate` y `ClientSecret`.                                                                                                                                                                                                                                       |
| `/clientsecret <secret>`       | Especifica el secreto de cliente. Requiere `/auth ClientSecret`.                                                                                                                                                                                                                                                                                        |
| `/certthumbprint <thumbprint>` | Especifica la huella digital del certificado para `ClientCertificate`.                                                                                                                                                                                                                                                                                  |
| `/certstore <store>`           | Especifica el nombre del almacén de certificados. El valor predeterminado es `My`.                                                                                                                                                                                                                                                                      |
| `/certlocation <location>`     | Especifica la ubicación del certificado, como `CurrentUser` o `LocalMachine`. El valor predeterminado es `CurrentUser`.                                                                                                                                                                                                                                 |
| `/certpassword <password>`     | Especifica la contraseña para un archivo de certificado protegido con contraseña.                                                                                                                                                                                                                                                                       |
| `/resourceid <resourceId>`     | Especifica el identificador de recurso de Azure para `ManagedIdentityFederated`.                                                                                                                                                                                                                                                                        |

### Opciones de validación y símbolos

| Opción                       | Descripción                                                                                                                                                 |
| ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/skipvalidation`            | Omite el validador de envíos.                                                                                                                               |
| `/validationcritical`        | Trata los errores del validador de envíos como errores críticos.                                                                                            |
| `/validationlanguage <lang>` | Especifica un idioma adicional para el archivo de registro del validador de envíos.                                                                         |
| `/validationpath <path>`     | Especifica el directorio desde el que se carga SubmissionValidator.dll.                                                                                     |
| `/updatesubval`              | Descarga la versión más reciente de SubmissionValidator.dll antes de la validación. Consulte [pack](#pack) para conocer el comportamiento en caso de error. |
| `/symbolpaths <symbolpaths>` | Especifica rutas de acceso adicionales de resolución de símbolos separadas por punto y coma.                                                                |
| `/skipsymbolbundling`        | Omite la agrupación de símbolos.                                                                                                                            |

### Métodos de autenticación

| Método                     | Descripción                                                                                                                     |
| -------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
| `CacheableBrowser`         | Abre un explorador para el inicio de sesión interactivo y almacena en caché las credenciales. Este método es el predeterminado. |
| `Browser`                  | Abre un explorador para el inicio de sesión interactivo sin almacenar en caché las credenciales.                                |
| `AzureCli`                 | Usa las credenciales de la CLI de Azure.                                                                                        |
| `AzurePipelines`           | Usa la conexión de servicio de Azure Pipelines.                                                                                 |
| `ManagedIdentity`          | Usa una identidad administrada de Azure. Requiere `/clientid`.                                                                  |
| `ManagedIdentityFederated` | Usa una identidad administrada federada. Requiere `/clientid` y `/resourceid`.                                                  |
| `ClientSecret`             | Usa un identificador de cliente y un secreto. Requiere `/clientid` y `/clientsecret`.                                           |
| `ClientCertificate`        | Usa un certificado de cliente. Requiere `/clientid` y `/certthumbprint`.                                                        |
| `Environment`              | Usa las credenciales de las variables de entorno.                                                                               |
| `Default`                  | Prueba varios métodos de autenticación en secuencia.                                                                            |

## genkey

Genera un blob de clave en depósito local (LEKB) para usarlo con `pack /lk`.

```text theme={null}
makepkg genkey [options]
```

| Opción           | Descripción                                                                                                                                            |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `/ekb <ekbfile>` | Especifica la ruta de acceso para el archivo LEKB generado. Use la extensión `.lekb` para distinguirlo del archivo `.ekb` generado por `makepkg pack`. |

Proporcione el archivo LEKB a `makepkg pack /lk` para usar una clave de cifrado estable durante la creación del paquete. Esta clave:

1. Permite que `packageutil compare` genere estimaciones precisas del tamaño de la actualización.
2. Habilita cargas delta seguras en Partner Center mediante el mismo algoritmo que usan las consolas y los PC para descargar actualizaciones de contenido.
3. Genera paquetes que se pueden instalar en kits de desarrollo.
4. Usa material de clave de cifrado seguro que solo se puede descifrar en entornos específicos.

El archivo LEKB contiene material de clave de cifrado ligeramente ofuscado. Cualquier persona que tenga el archivo LEKB y el paquete puede descifrar el paquete, así que proteja el acceso al archivo.

## genid

Convierte entre un GUID de identificador de producto y un identificador de la Store.

```text theme={null}
makepkg genid [options]
```

| Opción                   | Descripción                                                            |
| ------------------------ | ---------------------------------------------------------------------- |
| `/storeid <storeId>`     | Especifica el identificador de la Store que se va a convertir.         |
| `/productid <productId>` | Especifica el GUID de identificador de producto que se va a convertir. |

## genmap

Genera un archivo XML de asignación basado en el contenido en disco. El archivo generado contiene un fragmento y se puede editar para dividir el contenido en varios fragmentos o agregar etiquetas de Intelligent Delivery.

```text theme={null}
makepkg genmap /f <mapfile> /d <contentdirectory>
```

| Opción                  | Descripción                                                                 |
| ----------------------- | --------------------------------------------------------------------------- |
| `/f <mapfile>`          | Especifica la ruta de acceso para el archivo de asignación generado.        |
| `/d <contentdirectory>` | Especifica el directorio cuyo contenido se agrega al archivo de asignación. |

## validate

Ejecuta la validación del paquete sin crear un paquete. Use este comando para comprobar el contenido y la configuración antes de una operación de empaquetado completa.

```text theme={null}
makepkg validate [options]
```

El comando `validate` acepta las mismas opciones que [pack](#pack).

## updatesubval

Descarga, comprueba e instala la versión más reciente de SubmissionValidator.dll sin crear, validar ni cargar un paquete.

```text theme={null}
makepkg updatesubval [/validationpath <path>]
```

### Opciones

| Opción                   | Descripción                                                                                                                                                                                                |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/validationpath <path>` | Especifica el directorio que contiene o debe recibir SubmissionValidator.dll. Si se omite, el comando comprueba el directorio de la herramienta `makepkg` y, a continuación, el directorio `%GameDK%\bin`. |

### Comentarios

Si SubmissionValidator.dll ya es la versión más reciente, el comando informa de que está actualizada y finaliza correctamente sin descargarla. Si el archivo falta, el comando lo instala. Si el proceso se realiza correctamente, el comando muestra la versión de SubmissionValidator.dll que hay en disco.

A diferencia de la opción `/updatesubval` que se usa durante el empaquetado o la validación, el comando independiente `updatesubval` devuelve un código de salida distinto de cero si la actualización falla. Cuando se usa como opción, un error de actualización no es irrecuperable y la operación de empaquetado o validación continúa con la versión instalada de SubmissionValidator.dll.

## localize

Genera un archivo Resources.pri basado en el contenido en disco.

```text theme={null}
makepkg localize /d <sourcedir> [options]
```

| Opción                 | Descripción                                                                                                                              |
| ---------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `/d <sourcedir>`       | **(Obligatorio)** Especifica el directorio de origen que contiene el contenido que se va a localizar.                                    |
| `/resw <reswdir>`      | Especifica un directorio relativo al directorio raíz que contiene archivos RESW.                                                         |
| `/pd <outputdir>`      | Especifica el directorio de salida para Resources.pri. Si se omite, el archivo se coloca en el directorio de contenido.                  |
| `/t <tempdir>`         | Especifica un directorio temporal para convertir Resources.pri a XML.                                                                    |
| `/gc <gameconfigpath>` | Especifica la ruta de acceso de MicrosoftGame.config cuando el archivo no está en la base del directorio de contenido o usa otro nombre. |

Para obtener más información, consulte [Localización de MicrosoftGame.config](/build/core-features/common/game-config/MicrosoftGameConfig-Localization).

## Temas relacionados

[Información general sobre el empaquetado MSIXVC2](/build/core-features/common/packaging/overviews/packaging-msixvc2-overview)

[Introducción a MSIXVC2 para PC](/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC-msixvc2)

[Esquema del paquete de implementación](/build/core-features/common/packaging/deployment/atoc-deployment-schema)

[XBOX Game Package Manager](/build/core-features/common/packaging/xgpm)

[Automatización de la carga de paquetes](/build/core-features/common/packaging/package-uploader)


## Related topics

- [Esquema del paquete de implementación](/es/build/core-features/common/packaging/deployment/atoc-deployment-schema.md)
- [Información general sobre el empaquetado MSIXVC2](/es/build/core-features/common/packaging/overviews/packaging-msixvc2-overview.md)
- [Herramientas para la instalación mediante streaming](/es/build/core-features/common/packaging/deployment/atoc-deployment-tools.md)
- [Package Uploader](/es/build/core-features/common/packaging/package-uploader.md)
- [Introducción al empaquetado de títulos para PC con las herramientas MSIXVC](/es/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC.md)
