Informações
O tópico solicitado está sendo mostrado abaixo. No entanto, este tópico não está incluído nesta biblioteca.

Pacotes de aplicativos e implantação (aplicativos do Tempo de Execução do Windows)

Applies to Windows and Windows Phone

Como desenvolvedor, você não escreve rotinas para instalar ou desinstalar seu aplicativo do Tempo de Execução do Windows. Em vez disso, você empacota seu aplicativo e o envia para a Loja. Os usuários compram seu aplicativo da Loja como um pacote do aplicativo. O sistema operacional usa as informações do pacote do aplicativo para instalar o aplicativo por usuário e garantir que todos os vestígios do aplicativo sejam removidos do dispositivo depois que todos os usuários que instalaram o aplicativo o desinstalarem.

Um pacote do aplicativo é um contêiner que se baseia no padrão OPC (Open Packaging Conventions). O termo OPC define um método estruturado de armazenar dados e recursos para o aplicativo usando um arquivo ZIP padrão. Para saber mais sobre como usar o Microsoft Visual Studio para implantar pacotes de aplicativos, veja Implantando aplicativos do Tempo de Execução do Windows pelo Visual Studio.

A partir do Windows 8.1 e do Windows Phone 8.1, novos pacotes de aplicativos ajudam a otimizar o empacotamento e a distribuição de um aplicativo. E com os pacotes de recursos, você pode oferecer extras, como localização ou ativos para telas em alta resolução, para os clientes interessados. Isso sem afetar o espaço em disco, a largura de banda ou a experiência de compra no aplicativo dos demais clientes. Além disso, o link físico otimiza a instalação do seu aplicativo, eliminando a duplicação de dados ao não baixar o mesmo arquivo mais de uma vez.

Implantação do aplicativo do Tempo de Execução do Windows

O modelo de aplicativo do Tempo de Execução do Windows é um processo declarativo orientado por estado que inclui todos os dados e as instruções de instalação e atualização de um aplicativo em um único pacote. Nesse modelo declarativo, as operações de implantação são confiáveis. Os arquivos incluídos no pacote são imutáveis, ou seja, eles não foram modificados desde que foram disponibilizados no dispositivo. Como o proprietário do pacote não tem que escrever ações nem códigos personalizados, o número de pontos de falha é reduzido.

Durante o processo de atualização, uma nova versão do aplicativo é baixada e instalada no perfil do usuário, logo após a remoção da versão antiga do dispositivo. Ao contrário do Windows Installer, não existe um conceito de arquivos de patch nem de qualquer outro arquivo usado para implantar um aplicativo do Tempo de Execução do Windows.

  • Applies to Windows

Observação  

No Windows, como os aplicativos do Tempo de Execução do Windows são instalados no perfil de um usuário, cada usuário tem total controle sobre seus aplicativos da Windows Store. É possível instalar, atualizar e remover os aplicativos sem afetar nenhum outro aplicativo do usuário no dispositivo.

Para saber mais sobre implantação, veja Implantação para aplicativos do Tempo de Execução do Windows.

Pacotes de aplicativos do Tempo de Execução do Windows: .appx

Todos os componentes que definem um aplicativo do Tempo de Execução do Windows estão armazenados em um pacote de aplicativos do Tempo de Execução do Windows. Esse pacote de aplicativos do Tempo de Execução do Windows tem a extensão de arquivo .appx e é a unidade de instalação do aplicativo do Tempo de Execução do Windows. Os pacotes de aplicativos do Tempo de Execução do Windows são arquivos contêiner baseados em ZIP definidos como um subconjunto dos padrões OPC (Open Packaging Conventions) ISO e ECMA. Cada pacote de aplicativos do Tempo de Execução do Windows inclui os arquivos de carga do aplicativo e as informações necessárias para validar, implantar, gerenciar e atualizar o aplicativo. Em uma visão geral, cada pacote de aplicativos do Tempo de Execução do Windows contém estes itens:

Carga do aplicativo

Ativos e arquivos de código do aplicativo

Os arquivos de carga são os ativos e arquivos de código que você desenvolve ao criar seu aplicativo do Tempo de Execução do Windows.

Manifesto do aplicativo

Arquivo de manifesto do aplicativo (AppxManifest.xml)

O manifesto do aplicativo declara sua identidade, suas funcionalidades e as informações de implantação e atualização. Para saber mais sobre o arquivo de manifesto do aplicativo, veja Manifesto do pacote do aplicativo.

Mapa de blocos do aplicativo

Arquivo do mapa de blocos do pacote do aplicativo (AppxBlockMap.xml)

O arquivo do mapa de blocos lista todos os arquivos do aplicativo incluídos no pacote juntamente com os valores de hash criptográficos associados que o sistema operacional usa para validar a integridade do arquivo e otimizar uma atualização para o aplicativo. Para saber mais sobre o arquivo do mapa de blocos, veja Mapa de blocos do pacote do aplicativo.

Assinatura do aplicativo

Arquivo de assinatura digital do pacote do aplicativo (AppxSignature.p7x)

A assinatura do pacote do aplicativo garante que o pacote e o conteúdo não sejam modificados após serem assinados. Quando o certificado de autenticação é validado com um Certificado de Autoridades de Certificação Raiz Confiáveis, a assinatura também identifica quem assinou o pacote. O signatário do pacote normalmente é o fornecedor ou o autor do aplicativo.

Os itens mencionados acima compõem um aplicativo do Tempo de Execução do Windows totalmente autossuficiente, que pode ser implantado no Windows 8 e posterior e no Windows Phone 8.1 e posterior. Você cria a carga e os arquivos de manifesto para o seu aplicativo. Quando o Visual Studio empacota seu aplicativo, ele adiciona automaticamente o mapa de blocos e os arquivos de assinatura do aplicativo ao pacote. Mas você também pode usar os utilitários autônomos MakeAppx e SignTool para empacotar manualmente seu aplicativo. Estas seções descrevem como empacotar e implantar aplicativos do Tempo de Execução do Windows.

