Partilhar via


Introdução aos pacotes de ativos

Importante

Se você pretende enviar seu aplicativo para a Loja, precisa entrar em contato com o suporte ao desenvolvedor do Windows e obter aprovação para usar pacotes de ativos.

Os pacotes de ativos são um tipo de pacote que atua como um local centralizado para os arquivos comuns de um aplicativo – eliminando efetivamente a necessidade de arquivos duplicados em todos os seus pacotes de arquitetura. Os pacotes de ativos são semelhantes aos pacotes de recursos, pois ambos são projetados para conter o conteúdo estático necessário para a execução do seu aplicativo, mas são diferentes porque todos os pacotes de ativos são sempre baixados, independentemente da arquitetura, idioma ou escala de exibição do sistema do usuário.

Diagrama do pacote de ativos

Como os pacotes de ativos contêm todos os arquivos agnósticos de arquitetura, linguagem e escala, o uso de pacotes de ativos resulta em uma redução do tamanho geral do aplicativo empacotado (já que esses arquivos não são mais duplicados), ajudando-o a gerir o uso do espaço em disco durante o desenvolvimento local para aplicações grandes e a gerir os pacotes da sua aplicação de forma geral.

Como os pacotes de ativos afetam a publicação?

O benefício mais óbvio dos pacotes de ativos é o tamanho reduzido dos pacotes de aplicativos. Pacotes de aplicativos menores aceleram o processo de publicação do aplicativo, permitindo que a Loja processe menos arquivos; no entanto, este não é o benefício mais importante dos pacotes de ativos.

Quando um pacote de ativos é criado, você pode especificar se o pacote deve ter permissão para ser executado. Como os pacotes de ativos devem conter apenas arquivos agnósticos de arquitetura, eles geralmente não contêm nenhum ficheiro .dll ou .exe, portanto, pacotes de ativos geralmente não precisam ser executados. A importância dessa distinção é que, durante o processo de publicação, todos os pacotes executáveis devem ser verificados para garantir que não contenham malware, e esse processo de verificação leva mais tempo para pacotes maiores. No entanto, se um pacote for designado como não executável, a instalação do aplicativo garantirá que os arquivos contidos nesse pacote não possam ser executados. Essa garantia elimina a necessidade de uma verificação completa do pacote e reduzirá consideravelmente o tempo de verificação de malware durante a publicação do aplicativo (e para atualizações também) - tornando a publicação significativamente mais rápida para aplicativos que usam pacotes de ativos. Observe que os pacotes de aplicativos de pacote simples também devem ser usados para obter esse benefício de publicação, pois é isso que permite que a Loja processe cada arquivo de pacote .appx ou .msix em paralelo.

Devo usar pacotes de ativos?

Atualizar a estrutura de arquivos do seu aplicativo para aproveitar o uso de pacotes de ativos pode gerar benefícios tangíveis: tamanho de pacote reduzido e iterações de desenvolvimento mais enxutas. Se todos os seus pacotes de arquitetura contiverem uma quantidade significativa de arquivos em comum ou se a maior parte do seu aplicativo for composta por arquivos não executantes, é altamente recomendável que você invista o tempo extra para converter para usar pacotes de ativos.

No entanto, deve-se advertir que os pacotes de ativos não são um meio de alcançar a opcionalidade do conteúdo do aplicativo. Os arquivos de pacote de ativos não são opcionais e sempre serão baixados, independentemente da arquitetura, idioma ou escala do dispositivo de destino - qualquer conteúdo opcional que você queira que seu aplicativo suporte deve ser implementado usando pacotes opcionais.

Como criar um pacote de ativos

A maneira mais fácil de criar pacotes de ativos é usando o layout de empacotamento. No entanto, os pacotes de ativos também podem ser criados manualmente usando MakeAppx.exe. Para especificar quais arquivos incluir no pacote de ativos, você precisará criar um "arquivo de mapeamento". Neste exemplo, o único arquivo no pacote de ativos é "Video.mp4", mas todos os arquivos do pacote de ativos devem ser listados aqui. Observe que o especificador ResourceDimensions em ResourceMetadata é omitido para pacotes de ativos (em comparação com um arquivo de mapeamento para pacotes de recursos).

[ResourceMetadata]
"ResourceId"        "Videos"

[Files]
"Video.mp4"         "Video.mp4"

Use um desses comandos para criar o pacote de ativos usando MakeAppx.exe (para MSIX e .appx).

MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.appx
MakeAppx.exe pack /r /m AppxManifest.xml /f MappingFile.txt /p Videos.msix

Deve-se notar aqui que todos os arquivos referenciados no AppxManifest (os arquivos de logotipo) não podem ser movidos para pacotes de ativos – esses arquivos devem ser duplicados entre pacotes de arquitetura.

Os pacotes de ativos também não devem conter um resources.pri; O MRT não pode ser usado para acessar arquivos de pacotes de ativos. Para saber mais sobre como acessar arquivos de pacotes de ativos e por que os pacotes de ativos exigem que seu aplicativo seja instalado em uma unidade NTFS, consulte Desenvolvendo com pacotes de ativos e dobragem de pacotes.

Para controlar se um pacote de ativos tem permissão para ser executado ou não, você pode usar uap6:AllowExecution no elemento Properties do AppxManifest Você também deve adicionar uap6 ao elemento Package de nível superior para se tornar o seguinte:

<Package IgnorableNamespaces="uap uap6" 
xmlns:uap6="http://schemas.microsoft.com/appx/manifest/uap/windows10/6" 
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10" 
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">

Se não for especificado, o valor padrão para AllowExecution é true – defina-o como false para pacotes de ativos sem executáveis para tornar a publicação mais rápida.