Compilar recursos manualmente com o MakePri.exe

O MakePri.exe é uma ferramenta de linha de comando que você pode usar para criar e despejar arquivos PRI. Ele é integrado como parte do MSBuild no Microsoft Visual Studio, mas pode ser útil para criar pacotes manualmente ou com um sistema de build personalizado.

Observação

O MakePri.exe é instalado quando você verifica a opção SDK do Windows para Aplicativos Gerenciados UWP durante a instalação do Kit de Desenvolvimento de Software do Windows. Ele é instalado no demarcador %WindowsSdkDir%bin\<WindowsTargetPlatformVersion>\x64\makepri.exe (bem como em pastas nomeadas para as outras arquiteturas). Por exemplo, C:\Program Files (x86)\Windows Kits\10\bin\10.0.17713.0\x64\makepri.exe.

Nesta seção

Tópico Descrição
Opções de linha de comando de MakePri.exe MakePri.exe tem o conjunto de comandos createconfig, dump, new, resourcepack e versioned. Este tópico detalha as opções de linha de comando para seu uso.
Arquivo de configuração MakePri.exe Este tópico descreve o esquema do arquivo de configuração XML MakePri.exe.
Indexadores específicos de formato do MakePri.exe Este tópico descreve os indexadores específicos do formato usados pela ferramenta MakePri.exe para gerar seu índice de recursos.

Opções de linha de comando de MakePri.exe

MakePri.exe tem o conjunto de comandos createconfig, dump, new, resourcepack e versioned. Para obter detalhes sobre seu uso, consulte Opções de linha de comando MakePri.exe.

Configuração MakePri.exe

O arquivo de configuração PRI XML determina como e quais recursos são indexados. O esquema do XML de configuração é descrito em configuração MakePri.exe.

Indexadores específicos de formato

O MakePri.exe normalmente é usado com as opções new, versioned e resourcepack. Nesses casos, ele indexa arquivos de origem para gerar um índice de recursos. O MakePri.exe usa vários indexadores individuais para ler diferentes arquivos de recurso de origem ou contêineres para recursos. O indexador mais simples é o indexador de pastas, que indexa o conteúdo de uma pasta, como imagens .jpg ou .png. Para obter mais informações, confira Indexadores específicos de formato MakePri.exe.

Avisos e mensagens de erro de MakePri.exe

Recursos encontrados para o(s) idioma(s) '<idioma(s)>', mas nenhum recurso encontrado para o(s) idioma(s) padrão: '<idioma(s)>'. Altere o idioma padrão ou qualifique recursos com o idioma padrão.

Esse aviso é exibido quando MakePri.exe ou MSBuild descobre arquivos ou recursos de cadeia de caracteres para um determinado recurso nomeado que parecem estar marcados com qualificadores de idioma, mas nenhum candidato é encontrado para um idioma padrão. O processo para usar qualificadores em nomes de arquivos e pastas é descrito em Personalizar seus recursos para idioma, escala e outros qualificadores. Um arquivo ou pasta pode ter um nome de idioma, mas recursos qualificados não são descobertos para o idioma padrão exato. Por exemplo, se um projeto usa "en-US" como o idioma padrão e tem um arquivo chamado "de/logo.png", mas nenhum arquivo marcado com o idioma padrão "en-US", esse aviso será exibido. Para remover esse aviso, o(s) arquivo(s) ou recurso(s) de cadeia de caracteres deve(m) ser qualificado(s) com o idioma padrão ou o idioma padrão deve ser alterado. Para alterar o idioma padrão, com sua solução aberta no Visual Studio, abra Package.appxmanifest. Na guia Aplicativo, confirme se o idioma padrão está definido adequadamente (por exemplo, "en" ou "en-US").

Nenhum recurso padrão ou neutro é fornecido para '<identificador de recurso>'. O aplicativo pode lançar uma exceção para determinadas configurações de usuário ao recuperar os recursos.

Esse aviso é exibido quando MakePri.exe ou MSBuild descobre arquivos ou recursos que parecem estar marcados com qualificadores de idioma para os quais os recursos não estão claros. Há qualificadores, mas não há garantia de que um determinado candidato a recurso possa ser retornado para esse identificador de recurso em tempo de execução. Se nenhum candidato a recurso para determinado idioma, região inicial ou outro qualificador puder ser encontrado que seja padrão ou sempre corresponda ao contexto de um usuário, esse aviso será exibido. Em tempo de execução, para configurações específicas do usuário, como preferências de idioma ou local inicial do usuário (Configurações>Horário e Idioma>Região e Idioma), as APIs usadas para recuperar o recurso podem lançar uma exceção inesperada. Para remover esse aviso, recursos padrão devem ser fornecidos, como um recurso no idioma padrão do projeto ou na região inicial global (homeregion-001).

Usar MakePri.exe em um sistema de compilação

Os sistemas de compilação devem usar o comando MakePri.exe new, versioned ou resourcepack, dependendo do tipo de projeto que está sendo compilado. Os sistemas de compilação que criam um novo arquivo PRI devem usar o comando new. Os sistemas de compilação que devem garantir a compatibilidade de deslocamentos internos por meio de iterações podem usar o comando versioned. Os sistemas de compilação que devem criar um arquivo PRI contendo variantes adicionais de recursos, com validação para garantir que nenhum novo recurso seja adicionado para essa variante, devem usar o comando resourcepack.

Os sistemas de compilação que exigem controle explícito sobre os arquivos de origem que são indexados podem usar o indexador ResFiles em vez de indexar uma pasta. Os sistemas de compilação também podem usar várias passagens de índice com indexadores específicos de formato diferentes para gerar um único arquivo PRI.

Os sistemas de compilação também podem usar o indexador específico do formato PRI para adicionar arquivos PRI pré-compilados ao PRI para o pacote de outros componentes, como bibliotecas de classes, assemblies, SDKs e DLLs.

Quando os arquivos PRI são criados para outros componentes, bibliotecas de classes, assemblies, DLLs e SDKs, a configuração initialPath deve ser usada para garantir que os recursos do componente tenham seus próprios mapas de subrecursos que não entrem em conflito com o aplicativo em que estão incluídos.