Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Para preparar seu aplicativo para a instalação de streaming, você precisará criar um mapa de grupo de conteúdo. Este artigo ajudará você com as especificidades de criar e converter um mapa de grupo de conteúdo, fornecendo algumas dicas e truques ao longo do caminho.
Criando o mapa do grupo de conteúdo de origem
Você precisará criar um SourceAppxContentGroupMap.xml arquivo e, em seguida, usar o Visual Studio ou a ferramenta MakeAppx.exe para converter esse arquivo na versão final: AppxContentGroupMap.xml. É possível ignorar uma etapa criando o AppxContentGroupMap.xml do zero, mas é recomendável (e geralmente mais fácil) criar o SourceAppxContentGroupMap.xml e convertê-lo, já que curingas não são permitidos no AppxContentGroupMap.xml (e eles são realmente úteis).
Vamos percorrer um cenário simples em que a instalação do streaming de aplicativos é benéfica.
Digamos que você tenha criado um jogo, mas o tamanho do seu aplicativo final é superior a 100 GB. Isso levará muito tempo para ser baixado da Microsoft Store, o que pode ser inconveniente. Se você optar por usar a instalação de streaming de aplicativo, poderá especificar a ordem na qual os arquivos do aplicativo são baixados. Ao instruir a Loja a baixar primeiro os arquivos essenciais, o usuário poderá interagir com o seu aplicativo mais rapidamente, enquanto outros arquivos não essenciais são baixados em segundo plano.
Observação
O uso da instalação de aplicativos via streaming depende fortemente da organização de arquivos do aplicativo. É recomendável que você pense no layout de conteúdo do seu aplicativo em relação à instalação em streaming do aplicativo o mais rápido possível para simplificar a segmentação dos arquivos do aplicativo.
Primeiro, criaremos um SourceAppxContentGroupMap.xml arquivo.
Antes de entrarmos nos detalhes, aqui está um exemplo de um arquivo simples e completo SourceAppxContentGroupMap.xml :
<?xml version="1.0" encoding="utf-8"?>
<ContentGroupMap xmlns="http://schemas.microsoft.com/appx/2016/sourcecontentgroupmap"
xmlns:s="http://schemas.microsoft.com/appx/2016/sourcecontentgroupmap">
<Required>
<ContentGroup Name="Required">
<File Name="StreamingTestApp.exe"/>
</ContentGroup>
</Required>
<Automatic>
<ContentGroup Name="Level2">
<File Name="Assets\Level2\*"/>
</ContentGroup>
<ContentGroup Name="Level3">
<File Name="Assets\Level3\*"/>
</ContentGroup>
</Automatic>
</ContentGroupMap>
Há dois componentes principais em um mapa de grupo de conteúdo: a seção necessária , que contém o grupo de conteúdo necessário, e a seção automática , que pode conter vários grupos de conteúdo automáticos.
Grupo de conteúdo necessário
O grupo de conteúdo necessário é um único grupo de conteúdo dentro do <Required> elemento do SourceAppxContentGroupMap.xml. Um grupo de conteúdo necessário deve conter todos os arquivos essenciais necessários para iniciar o aplicativo com a experiência mínima do usuário. Devido à compilação nativa do .NET, todo o código (o executável do aplicativo) deve fazer parte do grupo necessário, deixando ativos e outros arquivos para os grupos automáticos.
Por exemplo, se o aplicativo for um jogo, o grupo necessário poderá incluir arquivos usados no menu principal ou na tela inicial do jogo.
Aqui está o trecho do nosso arquivo de exemplo original SourceAppxContentGroupMap.xml:
<Required>
<ContentGroup Name="Required">
<File Name="StreamingTestApp.exe"/>
</ContentGroup>
</Required>
Há algumas coisas importantes a serem observadas aqui:
- Dentro do elemento
<ContentGroup>, o<Required>deve ser chamado "Obrigatório". Esse nome é reservado apenas para o grupo de conteúdo necessário e não pode ser usado com nenhum outro no mapa final do grupo de conteúdo. - Só há um
<ContentGroup>. Isso é intencional, pois deve haver apenas um grupo de arquivos essenciais. - O arquivo neste exemplo é um único
.exearquivo. Um grupo de conteúdo necessário não está restrito a um arquivo, pode haver vários.
Uma maneira fácil de começar a escrever esse arquivo é abrir uma nova página no editor de texto favorito, fazer um rápido "Salvar como" do arquivo na pasta de projeto do aplicativo e nomear seu arquivo recém-criado: SourceAppxContentGroupMap.xml.
Importante
Se você estiver desenvolvendo um aplicativo C++, precisará ajustar as propriedades de arquivo de seu SourceAppxContentGroupMap.xml. Defina a Content propriedade como true e a File Type propriedade como Arquivo XML.
Quando você está criando o SourceAppxContentGroupMap.xml, é útil aproveitar o uso de curingas em nomes de arquivo. Para mais informações, consulte a seção Dicas e truques para usar curingas.
Se você desenvolveu seu aplicativo usando o Visual Studio, é recomendável que você inclua isso no grupo de conteúdo necessário:
<File Name="*"/>
<File Name="WinMetadata\*"/>
<File Name="Properties\*"/>
<File Name="Assets\*Logo*"/>
<File Name="Assets\*SplashScreen*"/>
Adicionar o nome de arquivo curinga único incluirá arquivos adicionados a partir do Visual Studio ao diretório do projeto, como o executável do aplicativo ou DLLs. As pastas WinMetadata e Properties devem incluir as outras pastas geradas pelo Visual Studio. Os curingas dos ativos devem selecionar as imagens de Logo e SplashScreen necessárias para que o aplicativo seja instalado.
Observe que você não pode usar o curinga duplo, "**", na raiz da estrutura do arquivo para incluir todos os arquivos no projeto, pois isso falhará ao tentar converter SourceAppxContentGroupMap.xml para o final AppxContentGroupMap.xml.
Também é importante observar que os arquivos de pegada (AppxManifest.xml, AppxSignature.p7x, resources.pri, etc.) não devem ser incluídos no mapa do grupo de conteúdo. Se os arquivos de rastreamento forem incluídos em um dos nomes de arquivo curinga especificados, eles serão ignorados.
Grupos de conteúdo automáticos
Grupos de conteúdo automático são os ativos baixados em segundo plano enquanto o usuário está interagindo com os grupos de conteúdo já baixados. Eles contêm arquivos adicionais que não são essenciais para iniciar o aplicativo. Por exemplo, você pode dividir grupos de conteúdo automáticos em diferentes níveis, definindo cada nível como um grupo de conteúdo separado. Conforme observado na seção de grupo de conteúdo necessária, devido à compilação nativa do .NET, todo o código (o executável do aplicativo) deve fazer parte do grupo necessário, deixando os recursos e outros arquivos para os grupos automáticos.
Vamos dar uma olhada mais de perto no grupo de conteúdo automático do nosso SourceAppxContentGroupMap.xml exemplo:
<Automatic>
<ContentGroup Name="Level2">
<File Name="Assets\Level2\*"/>
</ContentGroup>
<ContentGroup Name="Level3">
<File Name="Assets\Level3\*"/>
</ContentGroup>
</Automatic>
O layout do grupo automático é bastante semelhante ao grupo necessário, com algumas exceções:
- Há vários grupos de conteúdo.
- Grupos de conteúdo automático podem ter nomes exclusivos, exceto o nome "Obrigatório", que é reservado para o grupo de conteúdo necessário.
- Os grupos de conteúdo automáticos não podem conter arquivos do grupo de conteúdo necessário.
- Um grupo de conteúdo automático pode conter arquivos que também estão em outros grupos de conteúdo automático. Os arquivos serão baixados apenas uma vez e serão baixados com o primeiro grupo de conteúdo automático que os contém.
Dicas e truques para usar curingas
O layout do arquivo para mapas de grupo de conteúdo é sempre relativo à pasta raiz do projeto.
Em nosso exemplo, curingas são utilizados em cada um dos <ContentGroup> elementos para recuperar todos os arquivos em um único nível dos diretórios "Assets\Level2" ou "Assets\Level3". Se você estiver usando uma estrutura de pastas mais profunda, poderá empregar o curinga duplo:
<ContentGroup Name="Level2">
<File Name="Assets\Level2\**"/>
</ContentGroup>
Você também pode usar curingas junto ao texto para nomes de arquivo. Por exemplo, se você quiser incluir todos os arquivos na pasta "Ativos" com um nome de arquivo que contenha "Level2", poderá usar algo assim:
<ContentGroup Name="Level2">
<File Name="Assets\*Level2*"/>
</ContentGroup>
Converter SourceAppxContentGroupMap.xml em AppxContentGroupMap.xml
Para converter o SourceAppxContentGroupMap.xml para a versão final, AppxContentGroupMap.xml, você pode usar o Visual Studio 2017 ou a ferramenta de linha de comando MakeAppx.exe.
Para usar o Visual Studio para converter o mapa do grupo de conteúdo:
- Adicione o
SourceAppxContentGroupMap.xmlao seu projeto - Altere a ação de compilação de
SourceAppxContentGroupMap.xmlpara "AppxSourceContentGroupMap" na janela de Propriedades - Clique com o botão direito do mouse no projeto no gerenciador de soluções
- Navegar até o Repositório –> Converter Arquivo de Mapa do Grupo de Conteúdo
Se você não desenvolveu seu aplicativo no Visual Studio ou se preferir usar apenas a linha de comando, use a ferramenta MakeAppx.exe para converter seu SourceAppxContentGroupMap.xml.
Um comando MakeAppx.exe simples pode ter esta aparência:
MakeAppx convertCGM /s MyApp\SourceAppxContentGroupMap.xml /f MyApp\AppxContentGroupMap.xml /d MyApp\
A opção /s especifica o caminho para o SourceAppxContentGroupMap.xml, e /f especifica o caminho para o AppxContentGroupMap.xml. A opção final, /d, especifica qual diretório deve ser usado para expandir curingas de nome de arquivo, nesse caso, é o diretório do projeto do aplicativo.
Para obter mais informações sobre as opções que você pode usar com MakeAppx.exe, abra um prompt de comando, navegue até MakeAppx.exe e insira:
MakeAppx convertCGM /?
Isso é tudo o que você precisará para preparar sua AppxContentGroupMap.xml final para seu aplicativo! Ainda há mais a fazer antes que seu aplicativo esteja totalmente pronto para a Microsoft Store. Para obter mais informações sobre como adicionar a instalação de streaming ao seu aplicativo, confira esta página.