Identificador de pacote

Um dos aspectos mais importantes do pacote do aplicativo é a tupla de cinco partes que define o pacote. Essa tupla é conhecida como o identificador de pacote e consiste nos seguintes dados:

Name

Nome geral usado para o pacote do aplicativo. Por exemplo, "minhaEmpresa.meuPacote.meuAplicativo".

Observação  Esse nome não é necessariamente o que aparece no bloco do aplicativo.

Publisher

O fornecedor refere-se ao fornecedor do aplicativo do Tempo de Execução do Windows. Na maioria dos casos, o fornecedor é o mesmo da conta que foi usada para se registrar na conta de desenvolvedor.

Version

Um descritor de versão de quatro partes (principal.secundária.compilação.revisão) usado para operar versões futuras do aplicativo. Por exemplo, "1.0.0.0".

Observação  Use todas as quatro partes do descritor de versão.

ProcessorArchitecture

A arquitetura de destino do pacote do aplicativo. Este valor pode ser "x86", "x64", "arm" ou "neutral". Em muitos casos, esse campo pode ser "neutral" (neutro) para representar todas as arquiteturas.

ResourceID

Opcional.

Uma cadeia de caracteres especificada pelo fornecedor que descreve os recursos do pacote do aplicativo. Essa parte da tupla é usada principalmente quando o pacote do aplicativo tem ativos específicos a uma região, como idiomas.

Se você estiver criando o pacote manualmente, veja o elemento Identity.

Formato do pacote

Descrevemos aqui detalhes sobre pacotes do aplicativo, isto é, o formato de arquivo .appx.

Os pacotes do aplicativo são somente leitura

Embora os pacotes do aplicativo sejam baseados em um subconjunto do OPC, nós não recomendamos usar APIs existentes para manipular os arquivos OPC ou ZIP na hora de editar os pacotes do aplicativo. Após criar um pacote do aplicativo, trate-o como somente leitura. Os processos do Visual Studio e do MakeAppx que criam pacotes de aplicativos geram e adicionam automaticamente o arquivo AppxBlockMap.xml ao pacote. Se você mudar qualquer parte do conteúdo do pacote, precisará atualizar o arquivo de mapa de blocos do pacote para fazer a correspondência. Para criar um novo pacote e arquivo do mapa de blocos, gere novamente o pacote com o Visual Studio, o comando de pacote MakeAppx ou as APIs IAppxPackageWriter de código nativo do Windows 8.

Nomes de arquivo de carga do pacote do aplicativo

Para ficar de acordo com o OPC, os nomes de caminho de arquivo de todos os arquivos armazenados em um pacote do aplicativo devem ser compatíveis com o URI. Os caminhos de arquivo não compatíveis com URI precisam ser codificados por percentual ao serem armazenados no pacote do aplicativo e decodificados para o caminho do arquivo original quando extraídos do pacote. Por exemplo, imagine este arquivo de carga com um caminho e nome que incluem espaços inseridos e caracteres reservados de URI '[' e ']':


\my pictures\kids party[3].jpg

Quando você armazena esse arquivo de carga no pacote do aplicativo, o caminho para o arquivo passa a ser:


/my%20pictures/kids%20party%5B3%5D.jpg

O Visual Studio, o empacotador de aplicativo (MakeAppx), e as APIs de Pacote fazem automaticamente a codificação por percentual e a decodificação dos caminhos de arquivo. Se você tentar extrair os arquivos diretamente do pacote do aplicativo usando os utilitários ZIP ou as APIs gerais, os caminhos de arquivo poderão continuar codificados por percentual. Por isso, nós recomendamos que você extraia os arquivos do pacote do aplicativo usando o comando de desempacotamento MakeAppx ou as APIs IAppxPackageReader.

Capacidades do pacote do aplicativo

Os pacotes do aplicativo permitem aplicativos até os seguintes limites de capacidade:

Capacidade do pacoteMáximo
Contagem de arquivos100.000 arquivos
Tamanho do pacote100 GB

 

Nomes de arquivo e caminho reservados do pacote do aplicativo

Estes nomes de arquivo e caminho estão reservados, por isso, não os utilize nos arquivos de carga do aplicativo:

Nomes de arquivo e caminho reservadosUso
/AppxManifest.xmlNome de arquivo reservado para o manifesto do pacote do aplicativo criado pelo desenvolvedor
/AppxBlockMap.xmlNome de arquivo reservado para o mapa de blocos do pacote do aplicativo
/AppxSignature.p7xNome de arquivo reservado para a assinatura digital do Microsoft Authenticode do pacote do aplicativo
/[Content_Types].xmlNome de arquivo reservado para os metadados dos tipos de conteúdo necessários ao OPC para o pacote do aplicativo
/AppxMetadata/Caminho de pasta reservado para os arquivos de metadados do pacote do aplicativo
/Microsoft.System.Package.Metadata/Caminho de pasta reservado para os arquivos de metadados da Microsoft sobre os pacotes do aplicativo implantados

 

Assinaturas digitais de pacote do aplicativo

Você precisa assinar cada pacote do aplicativo para que os usuários possam instalá-los. Embora a assinatura de pacote de aplicativo seja parcialmente automatizada através do Authenticode, você precisa controlar os seguintes recursos ao assinar pacotes de aplicativos:

  • O nome da entidade do certificado de assinatura de código deve corresponder ao atributo Publisher especificado no elemento Identity do arquivo AppxManifest.xml no pacote do aplicativo.
  • O algoritmo de hash usado para assinar o pacote do aplicativo deve corresponder ao algoritmo de hash usado para gerar o arquivo AppxBlockMap.xml no pacote do aplicativo. Esse algoritmo de hash é especificado no atributo HashMethod do elemento BlockMap.
  • O pacote do aplicativo não pode ter um carimbo de data/hora independente da assinatura. O carimbo de data/hora deverá ser feito durante a assinatura, se desejado.
  • Os pacotes do aplicativo não permitem várias assinaturas envelopadas.

