Como o Visual Studio gera um manifesto do pacote do aplicativo
quando você cria um projeto com Visual Studio, Visual Studio gera um manifesto de pacote (AppxManifest.xml), que contém informações que o sistema precisa para implantar, exibir ou atualizar um aplicativo Plataforma Universal do Windows (UWP).
Há duas variedades de arquivos de manifesto de pacote de aplicativo que você encontrará se estiver desenvolvendo um aplicativo com Visual Studio
- Package.appxmanifest
Esse é um arquivo de estilo XML que os desenvolvedores usam para configurar os detalhes de um aplicativo, como informações do Publicador, logotipos, arquiteturas de processador, etc. Essa é uma versão temporária e facilmente configurável do manifesto do pacote de aplicativo usado durante o desenvolvimento do aplicativo. - AppxManifest.xml
esse arquivo é gerado pelo processo de compilação Visual Studio e é baseado nas informações no arquivo Package. appxmanifest. Esta é a versão final do manifesto do pacote de aplicativo usada com aplicativos publicados e Sideload. Se alguma atualização for feita no arquivo Package. appxmanifest, você deverá recompilar o projeto para ver as atualizações no arquivo de AppxManifest.xml.
Para obter uma visão geral do processo de empacotamento, consulte empacotar um aplicativo UWP com Visual Studio.
Validando o manifesto de aplicativo
Para poder publicar seu aplicativo, é preciso corrigir todos os erros que causam a falha das verificações de validação do Visual Studio. Quando o Visual Studio gera o manifesto, ele valida o aplicativo das seguintes maneiras:
- Validação sintática
O Visual Studio confirma se todos os dados no manifesto de aplicativo estão de acordo com o esquema do manifesto de aplicativo. - Validação semântica
O Visual Studio fornece diretrizes sobre dados esperados com base no contexto das informações.
Observação
Se essas seções não mencionarem o campo que você está procurando, elas serão geradas a partir de ambos os dados que podem ter sido configurados separadamente ou um valor padrão do esquema de manifesto.
Gerando o conteúdo de manifesto
Visual Studio popula os campos nas tabelas a seguir ao gerar o arquivo de AppxManifest.xml para o pacote do aplicativo.
Identidade
A Identity
seção do manifesto do aplicativo contém os campos a seguir.
Campo | Descrição |
---|---|
Nome | O nome do pacote, que é populado de forma diferente nos seguintes cenários:
|
Publicador | O nome do publicador. O nome é preenchido de maneira diferente nos seguintes cenários:
|
Versão | A versão do aplicativo que está sendo compilado. Normalmente, isso é incrementado sempre que o aplicativo é modificado e empacotado. Para garantir que o Version seja incrementado corretamente, use a caixa de diálogo fornecida ao invocar Store- > create app Packages... para fazer atualizações. |
ProcessorArchitecture | Um valor que é gerado com base na configuração de compilação que você especificou para o projeto. Se referências de projeto ou referências de arquivo no projeto direcionarem uma arquitetura específica diferente do pacote do aplicativo, um erro de compilação será gerado e você deverá alterar a arquitetura de destino do pacote do aplicativo para que ele funcione para todas as referências. |
Aqui está um exemplo do XML de Identity
saída:
<Identity Name="Microsoft.UWPAppExample"
Publisher="CN=Microsoft Corporation"
Version="1.0.0.0"
ProcessorArchitecture="x86" />
Propriedades
A Properties
seção do manifesto do aplicativo contém os campos na tabela a seguir.
Campo | Descrição |
---|---|
PublisherDisplayName | Essa cadeia de caracteres é preenchida de forma diferente nos seguintes cenários:
|
DisplayName | A cadeia de caracteres é preenchida de maneira diferente nos seguintes cenários:
|
Logotipo | um modelo de Visual Studio será usado Assets\StoreLogo.png por padrão. Esse valor deve ser personalizado pelo desenvolvedor no arquivo Package. appxmanifest. |
Aqui está um exemplo do XML de Properties
saída:
<Properties>
<DisplayName>UWP App Example</DisplayName>
<PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
Aplicativo
Um manifesto de aplicativo pode conter vários Application
elementos, cada um com um nome de exibição que aparece no bloco no cliente. A Application
seção do manifesto do aplicativo contém os campos na tabela a seguir.
Campo | Descrição |
---|---|
ID | A cadeia de caracteres é preenchida de maneira diferente nos seguintes cenários:
|
Executável | O valor desse campo é o nome de saída do assembly do projeto. O token executável $targetnametoken $.exe usado no arquivo de manifesto de origem (Package. appxmanifest) é substituído pelo nome real do arquivo quando o manifesto é compilado. |
EntryPoint | Esse valor se baseia nos valores gerados Executable e Id . |
Exemplo Application
de saída:
<Applications>
<Application Id="App" Executable="UWPAppExample.exe" EntryPoint="UWPAppExample.App">
<!-- Other elements configured within the Application, such as Extensions, VisualElements, etc. -->
</Applications>
PackageDependency
a PackageDependency
seção contém todas as dependências de biblioteca de componentes Windows para este pacote. por exemplo, se o seu projeto tiver uma referência a WinJS, Visual Studio recuperará as informações de identidade do pacote das dependências quando o manifesto for gerado. em seguida, Visual Studio preenche esta seção com os Name
campos e MinVersion
para cada pacote dependente.
em um projeto C++ nativo, Visual Studio adicionará uma referência ao tempo de execução do Visual C/C++:
<Dependencies>
<PackageDependency Name="Microsoft.VCLibs.140.00.Debug" MinVersion="14.0.30035.0" Publisher="CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US" />
</Dependencies>
extensões de registro de Windows Runtime
você pode implementar Windows Runtime componentes para seus aplicativos, mas precisará registrar esses componentes com o sistema operacional para que eles sejam executados corretamente. para registrar um componente Windows Runtime, você deve colocar as informações de registro nos arquivos WinMD e no manifesto do aplicativo. se um projeto implementar um componente Windows Runtime, a saída da compilação do projeto conterá um arquivo WinMD. Visual Studio extrai as informações de registro de Windows Runtime do arquivo WinMD e gera os elementos apropriados Extension
no manifesto do aplicativo.
O sistema dá suporte a duas formas de servidores: servidores .dll (em processo) e servidores .exe (fora de processo). Esses servidores exigem informações de registro semelhantes, mas diferentes, que devem ser copiadas para o manifesto de aplicativo. O Visual Studio dá suporte à geração de manifesto apenas para servidores .dll, e a extensão DLLServer é obrigatória para registrar servidores .dll. Os seguintes valores no manifesto de aplicativo são utilizados dos arquivos WinMD para construir a Extensão DLLServer:
- DllPath
- ActivatableClassId
- ThreadingModel
- ActivatableClass (atributo ActivatableClassId)
Aqui está um exemplo do XML de saída:
<extension category="Microsoft.Windows.ActivatableClass">
<dllServer>
<dllPath>Fabrikam.dll</dllPath>
<activatableClass activatableClassId="Fabrikam.MyClass" threadingModel="sta" />
</dllServer>
</extension>
Para obter mais informações sobre este tópico, consulte Windows Runtime componentes.
Recursos
A Resources
seção contém uma entrada para cada idioma compatível com o aplicativo. Você deve ter pelo menos um idioma de recurso especificado no manifesto do aplicativo. O Visual Studio gera automaticamente a lista de idiomas compatíveis com base nas informações de localização no projeto. O token de linguagem de recurso "x-generate" usado no arquivo de manifesto de origem (Package.appxmanifest) é substituído pelo código de idioma real quando o manifesto é criado. Aqui está um exemplo do XML de saída:
<Resources>
<Resource Language="en-us">
<Resource Language="fr-fr">
</Resources>
A primeira entrada na lista é o idioma padrão para o aplicativo.
TargetDeviceFamily
A TargetDeviceFamily
seção contém os seguintes campos:
- Nome
- MinVersion
- MaxVersionTested
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.22000.0" />
</Dependencies>
Esses elementos são populados de MSBuild propriedades.
Confira também
Empacotar um aplicativo UWP com o Visual Studio
Arquiteturas de pacote do aplicativo
Referência do esquema de manifesto de pacote do Windows 10