Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este artigo mostra como configurar uma aplicação que não está instalada usando o MSIX (ou seja, está empacotada com localização externa ou não empacotada) para usar a API bootstrapper, de modo a carregar explicitamente o runtime do Windows App SDK e chamar as APIs do Windows App SDK. As aplicações que não são instaladas através do MSIX incluem aplicações empacotadas com localização externa e aplicações não embaladas.
Importante
A partir do Windows App SDK 1.0, a abordagem padrão para carregar o Windows App SDK a partir de uma aplicação empacotada com localização externa ou não empacotada é usar autoinicialização através da propriedade de projeto <WindowsPackageType> (bem como fazer alterações adicionais na configuração). Para os passos envolvidos na autoinicialização no contexto do WinUI 3 project, veja Crie o seu primeiro WinUI project. Ou, se tiveres um projeto existente que não seja o WinUI, então vê Usa o Windows App SDK num projeto existente.
Se tiver necessidades avançadas (como gestão personalizada de erros ou carregar uma versão específica do Windows App SDK), então pode chamar explicitamente a API do bootstrapper. E é essa a abordagem que este tópico demonstra. Além disso, para mais informações, veja Use o tempo de execução Windows App SDK para aplicações empacotadas com localização externa ou não empacotadas.
Este tópico demonstra como chamar explicitamente a API bootstrapper a partir de um projeto básico de aplicação de linha de comandos. Os passos aplicam-se a qualquer aplicação de ambiente de trabalho não empacotada que utilize o Windows App SDK.
Antes de concluir este tutorial, recomendamos que reveja Runtime architecture para saber mais sobre a dependência de pacotes Framework que a sua aplicação assume ao usar o Windows App SDK, bem como os componentes adicionais necessários para funcionar numa aplicação empacotada com localização externa ou não empacotada.
Pré-requisitos
- Instalar ferramentas para o Windows App SDK.
- Certifique-se de que todas as dependências para aplicações embaladas com localização externa e não empacotadas estão instaladas (ver guia de implementação Windows App SDK para aplicações dependentes do framework empacotadas com localização externa ou não empacotadas). Uma forma fácil de fazer isso é executar o instalador do tempo de execução do Windows App SDK.
Instruções
Podes seguir este tutorial usando um project em C# ou C++.
Observação
As dependências dinâmicas e as APIs de bootstrapper falham quando chamadas por um processo elevado. Como resultado, o Visual Studio não deveria ser lançado de forma elevada. Veja Dependências Dinâmicas não suporta elevação #567 para mais detalhes.
Siga estas instruções para configurar um project WinUI em C# que seja empacotado com localização externa ou não empacotado.
No Visual Studio, crie um novo projeto de aplicação de consola C#. Nomeie o projeto DynamicDependenciesTest. Depois de criares o projeto, deves ter uma aplicação de consola C# "Olá, Mundo!".
De seguida, configura o teu projeto.
- Em Solution Explorer, clique com o botão direito do rato no seu projeto e escolha Editar ficheiro de projeto.
- Substitua o valor do elemento TargetFramework por um Target Framework Moniker. Por exemplo, use o seguinte se a sua aplicação tiver como alvo o Windows 10, versão 2004.
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>- Guarde e feche o ficheiro do project.
Altere a plataforma da sua solução para x64. O valor predefinido numa .NET project é AnyCPU, mas o WinUI não suporta essa plataforma.
- Selecione Build>Configuration Manager.
- Selecione a lista suspensa sob Plataforma de solução ativa e clique em Nova para abrir a caixa de diálogo Nova Plataforma de Solução.
- Na lista suspensa em , escolha ou introduza a nova plataforma, e selecione x64.
- Clique OK para fechar a caixa de diálogo Nova Plataforma de Solução.
- Em Configuration Manager, clique em Fechar.
Instale o pacote NuGet do Windows App SDK no seu projecto.
- Em Solution Explorer, clique com o botão direito no nó Dependências e escolha Gerir Pacotes Nuget.
- Na janela NuGet Package Manager, selecione o separador Browse e instale o pacote Microsoft.WindowsAppSDK.
Agora está pronto para usar a API do Bootstrapper (veja Use o tempo de execução do Windows App SDK para aplicações com localização externa ou não empacotadas) para adquirir dinamicamente uma dependência do pacote de framework do Windows App SDK. Isto permite-lhe usar as APIs do Windows App SDK na sua aplicação.
Abra o arquivo de código Program.cs e substitua o código padrão pelo código a seguir para chamar o Bootstrap.Initialize método para inicializar o bootstrapper. Este código define de que versão do Windows App SDK a aplicação depende ao inicializar o bootstrapper.
Importante
Você precisará editar o código abaixo para se adequar à sua configuração específica. Veja as descrições dos parâmetros do método Bootstrap.Initialize para que possa especificar uma das versões do Windows App SDK que tem instaladas.
using System; using Microsoft.Windows.ApplicationModel.DynamicDependency; namespace DynamicDependenciesTest { class Program { static void Main(string[] args) { Bootstrap.Initialize(0x00010002); Console.WriteLine("Hello, World!"); // Release the DDLM and clean up. Bootstrap.Shutdown(); } } }Na sua essência, a API bootstrapper é uma API nativa C/C++ que lhe permite usar as APIs do Windows App SDK na sua aplicação. Mas numa aplicação .NET que usa a Windows App SDK 1.0 ou posterior, podes usar o wrapper .NET para a API bootstrapper. Esse wrapper oferece uma forma mais fácil de chamar a API bootstrapper numa aplicação .NET do que chamar diretamente as funções nativas C/C++. O exemplo de código anterior invoca os métodos estáticos Initialize e Shutdown da classe Bootstrap na implementação em .NET para a API de arranque.
Para demonstrar que os componentes de execução Windows App SDK foram carregados corretamente, adicione algum código que utilize a classe ResourceManager na Windows App SDK para carregar um recurso de cadeia.
Adicione um novo ficheiro Resources (.resw) ao seu project (mantenha o nome predefinido).
Com o arquivo de recursos aberto no editor, crie um novo recurso de cadeia de caracteres com as seguintes propriedades.
- Nome: Mensagem
- Valor: Olá, recursos!
Salve o arquivo de recursos.
Abra o arquivo de código Program.cs e substitua a linha
Console.WriteLine("Hello, World!");pelo código a seguir.
// Create a resource manager using the resource index generated during build. var manager = new Microsoft.Windows.ApplicationModel.Resources.ResourceManager("DynamicDependenciesTest.pri"); // Look up a string in the .resw file using its name. Console.WriteLine(manager.MainResourceMap.GetValue("Resources/Message").ValueAsString);- Clique Iniciar sem depuração (ou Iniciar a depuração) para compilar e executar a sua aplicação. Você deverá ver a string
Hello, resources!exibida com êxito.
Se o seu projeto for WPF
Para uma aplicação Windows Presentation Foundation (WPF), veja Use o Windows App SDK numa aplicação WPF.
Tópicos relacionados
Windows developer