Partilhar via


Guia de implantação do SDK de Aplicativo Windows para aplicativos empacotados dependentes da estrutura

Este artigo fornece orientação sobre a implantação de aplicativos empacotados dependentes da estrutura (consulte O que é MSIX?) que usam o SDK de Aplicativo Windows. O guia equivalente para outras opções de empacotamento dependentes de framework é o Guia de Implantação do SDK do Aplicativo Windows para apps dependentes de framework, empacotados com local externo ou não empacotados.

Overview

Por padrão, quando você cria um projeto usando um dos modelos WinUI 3 no Visual Studio, seu projeto é configurado para criar o aplicativo em um pacote MSIX usando MSIX de projeto único (consulte Empacotar seu aplicativo usando MSIX de projeto único) ou um projeto de empacotamento de aplicativos do Windows (consulte Configurar seu aplicativo de área de trabalho para empacotamento MSIX no Visual Studio). Em seguida, você pode criar um pacote MSIX para seu aplicativo usando as instruções em Empacotar um aplicativo da área de trabalho ou UWP no Visual Studio. Depois de criar um pacote MSIX para seu aplicativo, você tem várias opções para Gerenciar sua implantação do MSIX.

Para saber mais sobre os pacotes que seu aplicativo empacotado pode precisar quando usa o SDK de Aplicativo do Windows, consulte Arquitetura de implantação para o SDK de Aplicativo Windows. Estes incluem os pacotes Framework, Main e Singleton ; todas assinadas e publicadas pela Microsoft. Há dois requisitos principais para implantar um aplicativo empacotado:

  1. Implantar o pacote de estrutura de trabalho do SDK de Aplicações Windows.
  2. Chame a API de implantação.

Prerequisites

Implantar o pacote de estrutura do SDK de Aplicativo Windows

O pacote de estrutura do SDK de Aplicativo Windows contém os binários do SDK de Aplicativo Windows usados em tempo de execução e é instalado com seu aplicativo. A estrutura tem diferentes requisitos de implantação para diferentes canais do SDK de Aplicativo Windows.

Versão estável

Quando instala uma versão estável do pacote NuGet do Windows App SDK no seu computador de desenvolvimento, e cria um projeto usando um dos modelos de projeto WinUI 3 fornecidos, o manifesto do pacote gerado contém um elemento PackageDependency que especifica uma dependência do pacote framework.

No entanto, se construir manualmente o seu pacote de aplicação usando um Projeto de Empacotamento de Aplicações Windows separado, então deve declarar um PackageReference no seu Application (package).wapproj ficheiro, como segue:

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

Essa dependência de pacote garante que o pacote Framework seja instalado quando seu aplicativo for implantado em outro computador.

Versão de pré-visualização

Quando instala uma versão de pré-visualização do pacote NuGet do Windows App SDK no seu computador de desenvolvimento, uma versão de pré-visualização do pacote framework do Windows App SDK é implementada durante a compilação como uma dependência do pacote NuGet.

Chamar a API de implantação

Consulte também Inicializar o Windows App SDK.

A API de Implementação é fornecida pelo pacote framework do Windows App SDK e está disponível no espaço de nomes Microsoft.Windows.ApplicationModel.WindowsAppRuntime . O modelo de aplicativo do Windows não suporta a declaração de dependência nos pacotes Main e Singleton. A API de implantação é, portanto, necessária pelos seguintes motivos:

  1. Para implantar o pacote Singleton para recursos que não estão no pacote Framework (por exemplo, notificações por push).
  2. Para implantar o pacote Principal, que permite atualizações automáticas para o pacote Framework a partir da Microsoft Store.

Para aplicações empacotadas que não são distribuídas através da Loja, você, enquanto programador, é responsável por distribuir o pacote Framework. Recomendamos que você chame a API de implantação para que todas as atualizações de serviço críticas sejam entregues. Observe que, para usar recursos fora do pacote Framework (por exemplo, notificações por push), o pacote Singleton deve ser implantado (isso pode ser feito com a API de implantação ou redistribuindo os pacotes MSIX usando seu próprio método de instalação).

Important

No Windows App SDK versão 1.0, apenas as aplicações empacotadas que têm a confiança total ("full trust") ou que possuem a capacidade restrita de packageManagement estão autorizadas a utilizar a API de Implementação para instalar as dependências dos pacotes Principal e Singleton. O suporte para aplicativos empacotados de confiança parcial virá em versões posteriores.

Você deve chamar a API de Implantação depois que o processo do aplicativo for inicializado, mas antes que o aplicativo use os recursos de tempo de execução do SDK do Windows App que usam o pacote Singleton (por exemplo, notificações por push). Os principais métodos da API de Deployment são os métodos estáticos GetStatus e Initialize da classe DeploymentManager .

  • O método GetStatus devolve o estado atual de implementação do runtime do SDK da aplicação Windows que está atualmente carregado. Use esse método para identificar se há trabalho necessário para instalar pacotes de tempo de execução do SDK de aplicativos Windows antes que o aplicativo atual possa usar os recursos do SDK de aplicativos Windows.
  • O método Initialize verifica se todos os pacotes necessários estão presentes numa versão mínima exigida pelo runtime do SDK de aplicações Windows que está atualmente carregado. Se alguma dependência de pacote estiver faltando, o método tentará registrar esses pacotes ausentes. A partir do Windows App SDK 1.1, o método Inicialize também suporta a opção de forçar a implementação dos pacotes de runtime do Windows App SDK. Isso encerra quaisquer processos para os pacotes de execução Main e Singleton, pelo que interrompe os seus serviços (por exemplo, notificações push não serão entregues durante esse tempo). Deve chamar Initialize apenas uma vez. Não precisa de chamar o Inicialize para aplicações implementadas através dos comandos Start Without Debugging e Start Debugging no Visual Studio.

Important

O valor padrão da propriedade <WindowsAppSdkDeploymentManagerInitialize> Visual Studio é true. Por isso, se quiser chamar DeploymentManager.Initialize explicitamente, então defina <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> no ficheiro do seu projeto do Visual Studio.

Aplicativo de exemplo da API de implantação

Para orientações adicionais sobre como usar os métodos GetStatus e Initialize da classe DeploymentManager , explore a aplicação de exemplo disponível.

Corrigir erros de instalação

Se a API de Implantação encontrar um erro durante a instalação dos pacotes de tempo de execução do SDK de Aplicativo Windows, ela retornará um código de erro que descreve o problema.

Por exemplo, se a sua aplicação não for totalmente confiável, ou não tiver a capacidade restrita packageManagement , então receberá um código de erro ACCESS_DENIED . Para analisar outros códigos de erro que você pode encontrar e suas possíveis causas, consulte Solução de problemas de empacotamento, implantação e consulta de aplicativos do Windows.

Se o código de erro não fornecer informações suficientes, você poderá encontrar mais informações de diagnóstico nos logs de eventos detalhados (consulte Obter informações de diagnóstico).

Se você encontrar erros que não pode diagnosticar, arquive um problema no repositório GitHub WindowsAppSDK com o código de erro e os logs de eventos para que possamos investigar o problema.