Arquitetura de implantação e visão geral para aplicativos dependentes de estrutura
Este artigo explica uma arquitetura de alto nível de implantação de SDK do Aplicativo Windows. Os conceitos abaixo se aplicam principalmente a SDK do Aplicativo Windows aplicativos dependentes de 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 não Armazenados para garantir que as dependências de runtime estejam instaladas. |
Empacotado com local externo ou desempacotado | - 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 bootstrap. |
Para obter mais detalhes sobre esses requisitos, consulte os seguintes artigos:
- SDK do Aplicativo Windows guia de implantação para aplicativos empacotados dependentes de estrutura
- SDK do Aplicativo Windows guia de implantação para aplicativos dependentes de estrutura empacotados com local externo ou não empacotados
Principais termos
As seções a seguir definem termos-chave para SDK do Aplicativo Windows implantação e detalhes adicionais sobre alguns desses pacotes.
Termo | Definição |
---|---|
runtime SDK do Aplicativo Windows | 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 framework | Contém binários usados em tempo de execução por aplicativos (a maioria SDK do Aplicativo Windows recursos). 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 versão regular. |
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 longa execução que é intermediado entre aplicativos. |
Pacote DDLM (Dynamic Dependency Lifetime Manager) | 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. |
Bootstrapper | Um binário local do aplicativo usado pelo 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 de 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 que os usuários instalem 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 framework
Quando você cria um aplicativo que usa o SDK do Aplicativo Windows, seu aplicativo faz referência a um conjunto de SDK do Aplicativo Windows componentes de runtime 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 agrupar-os 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, 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 com facilidade e rapidez 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 em uma instância compartilhada do pacote de estrutura, conforme ilustrado no diagrama a seguir.
Quando uma nova versão do pacote SDK do Aplicativo Windows estrutura é atendida, todos os aplicativos dependentes da 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 conforme elas são lançadas, e os aplicativos referenciam automaticamente a versão mais recente do pacote de estrutura durante o relançamento. 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 sejam usadas ativamente por aplicativos no sistema.
Como a compatibilidade do aplicativo é importante para a Microsoft e para aplicativos que dependem do SDK do Aplicativo Windows, o pacote de estrutura de SDK do Aplicativo Windows segue regras de Versão Semântica 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 alterações significativas ocorrerão apenas entre as principais atualizações de versão.
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 diferentes versões 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 UWP PushNotificationTrigger e ToastNotificationActionTrigger existentes. Os recursos de SDK do Aplicativo Windows futuros 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 com seu 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), o que permite que aplicativos não empacotados executem estas tarefas importantes:
- Inicialize o DDLM (Dynamic Dependency Lifetime Manager) para o pacote de estrutura SDK do Aplicativo Windows.
- Localize e carregue o pacote SDK do Aplicativo Windows estrutura no grafo de pacote do aplicativo.
Para realizar essas tarefas, o pacote nuget aproveita inicializadores de módulo para conectar o inicializador de inicialização 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 desempacotado 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 estável do SDK do Aplicativo Windows 1.0 inclui:
- Microsoft.WindowsAppRuntime.Bootstrap.dll (C++ e C#)
- Microsoft.WindowsAppRuntime.Bootstrap.Net.dll (wrapper C#)
DDLM (Dynamic Dependency Lifetime Manager)
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 SDK do Aplicativo Windows. Isso significa que, em um x64
computador, você pode ter uma versão e x64
uma x86
versão do DDLM para dar suporte a aplicativos de ambas as arquiteturas.
Requisitos adicionais
- Para aplicativos empacotados, a dependência do pacote da estrutura VCLibs é um requisito. Para obter mais informações, consulte os pacotes de estrutura de runtime do C++ para Ponte de Desktop.
- Para aplicativos não empacotados, o Pacote Redistribuível do Visual C++ é um requisito. Para obter mais informações, consulte Microsoft Visual C++ downloads com suporte mais recentes redistribuíveis.
- C#. Para o runtime do .NET, consulte Baixar .NET.