> ## 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.

# Criar pacote (makepkg.exe)

> Criar pacote (makepkg.exe)

Cria pacotes de aplicativos, carrega pacotes no Partner Center e executa operações de empacotamento relacionadas. O `makepkg` dá suporte aos formatos de pacote XVC, MSIXVC e MSIXVC2. Use a opção `/msixvc2` para gerar pacotes no formato MSIXVC2.

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

## Opções globais

| Opção | Descrição |
| - | - |
| `/v` | Habilita a saída detalhada no console. |
| `/?`, `/h` | Mostra informações de ajuda e uso. |

## Comandos

* [pack](#pack) - Cria um novo pacote de aplicativo a partir de arquivos no disco.
* [upload](#upload) - Carrega um pacote ou um diretório de arquivos no Partner Center.
* [genkey](#genkey) - Gera uma chave de criptografia para uso com `pack /lk`.
* [genid](#genid) - Converte entre um GUID de Product ID e uma Store ID.
* [genmap](#genmap) - Gera um arquivo XML de mapeamento com base no conteúdo do disco.
* [validate](#validate) - Executa a validação sem criar um pacote.
* [updatesubval](#updatesubval) - Atualiza o SubmissionValidator.dll sem executar outra operação.
* [localize](#localize) - Gera um arquivo Resources.pri com base no conteúdo do disco.

## pack

Cria um novo pacote de aplicativo a partir de arquivos no disco.

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

**Exemplo de uso:**

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

### Opções

| Opção | Descrição |
| - | - |
| `/msixvc2` | Gera um pacote no formato de pacote MSIXVC2. Sem essa opção, um pacote MSIXVC é gerado. |
| `/updcompat 3` | Usa granularidade de atualização de conteúdo em nível de subarquivo para pacotes XVC e MSIXVC. O único valor com suporte é `3`. |
| `/d <sourcedir>` | **(Obrigatório)** Especifica o diretório de origem que contém o conteúdo a ser empacotado. |
| `/pd <destinationdir>` | **(Obrigatório)** Especifica o diretório de destino do pacote gerado. |
| `/f <mapfile>` | Especifica o arquivo de mapeamento a ser usado para o empacotamento. Se omitido, um layout padrão com um único chunk é gerado. |
| `/compress <method>` | Compacta a saída. Os métodos disponíveis são `Automatic` (padrão) e `None`. `Automatic` usa Brotli para pacotes MSIXVC2 e nenhuma compactação para pacotes XVC ou MSIXVC. |
| `/pc` | Gera um pacote para uso no PC. |
| `/contentid <contentid>` | Especifica a ID de conteúdo à qual esse pacote pertence. |
| `/gameos <gameos>` | Especifica o arquivo do sistema operacional do jogo a ser inserido no pacote. |
| `/l` | Criptografa o pacote com uma licença de conteúdo exclusiva. Ao enviar um pacote XVC ou MSIXVC para certificação, use `/l` ou `/lk`, a menos que a equipe de Certificação oriente de outra forma. |
| `/lk <key.lekb>` | Criptografa o pacote com uma licença de conteúdo usando um arquivo de chave especificado. Use `genkey` para gerar o arquivo de chave. Ao enviar um pacote XVC ou MSIXVC para certificação, use `/l` ou `/lk`, a menos que a equipe de Certificação oriente de outra forma. |
| `/productid <productid>` | Especifica a ID do produto à qual esse pacote pertence. |
| `/maxencryptionfragments <count>` | Especifica o número de fragmentos de criptografia a serem reservados nos metadados do pacote. Essa opção se aplica somente a pacotes XVC e MSIXVC. |
| `/priorpackage <OldPackage.msixvc>` | Especifica um pacote XVC, MSIXVC ou MSIXVC2 de uma operação de empacotamento anterior para comparação do tamanho da atualização de conteúdo. |
| `/loggable` | Suprime a saída que contém caracteres de controle que não são adequados para um arquivo de log. |
| `/usepublisherkey <publisherkeyname>` | Assina um pacote Publisher Content XVC ou MSIXVC, ou insere a chave pública do editor no pacote do jogo base pai, usando uma chave CNG pré-instalada identificada por `publisherkeyname`. Aplica-se somente a XVC e MSIXVC. |
| `/publisherkeyprovider <publisherkeyprovider>` | Especifica o provedor de armazenamento de chaves CNG que contém a chave do editor nomeada por `/usepublisherkey`. Se não for especificado, o Microsoft Software Key Storage Provider será usado. Aplica-se somente a XVC e MSIXVC. |
| `/usepublishercert <thumbprint\|certificate.cer>` | Especifica a impressão digital ou o caminho do arquivo .cer do certificado usado para assinar um pacote Publisher Content MSIXVC2 ou autorizá-lo a partir de um pacote pai. Um arquivo .cer é correspondido à sua chave privada no repositório de certificados. Requer `/msixvc2`. |
| `/publishercertstore <store>` | Especifica o repositório de certificados que contém o certificado do editor nomeado por `/usepublishercert`. Se não for especificado, o repositório pessoal CurrentUser será usado. Requer `/msixvc2`. |
| `/symbolpaths <symbolpaths>` | Especifica caminhos adicionais para a pesquisa de resolução de símbolos durante o agrupamento de símbolos. Separe os caminhos com ponto e vírgula. |
| `/skipsymbolbundling` | Ignora o agrupamento de símbolos. |
| `/skipvalidation` | Ignora o Submission Validator. Não use essa opção para builds que possam ser enviados para certificação. |
| `/validationcritical` | Trata falhas do Submission Validator como falhas críticas para o processo do `makepkg`. |
| `/openvalidationlog` | Abre o arquivo de log do Submission Validator no aplicativo XML padrão após a validação. |
| `/validationlanguage <lang>` | Especifica um idioma adicional para o arquivo de log do Submission Validator. |
| `/validationpath <path>` | Especifica o diretório do qual carregar o SubmissionValidator.dll. |
| `/updatesubval` | Baixa o SubmissionValidator.dll mais recente antes da validação, a menos que a versão instalada esteja atualizada. Use `/validationpath` para selecionar um local diferente. Se a atualização falhar, o empacotamento ou a validação continuará com a DLL instalada. Para atualizar sem outra operação, use [updatesubval](#updatesubval). |

### Comentários

Por padrão, o `makepkg pack` criptografa pacotes XVC ou MSIXVC usando uma chave de criptografia conhecida, reconhecida por todos os kits de desenvolvimento para testes. Esses pacotes não são protegidos criptograficamente.

Para proteção adicional no upload, os pacotes XVC e MSIXVC podem usar `/l` ou `/lk`. Pacotes que usam `/l` não podem ser instalados em um kit de desenvolvimento ou PC antes do upload. Pacotes que usam `/lk` podem ser instalados em um kit de desenvolvimento antes do upload. Independentemente do modo de criptografia de upload, o serviço XBOX criptografa o pacote para distribuição com chaves de criptografia gerenciadas pela Microsoft.

Pacotes MSIXVC2 não usam criptografia de upload no lado do cliente. O serviço XBOX cuida da criptografia para distribuição.

Para obter informações sobre o esquema do arquivo de mapeamento, confira [Esquema do pacote de implantação](/pt-BR/build/core-features/common/packaging/deployment/atoc-deployment-schema).

## upload

Carrega um pacote no Partner Center. Somente para MSIXVC2, o comando `upload` também pode empacotar arquivos soltos e carregá-los em uma única operação quando `/d` é especificado. O upload de arquivos soltos requer a opção `/msixvc2`.

Se uma ramificação ou um flight não for especificado, o pacote será carregado na ramificação `main`.

O arquivo EKB e o arquivo de log do Submission Validator devem estar no mesmo diretório que o pacote e são carregados automaticamente. Um pacote de símbolos também é carregado quando presente. A Store ID é extraída do pacote, mas pode ser fornecida quando o pacote foi gerado sem uma.

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

**Exemplo de uso (carregar um pacote pré-criado):**

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

**Exemplo de uso (empacotar e carregar arquivos soltos):**

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

### Opções de origem do pacote

| Opção | Descrição |
| - | - |
| `/pd <package_directory>` | Especifica o arquivo de pacote ou seu diretório. Se o diretório contiver mais de um pacote, especifique o nome completo do arquivo de pacote. |
| `/d <sourcedir>` | Especifica o diretório de origem a ser empacotado e carregado em uma única operação. |
| `/f <mapfile>` | Especifica o arquivo de mapeamento a ser usado com `/d`. |
| `/msixvc2` | Gera um pacote MSIXVC2 quando usado com `/d`. |
| `/compress <method>` | Compacta a saída. Os métodos disponíveis são `Automatic` (padrão) e `None`. |
| `/pc` | Gera um pacote para PC quando usado com `/d`. |
| `/productid <productid>` | Especifica a ID do produto à qual esse pacote pertence. |

### Opções de destino

| Opção | Descrição |
| - | - |
| `/storeid <storeId>` | Especifica a Store ID. Se omitida, a Store ID é extraída do pacote. |
| `/branch <branch>` | Especifica a ramificação na qual carregar. O padrão é `main` se nem uma ramificação nem um flight forem especificados. |
| `/flight <flight>` | Especifica o flight no qual carregar. Essa opção não pode ser usada com `/branch`. |
| `/market <market>` | Especifica o mercado no qual carregar. O padrão é `default`. |
| `/disclayout <path>` | Especifica um arquivo de layout de disco para um pacote distribuído em mais de um disco. |

### Opções de autenticação

| Opção | Descrição |
| - | - |
| `/auth <method>` | Especifica o método de autenticação. O padrão é `CacheableBrowser`. Vários métodos estão disponíveis somente para uploads MSIXVC2. Uploads XVC e MSIXVC podem usar somente `CacheableBrowser`. Para autenticação avançada com esses formatos, use o [Package Uploader](/pt-BR/build/core-features/common/packaging/package-uploader). |
| `/tenantid <tenantId>` | Especifica o locatário no qual carregar. Se omitido, o locatário padrão do usuário é usado. |
| `/clientid <clientId>` | Especifica a ID do cliente. Obrigatório para `ManagedIdentity`, `ClientCertificate` e `ClientSecret`. |
| `/clientsecret <secret>` | Especifica o segredo do cliente. Requer `/auth ClientSecret`. |
| `/certthumbprint <thumbprint>` | Especifica a impressão digital do certificado para `ClientCertificate`. |
| `/certstore <store>` | Especifica o nome do repositório de certificados. O padrão é `My`. |
| `/certlocation <location>` | Especifica o local do certificado, como `CurrentUser` ou `LocalMachine`. O padrão é `CurrentUser`. |
| `/certpassword <password>` | Especifica a senha de um arquivo de certificado protegido por senha. |
| `/resourceid <resourceId>` | Especifica a ID do recurso do Azure para `ManagedIdentityFederated`. |

### Opções de validação e símbolos

| Opção | Descrição |
| - | - |
| `/skipvalidation` | Ignora o Submission Validator. |
| `/validationcritical` | Trata falhas do Submission Validator como falhas críticas. |
| `/validationlanguage <lang>` | Especifica um idioma adicional para o arquivo de log do Submission Validator. |
| `/validationpath <path>` | Especifica o diretório do qual carregar o SubmissionValidator.dll. |
| `/updatesubval` | Baixa o SubmissionValidator.dll mais recente antes da validação. Confira [pack](#pack) para saber o comportamento em caso de falha. |
| `/symbolpaths <symbolpaths>` | Especifica caminhos adicionais de resolução de símbolos separados por ponto e vírgula. |
| `/skipsymbolbundling` | Ignora o agrupamento de símbolos. |

### Métodos de autenticação

| Método | Descrição |
| - | - |
| `CacheableBrowser` | Abre um navegador para entrada interativa e armazena as credenciais em cache. Esse é o método padrão. |
| `Browser` | Abre um navegador para entrada interativa sem armazenar as credenciais em cache. |
| `AzureCli` | Usa as credenciais da CLI do Azure. |
| `AzurePipelines` | Usa a conexão de serviço do Azure Pipelines. |
| `ManagedIdentity` | Usa uma identidade gerenciada do Azure. Requer `/clientid`. |
| `ManagedIdentityFederated` | Usa uma identidade gerenciada federada. Requer `/clientid` e `/resourceid`. |
| `ClientSecret` | Usa uma ID e um segredo do cliente. Requer `/clientid` e `/clientsecret`. |
| `ClientCertificate` | Usa um certificado do cliente. Requer `/clientid` e `/certthumbprint`. |
| `Environment` | Usa credenciais de variáveis de ambiente. |
| `Default` | Tenta vários métodos de autenticação em sequência. |

## genkey

Gera um blob de chave local em custódia (LEKB) para uso com `pack /lk`.

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

| Opção | Descrição |
| - | - |
| `/ekb <ekbfile>` | Especifica o caminho do arquivo LEKB gerado. Use a extensão `.lekb` para diferenciá-lo do arquivo `.ekb` gerado por `makepkg pack`. |

Forneça o arquivo LEKB para `makepkg pack /lk` para usar uma chave de criptografia estável durante a criação do pacote. Essa chave:

1. Permite que `packageutil compare` gere estimativas precisas do tamanho das atualizações.
2. Habilita uploads delta seguros para o Partner Center usando o mesmo algoritmo que consoles e PCs usam para baixar atualizações de conteúdo.
3. Produz pacotes que podem ser instalados em kits de desenvolvimento.
4. Usa material de chave de criptografia seguro que só pode ser descriptografado em ambientes específicos.

O arquivo LEKB contém material de chave de criptografia levemente ofuscado. Qualquer pessoa que tenha tanto o arquivo LEKB quanto o pacote pode descriptografar o pacote, portanto, proteja o acesso ao arquivo.

## genid

Converte entre um GUID de Product ID e uma Store ID.

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

| Opção | Descrição |
| - | - |
| `/storeid <storeId>` | Especifica a Store ID a ser convertida. |
| `/productid <productId>` | Especifica o GUID de Product ID a ser convertido. |

## genmap

Gera um arquivo XML de mapeamento com base no conteúdo do disco. O arquivo gerado contém um chunk e pode ser editado para dividir o conteúdo em vários chunks ou adicionar marcas de Intelligent Delivery.

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

| Opção | Descrição |
| - | - |
| `/f <mapfile>` | Especifica o caminho do arquivo de mapeamento gerado. |
| `/d <contentdirectory>` | Especifica o diretório cujo conteúdo é adicionado ao arquivo de mapeamento. |

## validate

Executa a validação do pacote sem criar um pacote. Use esse comando para verificar o conteúdo e a configuração antes de uma operação completa de empacotamento.

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

O comando `validate` aceita as mesmas opções que [pack](#pack).

## updatesubval

Baixa, verifica e instala o SubmissionValidator.dll mais recente sem criar, validar ou carregar um pacote.

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

### Opções

| Opção | Descrição |
| - | - |
| `/validationpath <path>` | Especifica o diretório que contém ou deve receber o SubmissionValidator.dll. Se omitido, o comando verifica o diretório da ferramenta `makepkg` e, em seguida, o diretório `%GameDK%\bin`. |

### Comentários

Se o SubmissionValidator.dll já estiver na versão mais recente, o comando informará que ele está atualizado e sairá com êxito sem baixá-lo. Se o arquivo estiver ausente, o comando o instalará. Em caso de êxito, o comando exibe a versão do SubmissionValidator.dll que está no disco.

Ao contrário da opção `/updatesubval` usada durante o empacotamento ou a validação, o comando autônomo `updatesubval` retorna um código de saída diferente de zero se a atualização falhar. Quando usado como opção, uma falha de atualização não é fatal e a operação de empacotamento ou validação continua com a versão instalada do SubmissionValidator.dll.

## localize

Gera um arquivo Resources.pri com base no conteúdo do disco.

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

| Opção | Descrição |
| - | - |
| `/d <sourcedir>` | **(Obrigatório)** Especifica o diretório de origem que contém o conteúdo a ser localizado. |
| `/resw <reswdir>` | Especifica um diretório relativo ao diretório raiz que contém arquivos RESW. |
| `/pd <outputdir>` | Especifica o diretório de saída do Resources.pri. Se omitido, o arquivo é colocado no diretório de conteúdo. |
| `/t <tempdir>` | Especifica um diretório temporário para converter o Resources.pri em XML. |
| `/gc <gameconfigpath>` | Especifica o caminho do MicrosoftGame.config quando o arquivo não está na base do diretório de conteúdo ou usa outro nome. |

Para obter mais informações, confira [Localização do MicrosoftGame.config](/pt-BR/build/core-features/common/game-config/MicrosoftGameConfig-Localization).

## Tópicos relacionados

[Visão geral do empacotamento MSIXVC2](/pt-BR/build/core-features/common/packaging/overviews/packaging-msixvc2-overview)

[Introdução ao MSIXVC2 para PC](/pt-BR/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC-msixvc2)

[Esquema do pacote de implantação](/pt-BR/build/core-features/common/packaging/deployment/atoc-deployment-schema)

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

[Automatizando o upload de pacotes](/pt-BR/build/core-features/common/packaging/package-uploader)


## Related topics

- [Make package (makepkg.exe)](/zh-CN/build/core-features/common/packaging/deployment/makepkg.md)
- [패키지 만들기(makepkg.exe)](/ko/build/core-features/common/packaging/deployment/makepkg.md)
- [packageutil.exe](/build/core-features/common/packaging/deployment/packageutil.md)
- [Compile e execute seu primeiro título de console com o GDKX](/pt-BR/home/build-first-title/first-console-title-walkthrough.md)