A assinatura de um pacote determina como será a licença do aplicativo do Tempo de Execução do Windows. O modo como um aplicativo é licenciado afeta sua instalação e execução, por isso, mesmo dois pacotes do aplicativo com o mesmo identificador de pacote podem não ser tratados como equivalentes durante a instalação. Por exemplo, você não poderá instalar um pacote do aplicativo com o mesmo identificador de pacote de outro aplicativo já instalado se ele não tiver também a mesma assinatura.

Instalação declarativa

A implantação do aplicativo do Tempo de Execução do Windows é um processo totalmente declarativo que utiliza o manifesto do pacote do aplicativo. Use o manifesto do pacote do aplicativo para capturar a integração desejada com o sistema operacional. Por exemplo, você usa o manifesto do pacote do aplicativo para declarar a necessidade de usar uma associação de tipo de arquivo, como .jpg, no sistema operacional.

Fazendo isso, o sistema operacional gerencia completamente o processo de implantação do aplicativo do Tempo de Execução do Windows, tornando a experiência consistente e confiável para cada usuário em diversos dispositivos. A instalação declarativa do aplicativo do Tempo de Execução do Windows também torna sua desinstalação determinística e capaz de ser repetida.

No manifesto do pacote do aplicativo, é possível declarar uma variedade de tecnologias como parte da instalação do aplicativo do Tempo de Execução do Windows.

Pré-requisitos do aplicativo

Para implantar um aplicativo com êxito, o sistema operacional deve atender a todos os pré-requisitos do aplicativo mencionados no manifesto do pacote do aplicativo. Por exemplo, se uma versão do sistema operacional expuser uma nova API que for chamada pelo aplicativo do Tempo de Execução do Windows, o aplicativo declarará um pré-requisito no sistema operacional dessa versão mínima específica. Nesse caso, o sistema operacional adequado deverá estar presente no dispositivo de destino antes da instalação do aplicativo. No Windows 8 e posterior e no Windows Phone 8.1 e posterior, você pode declarar esses tipos principais de pré-requisitos no manifesto do pacote do aplicativo:

OSMinVersion

Especifica a versão mínima do sistema operacional e a plataforma do modelo de aplicativo na qual o aplicativo tem permissão para ser executado.

OSMaxVersionTested

Especifica a versão máxima do sistema operacional em que o aplicativo foi testado pelo desenvolvedor e reconhecido em um estado de trabalho. Esse campo de pré-requisito é usado pelo sistema operacional para determinar se há algum problema de compatibilidade entre aplicativos que possa surgir durante o uso do aplicativo. Por exemplo, quando o aplicativo chama uma API do SDK do Windows 8 e a API já foi modificada em uma versão seguinte do sistema operacional, o aplicativo pode ter um comportamento inadequado. Esse campo de pré-requisito garante que o sistema operacional identifique e corrija esse comportamento para o aplicativo continuar funcionando em todas as versões seguintes do sistema operacional.

Funcionalidades

Os aplicativos do Tempo de Execução do Windows que precisam de acesso programático a recursos do usuário, por exemplo, a Imagens ou a dispositivos conectados (como uma webcam), devem declarar a funcionalidade apropriada. O aplicativo pede acesso declarando as funcionalidades em seu manifesto do pacote do aplicativo. Você pode declarar as funcionalidades usando o Designer de Manifesto no Visual Studio ou adicioná-las manualmente ao manifesto do pacote, conforme descrito em Como especificar funcionalidades em um manifesto do pacote. Para saber mais sobre as funcionalidades, veja Declarações de funcionalidades do aplicativo.

Dependências

A Loja hospeda um conjunto exclusivo de pacotes do aplicativo que inclui componentes do sistema operacional que funcionam de forma independente do sistema operacional. Os aplicativos do Tempo de Execução do Windows podem usar esses pacotes do aplicativo declarando uma dependência em seu manifesto do pacote do aplicativo. Esses componentes incluídos nos pacotes do aplicativo hospedados pela Loja são chamados de bibliotecas de componentes do sistema operacional. A Loja gerencia o processo de verificação da versão correta da biblioteca de componentes quando o aplicativo é instalado em um dispositivo. Essas bibliotecas, que incluem a Biblioteca do Windows para JavaScript, as Bibliotecas CRT (Em Tempo de Execução C++) e o PlayReady DRM, são essenciais para a criação dos aplicativos do Tempo de Execução do Windows. Quando um aplicativo é implantado da Loja, o sistema operacional cumpre com a declaração de dependência baixando e instalando a biblioteca de componentes adequada com o aplicativo que está sendo baixado da Loja.

  • Applies to Windows

Observação  Para aplicativos da Windows Store de sideload para teste ou implantação corporativa, o pacote do aplicativo da biblioteca de componentes do Windows tem de ser fornecido e especificado durante a implantação do pacote do aplicativo.

Pacotes de aplicativos

A partir do Windows 8.1 e do Windows Phone 8.1, você pode usar um pacote de aplicativos (ou pacote .appxbundle) para ajudar a otimizar o empacotamento e a distribuição de aplicativos do Tempo de Execução do Windows e de pacotes de recursos a usuários em todo o mundo.

Observação  Crie um pacote de aplicativo para todas as arquiteturas em vez de pacotes separados para cada arquitetura.

