Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo explica uma arquitetura de alto nível de implantação de SDK do Aplicativo Windows. Os conceitos a seguir se aplicam principalmente aos aplicativos dependentes da estrutura do SDK do Aplicativo Windows. Um aplicativo dependente da estrutura depende do SDK do Aplicativo Windows runtime que está presente no computador 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 runtime adicionais: Deve inicializar o acesso para o 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 da estrutura
- Guia de implantação do SDK do Aplicativo Windows para apps dependentes de framework empacotados com local externo ou desempacotados
Principais termos
As seções a seguir definem termos-chave para SDK do Aplicativo Windows implantação e detalhes adicionais sobre alguns desses pacotes.
| Prazo | 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 do Framework | Contém binários usados em tempo de execução por aplicativos (a maioria dos recursos do 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 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 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 de aplicativo usado por aplicativos empacotados e descompactados com localização externa para localizar e carregar a versão do SDK do Aplicativo Windows que melhor corresponde às necessidades do aplicativo. |
| Provisionamento | O processo de preparação de pacotes em todo o sistema para que qualquer usuário da máquina possa registrá-los e usá-los sem que seja necessário repetir a preparação por máquina. O provisionamento pode ser executado como parte da imagem do sistema operacional ou durante a implantação do aplicativo empresarial. |
| 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 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 framework. 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 agrupá-los no pacote do aplicativo. O pacote de framework 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 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 de estrutura do SDK do Aplicativo Windows é um pacote MSIX implantado em 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 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 de estrutura do SDK do Aplicativo Windows é atualizado, todos os aplicativos que dependem da estrutura são atualizados para a nova versão sem 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.
Como a compatibilidade do aplicativo é importante para a Microsoft e para aplicativos que dependem do SDK do Aplicativo Windows, o pacote da estrutura SDK do Aplicativo Windows segue as regras Semantic Versioning 2.0.0. Isso significa que, depois de lançarmos a versão 1.0 do SDK do Aplicativo Windows, o pacote da estrutura do SDK do Aplicativo Windows garantirá a compatibilidade entre alterações de versões menores e de patch, e alterações significativas ocorrerão apenas entre atualizações de versões 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 diferentes versões do SDK do Aplicativo Windows.
O singleton do SDK do Aplicativo Windows é necessário para habilitar notificações por push para aplicativos não empacotados e aplicativos Win32 empacotados em versões do Windows anteriores à 20H1, que não podem ser compatibilizados pelas classes UWP existentes PushNotificationTrigger e ToastNotificationActionTrigger. Os recursos de SDK do Aplicativo Windows futuros 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 Use o runtime de SDK do Aplicativo Windows para aplicativos empacotados com local externo ou desempacotados), que permite que aplicativos não empacotados executem essas tarefas importantes:
- Inicialize o DDLM (Dynamic Dependency Lifetime Manager) para o pacote da estrutura SDK do Aplicativo Windows.
- Localize e carregue o pacote da estrutura SDK do Aplicativo Windows para o grafo de pacotes do aplicativo.
Para realizar essas tarefas, o pacote NuGet aproveita auto-inicializadores para inicializar o bootstrapper para você. Basta definir <WindowsPackageType>None</WindowsPackageType> no 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: use 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 recursos do SDK do Aplicativo Windows, como WinUI 3, Ciclo de Vida do App, 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#)
Gerenciador de Tempo de Vida de Dependência Dinâmica (DDLM)
A finalidade do DDLM é impedir a manutenção do pacote de framework do SDK do Aplicativo Windows quando 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 x86 e uma versão x64 do DDLM para suportar aplicativos de duas arquiteturas.
Requisitos adicionais
- Para aplicativos empacotados, é necessário ter o pacote da estrutura VCLibs como dependência. Para obter mais informações, consulte pacotes de estrutura de tempo de execução do C++ para a Ponte Desktop.
- Para aplicativos não empacotados, o Redistribuível do Visual C++ é um requisito. Para obter mais informações, consulte os downloads mais recentes com suporte do Microsoft Visual C++ Redistributable.
- C#. Para o .NET runtime, consulte Download .NET.
Pipeline de implantação do MSIX
Quando você adiciona um pacote MSIX a um computador, o mecanismo de implantação processa a solicitação por três estágios:
| Stage | Scope | O que acontece |
|---|---|---|
| Índice | Por computador | Analisa o manifesto do pacote e registra metadados e o caminho de instalação pretendido |
| Etapa | Por computador | Cria o diretório do pacote, extrai conteúdo e aplica ACLs |
| Registrar | Por usuário | Associa o pacote em etapas a um usuário específico – cria entradas de menu Iniciar, associações de tipo de arquivo e dados de runtime |
A preparação é realizada uma vez por máquina; o registro é feito por usuário. Essa separação permite que um pacote seja disponibilizado (ou removido) para um usuário sem afetar outros usuários.
Note
O termo instalação é informal– não é um conceito formal no mecanismo de implantação MSIX. As solicitações de implantação usam a API PackageManager para submeter operações (Add, Stage, Register, Remove, entre outras) à fila de implantação. Veja Não existe “Instalação” — existem “Stage” e “Register” no blog Inside MSIX para uma explicação completa.
Tópicos relacionados
- SDK do Aplicativo Windows guia de implantação para aplicativos empacotados dependentes da estrutura
- Guia de implantação do SDK do Aplicativo Windows para apps dependentes de framework empacotados com local externo ou desempacotados
- Blog Inside MSIX — análises aprofundadas sobre a arquitetura do MSIX, a identidade do pacote, as operações de implantação e muito mais, da equipe de engenharia do MSIX
Windows developer