Partilhar via


Arquitetura de implantação e visão geral para aplicativos dependentes de estrutura

Este artigo explica uma arquitetura de alto nível da implantação do SDK do Aplicativo Windows. Os conceitos a seguir se aplicam principalmente a SDK do Aplicativo Windows aplicativos dependentes da estrutura. Um aplicativo dependente de estrutura depende do runtime SDK do Aplicativo Windows estar presente no computador de destino.

Há duas opções principais para distribuir um aplicativo dependente de estrutura:

Método de implantação do aplicativo Requisitos
Empacotados - Deve declarar a dependência do pacote Framework no manifesto do pacote.
- A API de implantação é necessária para aplicativos distribuídos da Microsoft Store e recomendada para aplicativos distribuídos que não são da Store para garantir que as dependências de runtime sejam instaladas.
Empacotado com localização externa ou não empacotado - Deve distribuir o runtime usando o Instalador ou instalando os pacotes MSIX necessários diretamente.
- Requisitos adicionais de runtime: deve inicializar o acesso ao runtime SDK do Aplicativo Windows por meio da API de Bootstrap.

Para obter mais detalhes sobre esses requisitos, consulte os seguintes artigos:

Principais termos

As seções a seguir definem os principais termos para a implantação do SDK do Aplicativo Windows e detalhes adicionais sobre alguns desses pacotes.

Termo Definição
SDK do Aplicativo Windows runtime Os pacotes MSIX exigidos por um aplicativo para usar o SDK do Aplicativo Windows. Esses pacotes incluem: Framework, Main, Singleton e DDLM. Dependendo dos recursos usados e do método de implantação do aplicativo, você precisará de um determinado conjunto desses pacotes no computador de destino.
Pacote de estrutura Contém binários usados em tempo de execução por aplicativos (a maioria dos recursos SDK do Aplicativo Windows). A estrutura inclui um componente bootstrapper que permite que os aplicativos instalem automaticamente a versão mais recente do SDK do Aplicativo Windows, que será atualizada em uma cadência de lançamento regular.
Pacote principal Pacote que contém tarefas em segundo plano para acompanhar dependências dinâmicas e permite atualizações automáticas para o pacote Framework da Microsoft Store.
Pacote Singleton Contém tarefas em segundo plano, serviços, extensões de aplicativo e outros componentes não incluídos no pacote Framework, como notificações por push. Geralmente, esse é um único processo de longa duração que é intermediado entre aplicativos.
Pacote DDLM (Gerenciador de Tempo de Vida de Dependência Dinâmica) Impede que o sistema operacional execute atualizações de manutenção nos pacotes MSIX enquanto um aplicativo empacotado com local externo ou não empacotado estiver em uso.
Bootstrapper Um binário local de aplicativo usado por empacotado com localização externa e aplicativos não empacotados para localizar e carregar a melhor correspondência de versão SDK do Aplicativo Windows conforme necessário pelo aplicativo.
Provisionamento O processo de instalação e registro de pacotes (incluindo arquivos e chaves do Registro) em todo o sistema para eliminar a necessidade de instalação repetida por outros usuários. Isso pode ser feito como parte do sistema operacional ou durante a instalação de um aplicativo.
Instalador Refere-se ao instalador .exe que implanta os pacotes Framework, Main, Singleton e DDLM.
MSIX Tecnologia de instalador moderno que permite aos usuários instalar com segurança um aplicativo por usuário, diretamente da Microsoft Store ou de um site. Em PCs corporativos ou compartilhados, os aplicativos podem ser instalados para todos os usuários por meio do PowerShell e do MDM.

Pacote de estrutura

Quando você cria um aplicativo que usa o SDK do Aplicativo Windows, seu aplicativo faz referência a um conjunto de componentes de runtime SDK do Aplicativo Windows que são distribuídos aos usuários finais por meio de um pacote de estrutura. O pacote de estrutura permite que os aplicativos acessem SDK do Aplicativo Windows componentes por meio de uma única fonte compartilhada no dispositivo do usuário, em vez de agrupá-los no pacote do aplicativo. O pacote de estrutura também carrega seus próprios recursos, como DLLs e definições de API (registros COM e Windows Runtime). Esses recursos são executados no contexto do seu aplicativo, portanto, eles herdam os recursos e privilégios do seu aplicativo e não declaram nenhum recurso ou privilégio próprio. Para saber mais sobre as dependências do pacote de estrutura, confira Pacotes de estrutura do MSIX e dependências dinâmicas.