Você cria a carga do pacote de aplicativos para seu aplicativo. O Visual Studio cria e adiciona o manifesto do pacote. Quando o Visual Studio empacota seu aplicativo, ele divide automaticamente os recursos em pacotes separados e adiciona o mapa de blocos de aplicativos e os arquivos de assinatura ao pacote de aplicativos. Estes itens formam um aplicativo do Tempo de Execução do Windows totalmente autossuficiente, que pode ser implantado em sistemas a partir do Windows 8.1 e do Windows Phone 8.1.

Pacotes de aplicativos (.appx)

O pacote de aplicativos só pode conter mais de um pacote do aplicativo se cada um deles for destinado a uma arquitetura específica diferente. Por exemplo, ele pode conter um pacote x86.appx e um pacote amd64.appx, mas não dois pacotes amd64.appx.

Pacotes de recursos (.appx)

O pacote de aplicativos contém pacotes de recursos (arquivos .appx) para a linguagem, escala e nível de recurso DirectX. Cada pacote de aplicativos pode conter vários e diferentes pacotes de recursos para dar suporte a diversas configurações de dispositivos. Ao fazer referência direta a um pacote de recursos em seu aplicativo do Tempo de Execução do Windows, faça uso total do sistema de gerenciamento de recursos.

Observação  Os pacotes de recursos nunca devem conter código.

Manifesto do pacote de aplicativos (AppxBundleManifest.xml)

O manifesto do pacote de aplicativos (arquivo .appxbundlemanifest) contém todas as informações de aplicabilidade sobre os pacotes contidos nele. Para qualquer pacote específico, ele especifica o tipo de pacote (de "Aplicativo" ou de "Recurso"), além da versão e de informações de direcionamento de recursos. Especificamente para pacotes de aplicativos, o manifesto do pacote de aplicativos contém informações sobre a arquitetura.

Em geral, o manifesto do pacote de aplicativos permite que o modelo de aplicativo entenda o conteúdo do pacote de aplicativos e determina no momento da instalação qual pacote do aplicativo e quais pacotes de recursos devem ser instalados no dispositivo do usuário.

Aqui está um exemplo de um arquivo de manifesto do pacote de aplicativos.

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Bundle xmlns="http://schemas.microsoft.com/appx/2013/bundle" SchemaVersion="1.0">
  <Identity Name="Example" Publisher="CN=ExamplePublisher" Version="2013.101.312.1053"/>
  <Packages>
    <Package Type="application" Version="1.0.0.5" Architecture="x86" FileName="AppPackage_X86.appx" Offset="49" Size="3207">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="application" Version="1.0.0.4" Architecture="x64" FileName="AppPackage_X64.appx" Offset="3329" Size="3204">
      <Resources>
        <Resource Language="en-us"/>
        <Resource Scale="100" />
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.0" ResourceId="French" FileName="ResourcePackage_French.appx" Offset="6606" Size="1423">
      <Resources>
        <Resource Language="fr"/>
        <Resource Language="fr-fr"/>
        <Resource Language="fr-ca"/>
      </Resources>
    </Package>
    <Package Type="resource" Version="1.0.0.3" ResourceId="HiRes" FileName="ResourcePackage_HiRes.appx" Offset="8111" Size="1584">
      <Resources>
        <Resource Scale="140"/>
      </Resources>
    </Package>
  </Packages>
</Bundle>

Mapa de blocos do aplicativo (AppxBlockMap.xml)

O arquivo de mapa de blocos lista todos os arquivos incluídos no pacote (exceto pacotes do aplicativo e de recursos), juntamente com os valores de hash criptográficos associados que o sistema operacional usa para validar a integridade do arquivo e otimizar uma atualização para o aplicativo. Para saber mais sobre o arquivo do mapa de blocos, veja Mapa de blocos do pacote do aplicativo.

Assinatura do aplicativo (AppxSignature.p7x)

A assinatura do pacote de aplicativos garante que o pacote e seu conteúdo não foram modificados desde que foram assinados. Quando o certificado de autenticação é validado com um Certificado de Autoridades de Certificação Raiz Confiáveis, a assinatura também identifica quem assinou o pacote. O signatário do pacote normalmente é o fornecedor ou o autor do aplicativo.

Pacotes de recursos

A partir do Windows 8.1 e do Windows Phone 8.1, você pode usar o pacote de recursos para conter recursos adicionais para o aplicativo principal (por exemplo, ativos específicos para francês, como cadeias de caracteres ou imagens). Usando o pacote de recursos, você pode separar o pacote de aplicativos principal dos recursos adicionais. O pacote de recursos serve, assim, para adaptar a experiência geral do aplicativo sem a necessidade de download e instalação de todos os pacotes de recursos no dispositivo.

O pacote de recursos é opcional e não pode ser dependente do pacote do aplicativo. Isso quer dizer que o pacote do aplicativo deve conter pelo menos um conjunto de recursos padrão que podem ser usados sempre que não há nenhum pacote de recursos instalado no dispositivo. Isso ajuda a manter alguns aspectos-chave:

  • O pacote do aplicativo sempre pode ser instalado e executado corretamente em qualquer dispositivo sem pacotes de recursos.

  • Mesmo quando o pacote de recursos instalado não está completo, o pacote do aplicativo tem recursos para o fallback.

O pacote de recursos tem estas finalidades no modelo de aplicativo:

  • Fornece candidatos de recursos que o sistema de gerenciamento de recursos pode usar durante a execução do aplicativo para adaptar a experiência do aplicativo.

  • Fornece metadados para que o pacote de recursos possa se direcionar a um qualificador de recursos específico (por exemplo, idioma do usuário, escala do sistema e recursos do DirectX).

Pacotes de recursos podem ser direcionados para apenas um qualificador de recursos por pacote. No entanto, seu aplicativo pode ter muitos pacotes de recursos.

