Compartilhar 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 de Aplicativos do Windows. Os conceitos a seguir se aplicam principalmente a aplicativos dependentes da estrutura do SDK de Aplicativos do Windows. Um aplicativo dependente de framework depende do tempo de execução do SDK do Aplicativo do Windows estar presente na máquina de destino.

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

Método de implantação de aplicativo Requisitos
Embalados – 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 sejam da Store para garantir que as dependências de runtime sejam instaladas.
Embalado com localização externa ou sem embalagem – Deve distribuir o runtime usando o Instalador ou instalando os pacotes MSIX necessários diretamente.
- Requisitos de tempo de execução adicionais: deve inicializar o acesso ao tempo de execução do SDK de Aplicativo do Windows por meio da API de Inicialização.

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 de Aplicativos do Windows e detalhes adicionais sobre alguns desses pacotes.

Prazo Definição
de runtime do SDK de Aplicativos do Windows Os pacotes MSIX exigidos por um aplicativo para usar o SDK de Aplicativos do 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 do Framework Contém binários usados em tempo de execução por aplicativos (a maioria dos recursos do SDK do Aplicativo do Windows). O framework inclui um componente bootstrapper que permite que os aplicativos instalem automaticamente a versão mais recente do SDK do Aplicativo do Windows, que será atualizada em uma cadência regular de lançamentos.
pacote principal Pacote que contém tarefas em segundo plano para controlar dependências dinâmicas e habilita 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 execução longa 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 para os pacotes MSIX enquanto um aplicativo empacotado com local externo ou não empacotado está em uso.
Inicializador Um binário local do aplicativo, utilizado por aplicativos empacotados com localização externa e por aplicativos descompactados, para localizar e carregar a melhor versão correspondente do SDK do Aplicativo Windows, conforme a necessidade do 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 pelos outros usuários. Ele pode ser feito como parte do sistema operacional ou feito durante a instalação de um aplicativo.
Instalador Refere-se ao instalador .exe que implanta os pacotes Framework, Main, Singleton e DDLM.
MSIX Tecnologia moderna do instalador que permite aos usuários instalar com segurança um aplicativo por usuário, diretamente da Microsoft Store ou de um site. Em computadores 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 de Aplicativo do Windows, seu aplicativo faz referência a um conjunto de componentes de tempo de execução do SDK de Aplicativo do Windows que são distribuídos aos usuários finais através de um pacote de estrutura de suporte . O pacote de estrutura permite que os aplicativos acessem componentes do SDK do Aplicativo windows por meio de uma única fonte compartilhada no dispositivo do usuário, em vez de agrupar-os no pacote do aplicativo. O pacote de framework também inclui seus próprios recursos, como DLLs e definições de API (registros de COM e Windows Runtime). Esses recursos são executados no contexto do seu aplicativo, portanto, herdam os recursos e privilégios do seu aplicativo e não declaram seus próprios recursos ou privilégios. Para obter mais informações sobre dependências de pacote de estrutura, consulte pacotes de estrutura MSIX e dependências dinâmicas.

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

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

Quando uma nova versão do pacote de estrutura do Windows App SDK é atualizada, todos os aplicativos dependentes da estrutura são atualizados para a nova versão sem eles mesmos precisarem redistribuir uma cópia. O Windows atualiza para a versão mais recente das estruturas conforme elas são lançadas, e os aplicativos referenciam automaticamente a versão mais recente do pacote da estrutura durante o relançamento. As versões mais antigas do pacote da estrutura não serão removidas do sistema até que não estejam mais em execução ou sejam usadas ativamente por aplicativos no sistema.

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

Como a compatibilidade do aplicativo é importante para a Microsoft e para aplicativos que dependem do SDK de Aplicativos do Windows, o pacote da estrutura do SDK do Aplicativo windows segue regras de de Versão Semântica 2.0.0. Isso significa que, depois de lançarmos a versão 1.0 do SDK do Aplicativo do Windows, o pacote da estrutura do SDK do Aplicativo windows garantirá a compatibilidade entre alterações de versão secundárias e de patch, e 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 longa duração possa lidar com serviços usados em vários aplicativos, os quais podem estar em execução em diferentes versões do SDK de Aplicativos do Windows.

O singleton do Windows App SDK é necessário para habilitar notificações push para aplicativos não empacotados e aplicativos Win32 empacotados que usam versões do Windows abaixo de 20H1, as quais não podem ser suportadas pela classe existente UWP PushNotificationTrigger e ToastNotificationActionTrigger. Os recursos futuros do SDK do Aplicativo do Windows que não têm suporte no 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 junto com seu app, seja ele empacotado com um recurso externo ou desempacotado. Ele fornece a API do bootstrapper (consulte Usar o runtime do SDK do Aplicativo Windows para aplicativos empacotados com local externo ounão empacotados), o que permite que aplicativos não empacotados executem estas tarefas importantes.

  • Inicialize o DDLM (Gerenciador de Tempo de Vida de Dependência Dinâmica) para o pacote do framework Windows App SDK.
  • Encontre e carregue o pacote de estrutura do Windows App SDK no grafo de pacotes do aplicativo.

Para realizar essas tarefas, o pacote NuGet utiliza inicializadores de módulo para configurar 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 do inicializador diretamente no código de inicialização do aplicativo (consulte Tutorial: Usar a API do inicializador em um aplicativo empacotado com local externo ou desempacotado que usa o SDK do Aplicativo Windows) para inicializar corretamente o sistema para o aplicativo desempacotado. Seu aplicativo deve usar a API bootstrapper antes de poder usar recursos do SDK do Aplicativo do Windows, como WinUI, Ciclo de vida do aplicativo, MRT Core e DWriteCore.

A biblioteca bootstrapper no lançamento do Windows App SDK 1.0 inclui:

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

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

A finalidade do DDLM é impedir a atualização do pacote de estrutura do SDK do Windows App enquanto ele está 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 framework do SDK de Aplicativos do Windows. Isso significa que, em um x64 computador, você pode ter uma versão x86 e uma versão x64 do DDLM para suportar aplicativos de duas arquiteturas.

Requisitos adicionais