O pacote de estrutura SDK do Aplicativo Windows é um pacote MSIX implantado para usuários finais por meio da Microsoft Store. Ele pode ser atualizado de forma fácil e rápida com versões de manutenção, que podem incluir correções de segurança e confiabilidade. Todos os aplicativos dependentes de estrutura que usam o SDK do Aplicativo Windows têm uma dependência de uma instância compartilhada do pacote de estrutura, conforme ilustrado no diagrama a seguir.

Diagrama de como os aplicativos acessam o pacote de estrutura SDK do Aplicativo Windows

Quando uma nova versão do pacote de estrutura SDK do Aplicativo Windows é atendida, todos os aplicativos dependentes de estrutura são atualizados para a nova versão sem precisar redistribuir uma cópia. O Windows atualiza para a versão mais recente das estruturas à medida que são lançadas, e os aplicativos farão referência automaticamente à versão mais recente do pacote de estrutura durante a reinicialização. As versões mais antigas do pacote de estrutura não serão removidas do sistema até que não estejam mais em execução ou sendo usadas ativamente por aplicativos no sistema.

Diagrama de como os aplicativos obtêm atualizações para o pacote de estrutura SDK do Aplicativo Windows

Como a compatibilidade de aplicativos é importante para a Microsoft e para aplicativos que dependem do SDK do Aplicativo Windows, o pacote de estrutura SDK do Aplicativo Windows segue as regras do Controle de Versão Semântico 2.0.0 . Isso significa que, depois de lançarmos a versão 1.0 do SDK do Aplicativo Windows, o pacote de estrutura SDK do Aplicativo Windows garantirá a compatibilidade entre alterações de versão secundárias e de patch, e as alterações significativas ocorrerão somente entre as atualizações de versão principais.

Pacote Singleton

O pacote singleton garante que um único processo de execução longa possa lidar com serviços usados em vários aplicativos, que podem estar em execução em versões diferentes do SDK do Aplicativo Windows.

O singleton SDK do Aplicativo Windows é necessário para habilitar notificações por push para aplicativos não empacotados e aplicativos Win32 empacotados usando versões do Windows abaixo de 20H1, que não podem ser suportadas pela classe PushNotificationTrigger e ToastNotificationActionTrigger UWP existente. SDK do Aplicativo Windows futuros recursos que não podem ser suportados pelo pacote Framework serão adicionados ao pacote Singleton.

Requisitos adicionais para aplicativos não empacotados

Bootstrapper

O bootstrapper é uma biblioteca que deve ser incluída no seu pacote com local externo ou aplicativo não empacotado. Ele fornece a API bootstrapper (consulte Usar o runtime SDK do Aplicativo Windows para aplicativos empacotados com local externo ou não empacotados), que permite que aplicativos não empacotados executem estas tarefas importantes:

  • Inicializar o gerenciador de vida útil de dependência dinâmica (DDLM) para o pacote de estrutura do SDK do Aplicativo Windows.
  • Procurar e carregar o pacote de estrutura do SDK do Aplicativo Windows no gráfico de pacotes do aplicativo.

Para realizar essas tarefas, o pacote nuget aproveita os inicializadores de módulo para conectar o bootstrapper para você. Basta definir <WindowsPackageType>None</WindowsPackageType> em seu arquivo de projeto. Em cenários avançados, se você quiser controlar a inicialização, poderá chamar a API bootstrapper diretamente no código de inicialização do aplicativo (consulte Tutorial: Usar a API bootstrapper em um aplicativo empacotado com local externo ou não empacotado que usa o SDK do Aplicativo Windows) para que ele possa inicializar corretamente o sistema para o aplicativo não empacotado. Seu aplicativo deve usar a API bootstrapper antes de poder usar SDK do Aplicativo Windows recursos como WinUI, ciclo de vida do aplicativo, MRT Core e DWriteCore.

A biblioteca bootstrapper na versão SDK do Aplicativo Windows 1.0 inclui:

  • Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ e C#)
  • Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (wrapper C#)

DDLM (Gerenciador de Tempo de Vida de Dependência Dinâmica)

A finalidade do DDLM é impedir a manutenção do pacote de estrutura SDK do Aplicativo Windows enquanto ele estiver em uso por um aplicativo não empacotado. Ele contém um servidor que deve ser inicializado pelo bootstrapper no início da inicialização de um aplicativo para fornecer essa funcionalidade.

Há um DDLM para cada versão e arquitetura do pacote de estrutura do SDK do Aplicativo Windows. Isso significa que, em um computador x64, você pode ter uma versão x86 e x64 do DDLM para oferecer suporte a aplicativos de ambas as arquiteturas.

Requisitos adicionais