Os pacotes de recursos nunca devem conter código.

Link físico

A partir do Windows 8.1 e do Windows Phone 8.1, quando o SO instala o aplicativo, ele otimiza a instalação ao evitar baixar o mesmo arquivo mais de uma vez, sempre que possível. Ou seja, se o SO determinar que o seu aplicativo está usando um arquivo que já foi instalado antes no dispositivo, ele criará uma versão compartilhada desse arquivo e, em seguida, fará o link físico do aplicativo para a versão compartilhada. Isso reduz o tempo de instalação do aplicativo e o volume do disco. Esses arquivos compartilhados podem ser bibliotecas, tempos de execução e assim por diante. Para tirar proveito do link físico, recomendamos que você siga as práticas recomendadas. Por exemplo, tente reutilizar o mesmo do tempo de execução ou binários da biblioteca, sempre que possível, com cada versão do seu aplicativo, a menos que seja imprescindível atualizá-los.

  • Applies to Windows

Atualização do Windows 8.1:  Para a versão inicial do Windows 8.1, o link físico foi limitado a apenas aplicativos da Windows Store. Para a Atualização do Windows 8.1, o link físico ainda é habilitado entre aplicativos empresariais de sideload. Para saber mais sobre sideload, veja Implantando aplicativos empresariais.

Implantações por usuário

  • Applies to Windows

Observação  

As implantações dos aplicativos do Tempo de Execução do Windows são feitas por usuário, ou seja, afetam apenas a conta do usuário que os instalou. Além disso, em cenários multiusuário, os usuários não sabem o que foi instalado para os outros usuários. Por exemplo, imagine que o UsuárioA instalou o aplicativo Bloco de Notas da Microsoft, enquanto o UsuárioB instalou o aplicativo Calculadora. Nesse cenário, o UsuárioA e o UsuárioB não sabem dos outros aplicativos que foram instalados no mesmo computador (isolamento de aplicativo).

  • Applies to Windows

Observação  

O isolamento de aplicativo no sistema operacional só é limitado à parte do usuário do aplicativo do Tempo de Execução do Windows. Todos os outros dados do aplicativo são armazenados em um local que o sistema operacional pode acessar. Por exemplo, imagine que o UsuárioA e o UsuárioB instalaram o aplicativo Calculadora. Nesse cenário, apenas uma cópia dos binários do aplicativo Calculadora é armazenada na unidade (%ProgramFiles%\WindowsApps), e os dois usuários têm acesso. O UsuárioA não vê os dados do aplicativo do UsuárioB e vice-versa. Embora os binários em tempo de execução sejam compartilhados, os dados do aplicativo ainda estão isolados.

Não é possível alterar o diretório %ProgramFiles%\WindowsApps. Isso também inclui o diretório subjacente %ProgramFiles% além dos diretórios %ProgramData% e %UserProfile%.

  • Applies to Windows

Observação  

Além de incluir todos os binários dos aplicativos da Windows Store de todos os usuários no sistema, o diretório WindowsApps também contém várias versões do mesmo aplicativo da Windows Store. Por exemplo, imagine que ambos UsuárioA e UsuárioB instalaram o aplicativo Bloco de Notas; o UsuárioA atualizou para a versão 2 do aplicativo Bloco de Notas, mas o UsuárioB não. Nesse cenário, há duas versões do aplicativo Bloco de Notas no sistema operacional. Como somente uma versão foi instalada para cada usuário, as duas versões não entram em conflito.

Esse comportamento também ocorre em pacotes de dependência.

Implantação para aplicativos do Tempo de Execução do Windows

Estas seções descrevem o fluxo de instalação, atualização e remoção dos aplicativos do Tempo de Execução do Windows.

Instalando aplicativos do Tempo de Execução do Windows

Esta figura mostra o fluxo de instalação dos aplicativos do Tempo de Execução do Windows:

Fluxo de instalação de aplicativos da Windows Store

O processo de implantação do aplicativo do Tempo de Execução do Windows acontece em várias fases. Inicialmente, o SO obtém e valida o manifesto do aplicativo, o mapa de blocos do aplicativo e a assinatura do aplicativo. Em seguida, o SO verifica os critérios de implantação do pacote do aplicativo para garantir que a implantação do aplicativo seja bem-sucedida. Em seguida, o SO prepara os binários do pacote no diretório WindowsApps. Finalmente, o SO registra o pacote na conta do usuário.

Verificações de implantação (validação)

Esta figura mostra a fase em que o SO executa verificações de implantação:

Verificações de instalação de implantação

Depois que o usuário começa a instalar um aplicativo do Tempo de Execução do Windows, o SO tem de completar as verificações antes do início do processo de implantação:

O OSMinVersion precisa ser atendido

Você especifica os pré-requisitos do aplicativo no manifesto do pacote do aplicativo. Eles descrevem o requisito para que uma versão mínima específica do sistema operacional seja atendida. Para saber mais sobre os pré-requisitos do aplicativo, veja Pré-requisitos do aplicativo.

As dependências do aplicativo precisam ser atendidas

Os aplicativos do Tempo de Execução do Windows podem expressar uma dependência em outro pacote do aplicativo para mais funcionalidades que o aplicativo precisa. Para saber mais sobre as dependências do aplicativo, veja Dependências.

O espaço em disco precisa ser suficiente

Cada aplicativo do Tempo de Execução do Windows exige determinada quantidade de espaço em disco para ser implantado. Quando não há espaço em disco suficiente no dispositivo para implantar o pacote, a implantação falha.

O aplicativo ainda não foi implantado

No contexto do usuário específico que instalou o aplicativo do Tempo de Execução do Windows, o aplicativo não pode ser instalado novamente, por isso já deve ser verificado antes se o aplicativo não foi instalado.

Os ativos do aplicativo precisam ser aprovados na verificação de assinatura

Usando o BlockMap já validado, a integridade de cada arquivo no pacote do aplicativo deve ser verificada.

Preparo do pacote

Esta figura mostra a fase em que o SO prepara o pacote:

Preparo do pacote de implantação

Depois que o modelo de aplicativo determina que o pacote pode ser implantado no dispositivo, o SO armazena o conteúdo do pacote no disco no diretório %ProgramFiles%\WindowsApps em um novo diretório nomeado após o identificador de pacote:


<Package Name>_<Version>_<Architecture>_<ResourceID>_<Publisher Hash>

O processo de preparo ocorre através de um conjunto de solicitações feitas pelo mecanismo de implantação para a origem do local do pacote. Essas solicitações depois são atendidas pela origem e retornadas ao mecanismo de implantação onde são descompactadas, validadas com o BlockMap e copiadas para o arquivo adequado.

Registro do pacote

Esta figura mostra a fase em que o SO registra o pacote:

Registro do pacote de implantação

O registro do pacote é a fase final do processo de implantação. Durante essa fase, as extensões declaradas no manifesto são registradas no sistema operacional. Isso permite que o aplicativo seja completamente integrado ao sistema operacional. Por exemplo, se você deseja que seu aplicativo abra arquivos .txt, declare uma extensão de FileTypeAssociation como XML no manifesto do pacote do aplicativo e especifique .txt como tipo de arquivo. Na hora da implantação, esse XML é convertido no conjunto de alterações do sistema que precisam ser feitas para registrar adequadamente o aplicativo para trabalhar com arquivos .txt. Essas alterações depois são feitas em nome do aplicativo pelo modelo de aplicativo. O modelo de aplicativo permite várias extensões. Para saber mais sobre essas extensões, veja Contratos e extensões de aplicativo.

Atualizando aplicativos do Tempo de Execução do Windows

Esta figura mostra o fluxo de atualização de aplicativos do Tempo de Execução do Windows:

Atualização da implantação

O fluxo de trabalho de atualização é parecido com o do tópico Instalando aplicativos do Tempo de Execução do Windows, contudo, existem algumas diferenças importantes que tornam a atualização exclusiva.

Verificações de implantação para atualização

Esta figura mostra a fase em que o SO executa verificações de implantação na atualização:

Verificações de atualização de implantação

Se a versão do pacote do aplicativo que está instalada é superior ou igual a que o usuário está tentando instalar, a implantação não vai acontecer.

Preparo do pacote (downloads delta)

Esta figura mostra a fase em que o SO prepara o pacote atualizado:

Preparo de atualização de implantação

O processo de preparo durante a atualização é parecido com o processo de preparo normal durante a instalação. Mas a diferença principal é que a versão preexistente do pacote já está instalada no sistema operacional. Após a conclusão da instalação do pacote preexistente, um conjunto de arquivos de carga é baixado e copiado no dispositivo. Em muitos casos, vários desses arquivos de carga são iguais ou apresentam uma leve mudança na versão atualizada do pacote do aplicativo. Você pode usá-los para elaborar o conteúdo e os ativos do pacote do aplicativo atualizado. Como a estrutura do BlockMap do pacote do aplicativo inclui uma lista de hashes para cada bloco de cada arquivo, o SO consegue calcular o conjunto exato de alterações no nível do bloco através de uma comparação entre os arquivos do BlockMap do aplicativo novo e antigo. Veja os possíveis resultados dessa comparação:

Foi cancelada a alteração em um arquivo

O arquivo está vinculado fisicamente ao local da pasta do pacote atualizado.

Foi cancelada a alteração nos blocos de um arquivo

Os blocos inalterados são copiados para a pasta do pacote atualizado.

Foram alterados os blocos do arquivo

Os blocos alterados são marcados para download da origem.

Um arquivo interiro é novo

Todo o arquivo é baixado da origem.

Um arquivo não existe mais

O arquivo não é usado de forma alguma para a atualização.

Após o término da comparação, todos os dados que podem ser preservados são vinculados fisicamente ou copiados, e todos os dados novos são baixados da origem e usados para criar os arquivos atualizados.

Registro do pacote para atualização

Esta figura mostra a fase em que o SO registra o pacote atualizado:

Registro do pacote atualizado de implantação

Quando você atualiza o registro de um pacote, o SO também tem que atualizar os registros das versões anteriores. O modelo de aplicativo atualiza automaticamente todos os registros de extensões existentes, remove os registros obsoletos e registra novas extensões com base nas declarações que estão presentes nos manifestos das versões nova e antiga do aplicativo.

Aplicativos em uso

O processo de cancelamento de registro de um pacote do aplicativo no sistema operacional envolve a remoção dos internos que permitem ao SO iniciar o aplicativo do Tempo de Execução do Windows. Em alguns casos específicos, o aplicativo pode continuar em execução durante a atualização. Nesse cenário, o mecanismo de implantação pede para suspender e, em seguida, terminar o aplicativo. O processo de atualização é ou não bem-sucedido, dependendo do resultado dessa solicitação. Quando as operações são bem-sucedidas, o aplicativo também não pode ser iniciado durante o curto período em que acontece o registro do novo pacote do aplicativo e o cancelamento do registro do pacote antigo. Após o término dessa fase, o aplicativo pode ser novamente iniciado.

Dados do aplicativo

Os dados do aplicativo são uma entidade que inclui uma versão fora do aplicativo real do Tempo de Execução do Windows. Sendo assim, se a ApplicationData.Version não for atualizada durante a atualização do aplicativo do Tempo de Execução do Windows, o estado do aplicativo não vai ser afetado pela atualização do aplicativo do Tempo de Execução do Windows.

Cancelamento do preparo do pacote

Esta figura mostra a fase em que o SO cancela a preparação do pacote atualizado:

Cancelamento do preparo do pacote atualizado de implantação

Após o término bem-sucedido da operação de registro, se a versão preexistente do pacote não estiver sendo usada por nenhum outro usuário no sistema operacional, o pacote será marcado para remoção do sistema operacional. Inicialmente, o SO copia a pasta do pacote do aplicativo da versão preexistente para o diretório %ProgramFiles%\WindowsApps\Deleted. Quando nenhuma outra operação de implantação estiver em andamento, o SO excluirá a pasta do pacote do aplicativo da versão preexistente.

  • Applies to Windows

Observação  Nos cenários multiusuário, o pacote do aplicativo ainda pode continuar instalado no sistema operacional para outro usuário. Nesse caso, não será cancelada a preparação do conteúdo do pacote do sistema operacional enquanto todos os usuários não o removerem.

Removendo aplicativos do Tempo de Execução do Windows

Esta figura mostra o fluxo de remoção de aplicativos do Tempo de Execução do Windows:

Remoção de implantação

  • Applies to Windows

Observação  Assim como os pacotes são instalados por usuário no computador, eles também só são removidos por usuário. Quando o aplicativo da Windows Store é instalado para vários usuários, seu registro só é cancelado para o usuário atual. Por exemplo, quando o UsuárioA e o UsuárioB têm o aplicativo Calculadora instalado e o UsuárioA o desinstala, ele é removido apenas do UsuárioA, mas não do UsuárioB. O processo de remoção consiste nas mesmas fases básicas do processo de atualização.

Cancelamento do registro do pacote

Esta figura mostra a fase em que o SO cancela o registro do pacote removido:

Cancelamento do registro do pacote removido de implantação

O processo de cancelamento de registro é quando a integração do aplicativo do Tempo de Execução do Windows é removida da conta do usuário. Todos os dados associados que estavam instalados na conta do usuário, como estado do aplicativo, também são removidos. Assim como no processo de atualização, o mecanismo de implantação tem que pedir a suspensão e o término do aplicativo através do PLM (Gerenciador do Tempo de Vida de Processos) para o registro do aplicativo ser cancelado da conta do usuário.

Observação  Depois do retorno do PLM, a operação de remoção continua cancelando o registro do aplicativo do Tempo de Execução do Windows da conta do usuário. A operação continua mesmo em caso de falha do PLM.

Cancelamento do preparo do pacote

Esta figura mostra a fase em que o SO cancela a preparação do pacote removido:

Cancelamento do preparo do pacote removido de implantação

Após o término bem-sucedido da operação de cancelamento de registro, se o pacote não estiver sendo usado por nenhum outro usuário no sistema operacional, ele será marcado para remoção do sistema operacional. Inicialmente, o SO copia a pasta do pacote do aplicativo para o diretório %ProgramFiles%\WindowsApps\Deleted. Quando nenhuma outra operação de implantação estiver em andamento, o SO excluirá a pasta do pacote do aplicativo do pacote.

  • Applies to Windows

Observação  

Nos cenários multiusuário, o pacote do aplicativo ainda pode continuar instalado no sistema operacional para outro usuário. Nesse caso, não será cancelada a preparação do conteúdo do pacote do sistema operacional enquanto todos os usuários não o removerem.

Implantação de pacote de aplicativos

A partir do Windows 8.1 e do Windows Phone 8.1, você pode implantar pacotes de aplicativos para otimizar o empacotamento e a distribuição de seu aplicativo.

A implantação de pacotes de aplicativos através da Loja segue este fluxo de trabalho.

fluxo de empacotamento de aplicativos

O processo de implantação do aplicativo do Tempo de Execução do Windows acontece em várias fases. Inicialmente, o SO obtém e valida o manifesto do pacote de aplicativos, o mapa de blocos do pacote e a assinatura do pacote. Em seguida, o SO verifica o manifesto do pacote para ter certeza de que há um aplicativo que pode ser implantado na arquitetura atual. Quando o pacote do aplicativo certo é encontrado, o SO confirma os critérios de implantação do pacote do aplicativo para garantir que a implantação do aplicativo será bem-sucedida.

Em seguida, o SO determina o subconjunto de pacotes de recursos aplicáveis para implantação e prepara os binários desses pacotes para o diretório \WindowsApps\. Por fim, o SO registra o pacote do aplicativo e os pacotes de recursos na conta do usuário.

Validação

Depois que o usuário começa a instalar o aplicativo do Tempo de Execução do Windows, o SO deve fazer estas verificações para que a implantação possa ser iniciada.

TesteCondições

Suporte à arquitetura

O pacote pode conter até três pacotes de aplicativos da arquitetura específica, todos especificados no manifesto do pacote de aplicativos.

Versão mínima do sistema operacional

Você especifica os pré-requisitos no manifesto do pacote do aplicativo. Eles descrevem o requisito para uma versão mínima específica do sistema operacional. Por exemplo, para o Windows 8.1, o número de versão apropriado é 6.3. Para saber mais sobre os pré-requisitos do aplicativo, veja Pré-requisitos de empacotamento de aplicativos.

Dependências do aplicativo

Os aplicativos do Tempo de Execução do Windows podem expressar uma dependência em outro pacote de componentes para mais funcionalidades do que o aplicativo necessita. Para saber mais sobre dependências do aplicativo, veja Dependências de empacotamento do aplicativo.

Espaço em disco

Cada aplicativo do Tempo de Execução do Windows requer uma certa quantidade de espaço em disco para a implantação. Quando não há espaço em disco suficiente para implantar o pacote, a implantação falha.

Verificação de assinatura

Cada arquivo no pacote do aplicativo deve ter sua integridade verificada em relação ao BlockMap já validado.

 

Aplicabilidade do pacote

Depois que o SO verifica se o pacote de aplicativos pode ser implantado no sistema, ele determina os pacotes de recursos a serem implantados junto com o pacote do aplicativo para aperfeiçoar a experiência do usuário. A aplicabilidade é verificada com base nestes três qualificadores de recursos específicos.

QualificadorDescrição

Idioma do usuário

Todos os idiomas que o usuário adicionou à lista de idiomas preferenciais são considerados em relação ao conjunto final de pacotes de recursos de idioma aplicáveis que deve ser implantado. O Windows 8.1 e posterior e o Windows Phone 8.1 e posterior dão suporte a várias localidades e idiomas para pacotes de recursos.

Escala do sistema

Os valores de escala de todos os monitores serão usados para determinar o conjunto final de pacotes de recursos de escala aplicáveis que devem ser implantados. Para o Windows 8.1 e posterior e o Windows Phone 8.1 e posterior, recomendamos estes fatores de escala para pacotes de recursos:

Windows 8.1 e posterior:  escala-100, escala-140 e escala-180

Windows Phone 8.1 e posterior:  scale-100, scale-140 e scale-240

Nível de recursos do DirectX

Todos os níveis de recursos do DirectX disponíveis no sistema são usados para determinar o conjunto final de pacotes de recursos do DirectX aplicáveis que devem ser implantados. O Windows 8.1 e posterior e o Windows Phone 8.1 e posterior dão suporte a três níveis de recursos do DirectX para pacotes de recursos: DXFL-DX9, DXFL-DX10 e DXFL-DX11.

 

Preparo do pacote

Depois que o SO determina que o pacote de aplicativos pode ser implantado no sistema e quais pacotes devem ser implantados, o conteúdo do pacote é baixado para o diretório \WindowsApps\. Um novo diretório é criado para cada pacote baixado e é nomeado usando o valor de nome de identidade do pacote, como indicado a seguir.

<Package Name>_<Version>_<Architecture>_<ResourceID>_<Publisher Hash>

O processo de preparo ocorre através de um conjunto de solicitações feitas pelo mecanismo de implantação para a origem do local do pacote. Essas solicitações depois são atendidas pela origem e retornadas ao mecanismo de implantação onde são descompactadas, validadas com o BlockMap e copiadas para o arquivo adequado.

Registro do pacote

O registro do pacote é a fase final do processo de implantação. Nessa fase, ocorrem duas operações principais:

  • As extensões que são declaradas no manifesto do pacote do aplicativo são registradas no sistema operacional. Isso permite que o aplicativo seja profundamente integrado ao sistema operacional. Por exemplo, se você deseja que seu aplicativo abra arquivos de texto (.txt), declare uma extensão de FileTypeAssociation como XML no manifesto do pacote do aplicativo e especifique ".txt" como tipo de arquivo.

    Na hora da implantação, esse XML é convertido no conjunto de alterações do sistema necessárias para registrar adequadamente o aplicativo para trabalhar com arquivos .txt. Essas alterações são feita pelo modelo do aplicativo em nome do aplicativo. O modelo de aplicativo permite várias extensões. Para saber mais sobre essas extensões, veja Contratos e extensões de aplicativo.

  • Todos os pacotes de recursos são registrados no sistema de gerenciamento de recursos, que pode então usá-los para otimizar a experiência do usuário quando o aplicativo é executado.

Inventário dos pacotes

À medida que os aplicativos do Tempo de Execução do Windows são instalados, atualizados e removidos, um determinado usuário pode ver a qualquer momento os pacotes do aplicativo que estão instalados ou que já foram preparados.

  • Applies to Windows

Observação  Um usuário com privilégios de administrador também pode determinar os pacotes do aplicativo que estão instalados para todos os usuários no sistema. Para saber mais sobre como inventariar pacotes no sistema operacional, veja Ferramentas e cmdlets do PowerShell.

Perguntas frequentes

Como instalar vários pacotes simultaneamente?

Você pode instalar vários pacotes chamando as APIs de Empacotamento diversas vezes ou uma vez para todo o conjunto de pacotes a serem instalados. A implementação subjacente do modelo de aplicativo permite que vários pacotes do aplicativo aguardem a implantação. Mas somente são permitidas até três operações de preparo simultâneas por usuário (total de sete operações de preparo simultâneas por sistema operacional) e uma operação de registro por sistema operacional.

O que acontece se o pacote já está instalado?

Quando o pacote já está instalado, existe também um pacote com o mesmo identificador de pacote registrado na conta do usuário atual. Nesse cenário, o pacote idêntico não é instalado.

Uma atualização pode se tornar obrigatória?

Não é possível tornar uma atualização obrigatória através do modelo de aplicativo. O modelo de atualização é estritamente opcional. Em casos raros, a Loja pode julgar uma atualização apropriada para distribuição como uma atualização de prioridade mais alta (por exemplo, uma correção de segurança). Nesse caso, a atualização pode ser obrigatoriamente implantada nos clientes.

  • Applies to Windows

Observação  

Na empresa, você pode forçar uma atualização através de uma política de grupo.

Como reverter uma atualização para uma versão anterior?

Não é possível reverter um aplicativo do Tempo de Execução do Windows para uma versão anterior do aplicativo. Como os dados do pacote do aplicativo são removidos do sistema operacional logo após a desinstalação do pacote, não tem como restaurá-los.

É possível mover meus diretórios %ProgramFiles%, %ProgramData% ou %UserProfile%?

Esse cenário não é permitido nos aplicativos do Tempo de Execução do Windows e causa erros ao utilizá-los.

Empacotamento e implantação de interfaces de programação

Tempo de Execução do Windows

Win32/COM

 

 

Mostrar:
© 2014 Microsoft