Notas sobre a versão do canal estável para o SDK do Aplicativo Windows

O canal estável fornece versões do SDK do Aplicativo Windows com suporte para uso por aplicativos em ambientes de produção. Os aplicativos que usam a versão estável do SDK do Aplicativo Windows também podem ser publicados na Microsoft Store.

As seguintes versões do canal estável estão disponíveis no momento:

Se você quiser atualizar um aplicativo existente de uma versão mais antiga do SDK do Aplicativo Windows para uma versão mais recente, consulte Atualizar projetos existentes para a versão mais recente do SDK do Aplicativo Windows.

Downloads para SDK do Aplicativo Windows

Os SDK do Aplicativo Windows VSIX e runtime (pacotes de instalador e MSIX) estão disponíveis em Downloads para o SDK do Aplicativo Windows. Os downloads do SDK incluem as extensões do Visual Studio para criar e criar novos projetos usando o SDK do Aplicativo Windows. Os downloads de runtime incluem o instalador e os pacotes MSIX usados para implantar aplicativos. Se você ainda não fez isso, instale as ferramentas para o SDK do Aplicativo Windows.

Observação

Se você tiver SDK do Aplicativo Windows extensões do Visual Studio (VSIX) já instaladas, desinstale-as antes de instalar uma nova versão. Para obter instruções, confira Gerenciar extensões para o Visual Studio.

Versão 1.1

A versão mais recente disponível da linhagem 1.1.x do canal estável do SDK do Aplicativo Windows é a versão 1.1.4. 1.1.x dá suporte a todos os recursos de canal estáveis (consulte os recursos disponíveis pela seção de canal de versão em SDK do Aplicativo Windows canais de lançamento).

Versão 1.1.4

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 1.1.

Correções de bug

  • Correção da regressão de 1.0.x, fazendo com que ListView, TreeView e outros controles 'List' falhassem ao rolar com muitos itens. Para obter mais informações, consulte o problema 7230 no GitHub.
  • Correção de um problema com DispatcherQueue que fazia com que os retornos de chamada enfileirados não fossem mais invocados.
  • Correção de um problema que causava uma falha no aplicativo ao chamar DeploymentManager.Initialize várias vezes na mesma sessão do aplicativo.
  • Correção de um problema que fazia com que os aplicativos C# falhassem ao criar no Arm64 Visual Studio. Para obter mais informações, consulte o problema 7140 no GitHub.
  • Correção de falha intermitente no código de imagem XAML devido ao tratamento incorreto de falhas.
  • Corrigido o problema de vazamento de memória ao anexar um manipulador de eventos em ItemsRepeater com um UserControl pai. Para obter mais informações, consulte o problema 6123 no GitHub.
  • Correção de um problema que causava uma falha de build no Visual Studio 17.3 quando um projeto de aplicativo é configurado para habilitar atualizações automáticas de seu pacote quando ele é sideload (ou seja, .appinstaller). Para obter mais informações, consulte o problema 2773.
  • Correção de um problema que fazia com que os aplicativos empacotados distribuídos pela Loja que chamam Initialize (por exemplo, para Push) o chamassem redundantemente como DeploymentManager::GetStatus retornado Package Install Needed quando os pacotes principais e singleton já estão instalados. Isso causou uma degradação perf na inicialização do aplicativo.
  • Correção de um problema que causava uma exceção em aplicativos de instância única quando o evento de limpeza se destinava a ser ignorado se não pudesse ser aberto. Para obter mais informações, consulte a PR no GitHub.

Versão 1.1.3

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 1.1.

Correções de bug

  • Corrigido o conjunto de problemas relacionados em que o XAML falha ao incluir um controle ProgressBar, ProgressRing, PipsPager, PersonPicture ou Expander na primeira página do aplicativo. Para obter mais informações, consulte o problema 7164 no GitHub.
  • Correção de um problema que fazia com que o instalador x64 não instalasse o runtime do SDK do Aplicativo Windows. Para obter mais informações, consulte o problema 2713 no GitHub.
  • Correção de um problema que fazia com que o WindowsAppRuntime falhasse na instalação se uma versão mais alta do runtime fosse instalada. Para obter mais informações, consulte a discussão 2708 no GitHub.

Versão 1.1.2

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 1.1.

Correções de bug

  • Corrigido o problema em que o XAML falha ao fechar uma janela enquanto uma caixa de diálogo está aberta. Para obter mais informações, consulte o problema 1032 no GitHub.
  • A marca foi adicionada <auto-generated> em arquivos C# para evitar avisos stylecop. Para obter mais informações, consulte o problema 4526 no GitHub.
  • Correção de um problema que causava um erro de violação de acesso e falha ao chamar MddBootstrapInitialize quando o pacote de estrutura correspondente não está instalado. Para obter mais informações, consulte o problema 2592 no GitHub.
  • Corrigido o problema em que os modelos de item do WinUI 3 do C# estavam ausentes no Visual Studio. Para obter mais informações, consulte o problema 7148 no GitHub.
  • Corrigido o problema em que o instalador do WindowsAppRuntime falhava quando executado como usuário do Sistema. Para obter mais informações, consulte o problema 2546 no GitHub.

Versão 1.1.1

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 1.1.

Correções de bug

  • Correção de um problema que fazia com que os aplicativos falhassem às vezes durante uma operação de arrastar e soltar. Para obter mais informações, consulte o problema 7002 no GitHub.
  • Correção de um problema que fazia com que a barra de título desaparecesse ao alternar AppWindowPresenterKind de FullScreen para Padrão.
  • Corrigido o problema em que as APIs Bootstrapper gostam ApiInformation.IsPropertyPresent e ApiInformation.IsMethodPresent causavam exceções sem tratamento em aplicativos sem empacotamento MSIX. Para obter mais informações, consulte o problema 2382 no GitHub.
  • Corrigido o problema que causa o congelamento do aplicativo ao maximizar o aplicativo com a entrada de caneta.

Versão 1.1 Estável

As seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos para o 1.1 Estável.

Observação

Para desenvolvedores C#, uma das seguintes versões do SDK do .NET (ou posterior) é necessária: 6.0.202, 6.0.104, 5.0.407, 5.0.213. Para atualizar sua versão do SDK do .NET, visite downloads do .NET ou atualize para a versão mais recente do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar seu pacote NuGet, você verá um erro como: "Esta versão do WindowsAppSDK requer WinRT.Runtime.dll versão 1.6 ou superior".

Reinicialização do ciclo de vida do & aplicativo

Agora, os aplicativos podem iniciar uma reinicialização explícita com argumentos específicos & que se baseiam na API RegisterApplicationRestart existente para se registrar no sistema operacional para reiniciar em cenários de atualização e reinicialização de travamento & .

Novos recursos:

  • Qualquer aplicativo de área de trabalho empacotado ou não empacotado pode terminar e reiniciar-se no comando e ter acesso a uma cadeia de caracteres de linha de comando arbitrária para a instância reiniciada usando a AppInstance.Restart() API.
    • Essa é uma versão elevada e síncrona da API UWP RequestRestartAsync() que permite reiniciar com argumentos e retorna uma AppRestartFailureReason se a reinicialização não for bem-sucedida.
    • Confira os documentos da API de Reinicialização no GitHub para obter informações de referência de uso & .

WinUI 3

O WinUI 3 é a estrutura de experiência do usuário nativo (UX) para SDK do Aplicativo Windows. Esta versão inclui novos recursos do WinAppSDK 1.0, bem como várias melhorias de estabilidade das versões prévias 1.0 & 1.1.

Novos recursos:

  • Mica e Acrílico em segundo plano agora estão disponíveis para aplicativos WinUI 3.
  • Introduzidos pela primeira vez no 1.0.1, estabilizamos e habilitamos a criação de várias janelas no mesmo thread em aplicativos WinUI 3. Consulte o problema 5918 para obter mais informações.

Correção de bugs:

  • Corrigido o problema ao usar o Mica em que o aplicativo falhava quando uma janela fosse dividida igualmente por duas telas. Consulte o problema 7079 no GitHub para obter mais informações.
  • Correção de um problema que fazia com que aplicativos C# com WebView2 falhassem na inicialização quando o CRT (Runtime C/C++) não foi instalado atualizando o SDK do WebView2 de 1020.46 para 1185.39.
  • Correção de um problema que fazia com que alguns cantos arredondados mostrassem um gradiente quando deveriam ser uma cor sólida. Para obter mais informações, consulte o problema 6076&edição 6194 no GitHub.
  • Corrigido o problema em que os estilos atualizados estavam ausentes de generic.xaml.
  • Correção do problema de ciclo de layout que fazia com que um aplicativo falhasse ao rolar até o final de um ListView. Para obter mais informações, consulte o problema 6218 no GitHub.
  • Corrigido o problema em que os usuários não conseguem descartar um elemento quando o arrastar e soltar está habilitado. Para obter mais informações, consulte o problema 7008 no GitHub.

Limitações conhecidas:

  • Ao usar uma barra de título personalizada, os controles de legenda não alteram a cor na alteração do tema.
  • O XAML falha quando um usuário fecha uma janela enquanto uma caixa de diálogo está aberta.

Implantação

Novos recursos:

Limitações conhecidas:

  • A execução do instalador do Windows App Runtime (WindowsAppRuntimeInstall.exe) requer que o sideload seja habilitado. Consulte o problema 2469 no GitHub para obter mais informações.
  • A criação de um pacote MSIX por meio dos menus do Projeto do Visual Studio pode falhar no Visual Studio em alguns cenários. Esse problema será corrigido no Visual Studio versão 17.3 Versão Prévia 2 e atendido como 17.2. Se você encontrar esse problema, poderá contorná-lo gerando um MSIX da linha de comando, alternando para um projeto não empacotado ou revertendo para SDK do Aplicativo Windows 1.0.
  • Aplicativos independentes empacotados com MSIX não têm suporte no 1809, causando falha no aplicativo na inicialização.

Elevação

Agora, os aplicativos podem ser executados com privilégios elevados.

Limitações conhecidas:

Gerenciador de Variáveis de Ambiente

O Gerenciador de Variáveis de Ambiente é uma nova API introduzida no SDK do Aplicativo Windows 1.1. O Gerenciador de Variáveis de Ambiente permite que os desenvolvedores acessem e modifiquem variáveis de ambiente no processo, no escopo do usuário e do computador de uma superfície de API.

Se o Gerenciador de Variáveis de Ambiente for usado de um aplicativo empacotado, todas as operações de variável de ambiente serão registradas. Quando o pacote é removido, todas as operações de variável de ambiente são revertidas.

Novos recursos:

  • Obtenha e defina variáveis de ambiente no processo, no usuário e no escopo do computador.
  • A variável de ambiente automática é revertida quando um pacote que usa o gerenciador de variáveis de ambiente é removido.
  • Inclui APIs específicas para PATH e PATHEXT.

Limitações conhecidas:

  • Disponível somente em Windows 11

MRT Core

O MRT Core é uma versão simplificada do sistema moderno de gerenciamento de recursos do Windows que é distribuído como parte do SDK do Aplicativo Windows.

Problemas corrigidos:

  • Um problema que faz com que os recursos não sejam indexados por padrão quando um arquivo de recurso é adicionado usando a interface do usuário do VS é corrigido no SDK do .NET 6.0.300. Se estiver usando uma versão mais antiga do SDK do .NET, continue usando a solução alternativa documentada nas notas de versão do 1.0 Stable. Consulte o problema 1786 no GitHub para obter mais informações.
  • Um problema que fazia com que o URI do recurso não fosse criado corretamente em aplicativos WinUI 3 do C++ não empacotados foi corrigido no Visual Studio 2022 17.2. Se estiver usando uma versão mais antiga do Visual Studio, atualize o Visual Studio para 17.2 para receber essa correção.

Limitações conhecidas:

  • Em projetos do .NET, os arquivos de recurso colados na pasta do projeto não serão indexados no F5 se o aplicativo já tiver sido criado. Como solução alternativa, recompile o aplicativo. Consulte o problema 1503 no GitHub para obter mais informações.

Para obter mais informações, consulte Gerenciar recursos com o MRT Core.

Notificações

Os desenvolvedores de aplicativos empacotados, esparsos e não empacotados pelo MSIX agora podem enviar notificações do Windows.

Novos recursos:

  • Suporte para notificações de aplicativo para aplicativos empacotados e não empacotados.
  • Suporte para notificações por push para aplicativos empacotados e não empacotados.

Limitações conhecidas:

  • Não há suporte para o envio de notificações de um aplicativo com privilégios elevados. PushNotificationManager::IsSupported() não executará uma verificação para o modo elevado.

Windowing

Para facilitar o acesso de programação à funcionalidade implementada em USER32.dll (consulte Windows e mensagens), essa versão apresenta mais dessa funcionalidade em AppWindow si mesma.

Novos recursos:

  • Aplicativos com janelas existentes têm mais controle sobre como uma janela é mostrada, chamando AppWindow.ShowOnceWithRequestedStartupState-o equivalente a ShowWindow(SW_SHOWDEFAULT).
  • Os aplicativos podem mostrar, minimizar ou restaurar uma janela enquanto especificam se a janela deve ser ativada ou não no momento em que a chamada é feita.
  • Agora, os aplicativos podem determinar dimensões específicas para o tamanho da área de cliente da janela nas coordenadas do Win32 sem a necessidade de calcular o dimensionamento da área não cliente para obter um tamanho específico da área do cliente.
  • ApIs winrt adicionais estão disponíveis para dar suporte ao gerenciamento de ordem z do windows com base na funcionalidade hWndInsertAfter do SetWindowPos .
  • Os aplicativos que desenham barras de título personalizadas com AppWindowTitleBar.ExtendsContentIntoTitleBar podem definir uma PreferredTitleBarHeight opção. Agora você tem uma opção entre uma barra de título de altura padrão ou uma barra de título alta que fornece mais espaço para conteúdo interativo. Consulte a barra de títulos nas diretrizes de design do Fluent para obter conselhos sobre quando usar uma barra de título alta.

Problemas corrigidos:

  • Quando o apresentador de tela inteira é invocado pela primeira vez, a janela agora se encaixa na tela inteira corretamente. Consulte o problema 1853 no GitHub para obter mais informações.
  • O Windows foi criado com AppWindow::GetFromWindowId o OverlappedPresenter apresentador padrão, mas não tem restrições em termos de alterações nos estilos de janela provenientes de outras APIs. O Windows criado com AppWindow::Create terá os guardrails padrão do Apresentador no local desde o início. Consulte o problema 2049 no GitHub para obter mais informações.
  • Usar a OverlappedPresenter.SetBorderAndTitlebar API para ocultar botões de legenda e bordas resultaria em uma borda superior de 1px quando maximizada. Isso foi resolvido. Consulte o problema 1693 no GitHub para obter mais informações.

Limitações conhecidas:

  • Ao usar a API AppWindowTitlebar para personalizar as cores da barra de título padrão, o ícone e o texto são desalinhados em comparação com a barra de título padrão. Para obter mais informações, consulte o problema do GitHub 2459.

  • Ao resolver o problema do GitHub 2049 (visto acima), apresentamos o seguinte bug: se você aplicar qualquer AppWindowPresenter a um AppWindow recuperado de GetFromWindowId, altere um estilo de janela que está sendo rastreado por esse Apresentador por meio da chamada de APIs USER32 e tente reverter para o estado anterior da janela aplicando novamente o Apresentador padrão, o resultado é uma janela que não tem nenhuma barra de título. Se você depender de qualquer Apresentador em seu aplicativo e usar chamadas para USER32 para alterar estilos de janela no momento em que um Apresentador não padrão é aplicado, talvez seja necessário adicionar uma solução alternativa para garantir o comportamento correto da janela até que esse bug seja atendido. Você pode usar o seguinte snippet de código como um modelo de como contornar o problema:

    AppWindow m_appWindow;
    OverlappedPresenter m_defaultPresenter;
    
    private void EnterFullScreen_Click(object sender, RoutedEventArgs e)
    {
        // Capture the default presenter.
        m_defaultPresenter = m_appWindow.Presenter as OverlappedPresenter;
    
        // Opt in the default overlapped presenter so it can control various aspects of the AppWindow.
        m_defaultPresenter.IsAlwaysOnTop = m_defaultPresenter.IsAlwaysOnTop;
        m_defaultPresenter.IsResizable = m_defaultPresenter.IsResizable;
        m_defaultPresenter.IsMinimizable = m_defaultPresenter.IsMinimizable;
        m_defaultPresenter.IsMaximizable = m_defaultPresenter.IsMaximizable;
        m_defaultPresenter.SetBorderAndTitleBar(m_defaultPresenter.HasBorder, m_defaultPresenter.HasTitleBar);
    
        m_appWindow.SetPresenter(AppWindowPresenterKind.FullScreen);
    }
    
    private void ExitFullScreen_Click(object sender, RoutedEventArgs e)
    {
        m_appWindow.SetPresenter(AppWindowPresenterKind.Default);
    }
    

C#/WinRT

Agora há suporte para componentes do Windows Runtime C#, incluindo controles personalizados winui. Isso permite que os autores de componentes distribuam componentes de runtime criados em C#para qualquer linguagem compatível com WinRT (por exemplo, C++/WinRT). Consulte Passo a passo — Crie um componente C# com controles WinUI 3 e consuma-o de um aplicativo C++/WinRT que usa o SDK do Aplicativo Windows e o exemplo no GitHub para começar.

Outras limitações e problemas conhecidos

  • Aplicativos que fazem referência a um pacote que depende do WebView2 (como Microsoft.Identity.Client) não são compilados. Isso é causado por binários conflitantes no tempo de compilação. Consulte o problema 2492 no GitHub para obter mais informações.
  • Usar dotnet build com um projeto de biblioteca de classes do WinAppSDK C# pode ver um erro de build "A tarefa Microsoft.Build.Packaging.Pri.Tasks.ExpandPriContent não pôde ser carregada". Para resolver esse problema definido <EnableMsixTooling>true</EnableMsixTooling> em seu arquivo de projeto.
  • Os modelos padrão do WinAppSDK observam que o MaxVersionTested="10.0.19041.0" quando deve ser "10.0.22000.0". Para obter suporte completo de alguns recursos, notadamente UnlockedDEHs, atualize o MaxVersionTested para "10.0.22000.0" em seu arquivo de projeto.

Versão 1.0

A versão mais recente disponível da linhagem 1.0.x do canal estável do SDK do Aplicativo Windows é a versão 1.0.4. 1.0.x dá suporte a todos os recursos de canal estáveis (consulte os recursos disponíveis pela seção de canal de versão em SDK do Aplicativo Windows canais de versão).

Versão 1.0.4

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 1.0.

Correções de bug

  • Correção do problema que fazia com que AppBars, quando usado como Page.TopAppBar ou Page.BottomAppBar, não fosse renderizado na tela.
  • Corrigido o problema em que aplicativos com um nome de pacote de 12 caracteres ou menos que usam um controle WinUI de MUXControls.dll falharão imediatamente. Para obter mais informações, consulte o problema 6360 no GitHub.
  • Correção de problemas de entrada por toque que causaram problemas com atalhos de teclado e outros cenários. Para obter mais informações, consulte o problema 6291 no GitHub.
  • Correção de um problema que fazia com que os aplicativos empacotados com MSIX ou implantados como autocontidos falhassem na implantação.
  • Correção de um problema que fazia com que os aplicativos falhassem às vezes durante uma operação de arrastar e soltar. Para obter mais informações, consulte o problema 7002 no GitHub.

Versão 1.0.3

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 1.0.

Correções de bug

  • Correção de um problema que fazia com que aplicativos C# com WebView2 falhassem na inicialização quando o CRT (Runtime C/C++) não estiver instalado.
  • Correção de problemas de entrada por toque que causaram problemas com atalhos de teclado e outros cenários. Para obter mais informações, consulte o problema 6291 no GitHub.

Observação: normalmente não adicionamos funcionalidade em uma versão de manutenção, mas a correção do WebView2 desta versão exigiu que atualizemos para a versão mais recente do SDK do WebView2 (1020.46 a 1185.39). Consulte notas sobre a versão do SDK do WebView2 para obter informações adicionais sobre o WebView2 1.0.1185.39 e distribua seu aplicativo e o Runtime do WebView2 para obter informações adicionais sobre o WebView2 Runtime.

Versão 1.0.2

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 1.0.

Correções de bug

  • Correção do problema do ciclo de layout que fazia com que um aplicativo falhasse ao rolar até o final de um ListView. Para obter mais informações, consulte o problema 6218 no GitHub.
  • Correção de um problema que fazia com que os aplicativos C# falhassem na inicialização quando o CRT (Runtime C/C++) não estiver instalado. No entanto, o CRT ainda é necessário para aplicativos C# usando WebView2. Para obter mais informações, consulte o problema 2117 no GitHub.
  • Corrigido o problema em que aplicativos com MSIX de projeto único não geravam um arquivo .appinstaller. Para obter mais informações, consulte o problema 1821 no GitHub.
  • Correção de um problema em que os aplicativos WinUI não dão suporte ao .NET 6 dotnet build.

Versão 1.0.1

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas e suporte a várias janelas para a versão 1.0.

Correções de bug

  • Correção de um problema que fazia com que o MddBootstrapAutoinitializer não fosse compilado com ImplicitUsings habilitados. Para obter mais informações, consulte o problema 1686 no GitHub.
  • Correção de um problema em que o foco no WebView2 seria perdido inesperadamente, causando problemas de entrada e seleção. Para obter mais informações, consulte o problema 5615&edição 5570 no GitHub.
  • Correção de um problema que fazia com que a barra de ferramentas no aplicativo no Visual Studio não fosse lambida ao usar uma barra de título personalizada em um aplicativo WinUI 3.
  • Correção de um problema que fazia com que o Layout do Snap não aparecesse ao usar uma barra de título personalizada em um aplicativo WinUI 3. Para obter mais informações, consulte o problema 6333&edição 6246 no GitHub.
  • Correção de um problema que causava uma exceção ao definir a propriedade Window.ExtendsContentIntoTitleBar quando Window.SetTitlebar foi chamado com um UIElement ainda carregando.
  • Corrigido o problema em que aplicativos MSIX de projeto único não dotnet buildsuportavam .
  • Correção de um problema que fazia com que os aplicativos não empacotados não instalassem após a instalação de um aplicativo empacotado. Para obter mais informações, consulte o problema 1871 no GitHub.
  • Correção do problema ao reduzir o desempenho durante as operações de arrastar do mouse.
  • Correção de falha ao chamar GetWindowIdFromWindow() em aplicativos não empacotados. Para obter mais informações, consulte a discussão 1891 no GitHub.

As limitações e os problemas conhecidos da versão 1.0 também se aplicam à versão 1.0.1.

Além disso, para aplicativos com barras de título personalizadas, fizemos alterações nesta versão (e corrigimos vários problemas) que incluem correções na janela de vidro usada para operações de arrastar&soltar. A recomendação é usar os valores e comportamentos padrão (experimente!). Se a barra de título usou margens para que os botões de legenda padrão fossem interativos, recomendamos visualizar sua região de arrastar definindo o plano de fundo da barra de título como vermelho e, em seguida, ajustando as margens para estender a região de arrastar para os controles de legenda.

Novos recursos

Estabilizamos e habilitamos a criação de várias janelas no mesmo thread em aplicativos WinUI 3. Consulte o problema 5918 para obter mais informações.

Versão 1.0 Estável

As seções a seguir descrevem recursos novos e atualizados, limitações e problemas conhecidos para o 1.0 Estável.

WinUI 3

O WinUI 3 é a estrutura de experiência do usuário nativo (UX) para SDK do Aplicativo Windows. Nesta versão, adicionamos vários novos recursos de SDK do Aplicativo Windows 0.8 e problemas estabilizados das versões 1.0 Preview.

Novos recursos e atualizações:

  • Adicionamos novos controles (PipsPager, Expander, BreadcrumbBar) e controles existentes atualizados para refletir os estilos mais recentes do Windows do WinUI 2.6.
  • O empacotamento MSIX de projeto único tem suporte no WinUI criando um novo aplicativo usando o "Aplicativo em Branco, Empacotado..." de segmentação.
  • Agora, damos suporte à implantação de aplicativos WinUI 3 sem empacotamento MSIX nas versões do Windows 1809 e superiores. Veja Criar seu primeiro projeto WinUI 3 para obter informações adicionais.
  • Os projetos do WinUI 3 agora podem definir sua versão de destino como Windows 10, versão 1809. Anteriormente, eles só podiam ser definidos tão baixo quanto a versão 1903.
  • Na barra de ferramentas do aplicativo, Recarga Dinâmica, & há suporte para aplicativos empacotados de Árvore Visual Dinâmica para WinUI no Visual Studio 2022 Preview 5 e GA.

Limitações importantes:

  • Problemas conhecidos para aplicativos WinUI empacotados e não empacotados:

    • Erro em tempo de execução em aplicativos C++ ou C# que fazem referência a um componente de Windows Runtime C++:
      • Para resolver, adicione o destino abaixo ao final do .vcxproj do componente Windows Runtime:

        <Target Name="GetPriIndexName">
        <PropertyGroup>
            <!-- Winmd library targets use the default root namespace of the project for the App package name -->
            <PriIndexName Condition="'$(RootNamespace)' != ''">$(RootNamespace)</PriIndexName>
            <!-- If RootNamespace is empty fall back to TargetName -->
            <PriIndexName Condition="$(PriIndexName) == ''">$(TargetName)</PriIndexName>
        </PropertyGroup>
        </Target>
        
      • O erro esperado será semelhante ao erro de origem do WinRT - 0x80004005: 'Não é possível localizar o recurso de 'ms-appx:///BlankPage.xaml'.'.

  • Problemas conhecidos para aplicativos WinUI com MSIX de projeto único (aplicativo em branco, modelo empacotado):

    • Pacote & Ausente Publicar item de menu até reiniciar o Visual Studio: ao criar um novo aplicativo com MSIX de projeto único no Visual Studio 2019 e no Visual Studio 2022 usando o modelo de projeto Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho), o comando para publicar o projeto não aparece no menu até que você feche e abra novamente o Visual Studio.
    • Um aplicativo C# com MSIX de projeto único não será compilado sem o componente opcional "C++ (v14x) Plataforma Universal do Windows Tools" instalado. Consulte as ferramentas de instalação do SDK do Aplicativo Windows para obter informações adicionais.
    • Erro em tempo de execução potencial em um aplicativo com MSIX de projeto único que consome tipos definidos em um componente de Windows Runtime referenciado: para resolver, adicione manualmente entradas de classe ativáveis ao appxmanifest.xml.
      • O erro esperado em aplicativos C# é "COMException: Classe não registrada (0x80040154 (REGDB_E_CLASSNOTREG)).
      • O erro esperado em aplicativos C++/WinRT é "winrt::hresult_class_not_registered".
  • Problemas conhecidos para aplicativos WinUI sem empacotamento MSIX (aplicativos não empacotados):

  • Problemas conhecidos para empacotar e implantar aplicativos WinUI:

    • Não Package há suporte para o comando em aplicativos WinUI com MSIX de projeto único (aplicativo em branco, modelo empacotado). Em vez disso, use o Package & Publish comando para criar um pacote MSIX.
    • Para criar um pacote NuGet a partir de uma Biblioteca de Classes C# com o Pack comando, verifique se o ativo Configuration está Release.
    • Não Pack há suporte para o comando em componentes de Windows Runtime C++ para criar um pacote NuGet.

Para obter mais informações ou para começar a desenvolver com o WinUI, consulte:

Windowing

O SDK do Aplicativo Windows fornece uma classe AppWindow que evolui a classe prévia anterior de Windows.UI.WindowManagement.AppWindow e a disponibiliza para todos os aplicativos do Windows, incluindo Win32, WPF e WinForms.

Novos recursos

  • AppWindow é uma API de janela de alto nível que permite cenários de janela fáceis de usar que se integram bem à experiência do usuário do Windows e a outros aplicativos. Representa uma abstração de alto nível de um contêiner gerenciado pelo sistema do conteúdo de um aplicativo. Esse é o contêiner no qual o conteúdo é hospedado e representa a entidade com a qual os usuários interagem quando redimensionam e movem seu aplicativo na tela. Para desenvolvedores familiarizados com o Win32, o AppWindow pode ser visto como uma abstração de alto nível do HWND.
  • DisplayArea representa uma abstração de alto nível de um HMONITOR, segue os mesmos princípios que AppWindow.
  • DisplayAreaWatcher permite que um desenvolvedor observe as alterações na topologia de exibição e enumere DisplayAreas atualmente definidas no sistema.

Para obter mais informações, consulte Gerenciar janelas do aplicativo.

Entrada

Essas são as APIs de entrada que dão suporte ao WinUI e fornecem uma superfície de API de nível inferior para que os desenvolvedores obtenham interações de entrada mais avançadas.

Novos recursos

  • APIs de ponteiro: PointerPoint, PointerPointProperties e PointerEventArgs para dar suporte à recuperação de informações de evento de ponteiro com APIs de entrada XAML.
  • API InputPointerSource: representa um objeto registrado para a entrada do ponteiro de relatório e fornece cursor de ponteiro e tratamento de eventos de entrada para a API SwapChainPanel da XAML.
  • API do cursor: permite que os desenvolvedores alterem o bitmap do cursor.
  • API GestureRecognizer: permite que os desenvolvedores reconheçam determinados gestos, como arrastar, segurar e clicar quando forem fornecidas informações de ponteiro.

Limitações importantes

  • Todas as funções de fábrica estáticas do PointerPoint foram removidas: GetCurrentPoint, GetCurrentPointTransformed, GetIntermediatePoints e GetIntermediatePointsTransformed.
  • O SDK do Aplicativo Windows não dá suporte à recuperação de objetos PointerPoint com IDs de ponteiro. Em vez disso, você pode usar a função membro do PointerPointGetTransformedPoint para recuperar uma versão transformada de um objeto PointerPoint existente. Para pontos intermediários, você pode usar as funções membro PointerEventArgsGetIntermediatePoints e GetTransformedIntermediatePoints.
  • O uso direto da API do SDK da plataforma Windows.UI.Core.CoreDragOperation não funcionará com aplicativos WinUI.
  • As propriedades Do PointerPointRawPosition e ContactRectRaw foram removidas porque se referiam a valores não previstos, que eram os mesmos que os valores normais no sistema operacional. Em vez disso , use Position e ContactRect . A previsão de ponteiro agora é tratada com o objeto da API Microsoft.UI.Input.PointerPredictor .

Ciclo de vida do aplicativo

A maioria dos recursos do Ciclo de Vida do Aplicativo já existe na plataforma UWP e foi trazida para o SDK do Aplicativo Windows para uso por tipos de aplicativo da área de trabalho, especialmente aplicativos console não empacotados, aplicativos Win32, aplicativos Windows Forms e aplicativos WPF. A implementação SDK do Aplicativo Windows desses recursos não pode ser usada em aplicativos UWP, pois há recursos equivalentes na própria plataforma UWP.

Importante

Se você estiver trabalhando em um aplicativo UWP, veja Migrar da UWP para o SDK do Aplicativo Windows.

Aplicativos não UWP também podem ser empacotados em pacotes MSIX. Embora esses aplicativos possam usar alguns dos recursos do ciclo de vida do aplicativo SDK do Aplicativo Windows, eles devem usar a abordagem de manifesto em que isso está disponível. Por exemplo, eles não podem usar as APIs SDK do Aplicativo Windows RegisterForXXXActivation e, em vez disso, devem registrar-se para ativação avançada por meio do manifesto.

Todas as restrições para aplicativos empacotados também se aplicam aos aplicativos WinUI, que são empacotados, e há considerações adicionais, conforme descrito abaixo.

Considerações importantes:

  • Ativação avançada: GetActivatedEventArgs

  • Registrar/cancelar o registro para ativação avançada

    • Aplicativos não empacotados: totalmente utilizáveis.
    • Aplicativos empacotados: não é possível usar o manifesto MSIX do aplicativo.
    • Para obter mais informações, consulte Ativação avançada.
  • Instancamento único/múltiplo

    • Aplicativos não empacotados: totalmente utilizáveis.
    • Aplicativos empacotados: totalmente utilizáveis.
    • Aplicativos WinUI: se um aplicativo quiser detectar outras instâncias e redirecionar uma ativação, ele deverá fazê-lo o mais cedo possível e antes de inicializar qualquer janela, etc. Para habilitar isso, o aplicativo deve definir DISABLE_XAML_GENERATED_MAIN e gravar um Main personalizado (C#) ou WinMain (C++) em que ele pode fazer a detecção e o redirecionamento.
    • RedirectActivationToAsync é uma chamada assíncrona e você não deve esperar em uma chamada assíncrona se o aplicativo estiver em execução em um STA. Para aplicativos WinUI Windows Forms e C#, você pode declarar Main como assíncrono, se necessário. Para aplicativos C++ WinUI e C# WPF, você não pode declarar Main como assíncrono, portanto, você precisa mover a chamada de redirecionamento para outro thread para garantir que você não bloqueie o STA.
    • Para obter mais informações, consulte Instancing do aplicativo.
  • Notificações do Power/State

    • Aplicativos não empacotados: totalmente utilizáveis.
    • Aplicativos empacotados: totalmente utilizáveis.
    • Para obter mais informações, consulte o gerenciamento do Power.

Problema conhecido:

  • Associações de tipo de arquivo codificam incorretamente %1 para ser %251 ao definir o modelo de linha de comando do manipulador verbo, que falha em aplicativos Win32 não empacotados. Você pode editar manualmente o valor do Registro para ser %1, em vez disso, como uma solução alternativa parcial. Se o caminho do arquivo de destino tiver um espaço nele, ele ainda falhará e não haverá solução alternativa para esse cenário.
  • Esses bugs de inicialização única/múltipla serão corrigidos em um patch de manutenção próximo:
    • O redirecionamento appInstance não funciona quando compilado para x86
    • Registrar uma chave, cancelar o registro e registrá-la novamente faz com que o aplicativo falhe

DWriteCore

DWriteCore é a implementação SDK do Aplicativo Windows de DirectWrite, que é a API DirectX para renderização de texto de alta qualidade, fontes de estrutura de tópicos independentes de resolução e suporte completo de texto e layout unicode. DWriteCore é uma forma de DirectWrite que é executada em versões do Windows até Windows 10, versão 1809 (10.0; Build 17763) e abre a porta para você usá-la entre plataformas.

Características DWriteCore contém todos os recursos do DirectWrite, com algumas exceções.

Limitações importantes

  • DWriteCore não contém os seguintes recursos de DirectWrite:
    • Fontes por sessão
    • Fontes euDC (caractere definido pelo usuário final)
    • APIs de streaming de fonte
  • O suporte à API de renderização de baixo nível é parcial.
  • DWriteCore não interopera com Direct2D, mas você pode usar IDWriteGlyphRunAnalysis e IDWriteBitmapRenderTarget.

Para obter mais informações, consulte a visão geral do DWriteCore.

MRT Core

O MRT Core é uma versão simplificada do sistema moderno de gerenciamento de recursos do Windows que é distribuído como parte do SDK do Aplicativo Windows.

Limitações importantes

  • Em projetos do .NET, os arquivos de recurso colados na pasta do projeto não serão indexados em F5 se o aplicativo já tiver sido criado. Como solução alternativa, recompile o aplicativo. Consulte o problema 1503 para obter mais informações.
  • Em projetos .NET, quando um arquivo de recurso é adicionado ao projeto usando a interface do usuário do Visual Studio, os arquivos podem não ser indexados por padrão. Consulte o problema 1786 para obter mais informações. Para contornar esse problema, remova as entradas abaixo no arquivo CSPROJ:
    <ItemGroup>
        <Content Remove="<image file name>" />
    </ItemGroup>
    <ItemGroup>
        <PRIResource Remove="<resw file name>" />
    </ItemGroup>
    
  • Para aplicativos WinUI C++ não empacotados, o URI do recurso não é criado corretamente. Para contornar esse problema, adicione o seguinte no vcxproj:
    <!-- Add the following after <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> -->
    
    <PropertyGroup>
        <AppxPriInitialPath></AppxPriInitialPath>   
    </PropertyGroup>
    

Para obter mais informações, consulte Gerenciar recursos com o MRT Core.

Implantação

Novos recursos e atualizações

  • Você pode inicializar automaticamente o SDK do Aplicativo Windows por meio da WindowsPackageType project propriedade para carregar o runtime SDK do Aplicativo Windows e chamar as APIs SDK do Aplicativo Windows. Consulte Criar seu primeiro projeto WinUI 3 para obter instruções.
  • Aplicativos não empacotados podem implantar SDK do Aplicativo Windows integrando o instalador de SDK do Aplicativo Windows .exe autônomo ao programa de instalação ou MSI existente. Para obter mais informações, consulte SDK do Aplicativo Windows guia de implantação para aplicativos não empacotados.
  • Aplicativos .NET não empacotados também podem usar o wrapper .NET para a API bootstrapper para assumir dinamicamente uma dependência do pacote de estrutura SDK do Aplicativo Windows em tempo de execução. Para obter mais informações sobre o wrapper do .NET, consulte a biblioteca de wrappers do .NET.
  • Os aplicativos empacotados podem usar a API de implantação para verificar e garantir que todos os pacotes necessários estejam instalados no computador. Para obter mais informações sobre como a API de implantação funciona, consulte o guia de implantação para aplicativos empacotados.

Limitações importantes

  • O wrapper do .NET para a API bootstrapper destina-se apenas ao uso por aplicativos .NET não empacotados para simplificar o acesso ao SDK do Aplicativo Windows.
  • Somente os aplicativos empacotados msix que são de confiança total ou têm a funcionalidade restrita packageManagement têm a permissão para usar a API de implantação para instalar as dependências do pacote principal e singleton. O suporte para aplicativos empacotados de confiança parcial será fornecido em versões posteriores.
  • Ao testar um aplicativo x86 que usa o método DeploymentManager.Initialize em um sistema x64, verifique se a estrutura x64 é instalada pela primeira vez executando o WindowsAppRuntimeInstall.exe. Caso contrário, você encontrará um erro NOT_FOUND devido ao Visual Studio não implantar a estrutura x64, que normalmente ocorre por meio da implantação ou sideload da Store.

Outras limitações e problemas conhecidos

  • Sem suporte para qualquer configuração de build de CPU: ao adicionar o SDK do Aplicativo Windows a um aplicativo .NET ou componente existente que dê suporte a qualquer CPU, você deve especificar a arquitetura desejada: x86ou x64arm64.

  • Atualização do .NET 5 para o .NET 6: ao atualizar na interface do usuário do Visual Studio, você pode encontrar erros de build. Como solução alternativa, atualize manualmente os arquivos de TargetFrameworkPackage projeto para o abaixo:

        <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework> 
    
  • O aplicativo MSIX de projeto único do C# não será compilado se as Ferramentas UWP do C++ não estiverem instaladas. Se você tiver um projeto MSIX de projeto único em C#, precisará instalar o componente opcional C++ (v14x) Plataforma Universal do Windows Tools.

  • O VSIX de idioma subsequente não é instalado no Visual Studio 2019 quando várias versões do Visual Studio 2019 são instaladas. Se você tiver várias versões do Visual Studio 2019 instaladas (por exemplo, versão e versão prévia) e, em seguida, instalar a SDK do Aplicativo Windows VSIX para C++ e C#, a segunda instalação falhará. Para resolver, desinstale as Ferramentas de Empacotamento MSIX de projeto único para Visual Studio 2019 após o primeiro VSIX de idioma. Exiba este comentário para obter informações adicionais sobre esse problema.

  • Uma alternativa ao DispatcherQueue.TryEnqueue (para retomar a execução no thread da fila do dispatcher) é usar a função auxiliar resume_foreground na WIL (Biblioteca de Implementação do Windows):

    1. Adicione uma referência ao seu projeto ao pacote NuGet Microsoft.Windows.ImplementationLibrary .
    2. Adicionar #include <wil/cppwinrt_helpers.h> ao seu pch.h.
    3. Adicionar #include <winrt/Microsoft.UI.Dispatching.h> ao seu pch.h.
    4. Agora co_await wil::resume_foreground(your_dispatcherqueue);.

Versão 0.8

A versão mais recente disponível da linhagem 0.8.x do canal estável do SDK do Aplicativo Windows é a versão 0.8.12.

Observação

O SDK de Aplicativo do Windows anteriormente era conhecido pelo codinome Project Reunion. Alguns ativos do SDK na versão 0.8 e anteriores ainda usam o nome de código. Algumas áreas da documentação ainda usarão Project Reunion ao se referir a um ativo existente ou uma versão anterior especificada.

Versão 0.8.12

Esta é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 0.8.0.

Observação

Para desenvolvedores C#, uma das seguintes versões do SDK do .NET é necessária: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (ou posterior). Para atualizar sua versão do SDK do .NET, visite downloads do .NET ou atualize para a versão mais recente do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar seu pacote NuGet, você verá um erro como: "Esta versão do WindowsAppSDK requer WinRT.Runtime.dll versão 1.6 ou superior".

Correções de bug:

  • Correção de um problema em que aplicativos com SwapChainPanel ou WebView2 falhariam imprevisívelmente devido a uma violação de acesso.

Versão 0.8.11

Esta é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 0.8.0.

Observação

Para desenvolvedores C#, uma das seguintes versões do SDK do .NET é necessária: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (ou posterior). Para atualizar sua versão do SDK do .NET, visite downloads do .NET ou atualize para a versão mais recente do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar seu pacote NuGet, você verá um erro como: "Esta versão do WindowsAppSDK requer WinRT.Runtime.dll versão 1.6 ou superior".

Correções de bug:

  • Correção de regressão fazendo com que o evento de foco perdido disparasse ao selecionar texto usando o mouse.

Versão 0.8.10

Esta é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 0.8.0.

Observação

Para desenvolvedores C#, uma das seguintes versões do SDK do .NET é necessária: 5.0.213, 5.0.407, 6.0.104, 6.0.202 (ou posterior). Para atualizar sua versão do SDK do .NET, visite downloads do .NET ou atualize para a versão mais recente do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar seu pacote NuGet, você verá um erro como: "Esta versão do WindowsAppSDK requer WinRT.Runtime.dll versão 1.6 ou superior".

Correções de bug:

  • Correção de problemas que causavam a falha dos aplicativos durante uma operação de arrastar e soltar.

Observação

SDK do Aplicativo Windows 0.8.9 não foi lançado. A versão lançada diretamente após a 0.8.8 é 0.8.10.

Versão 0.8.8

Esta é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug críticas para a versão 0.8.0.

Observação

Para desenvolvedores C#, uma das seguintes versões do SDK do .NET (ou posterior) é necessária: 6.0.202, 6.0.104, 5.0.407, 5.0.213. Para atualizar sua versão do SDK do .NET, visite downloads do .NET ou atualize para a versão mais recente do Visual Studio. Sem a versão necessária do SDK do .NET, ao atualizar seu pacote NuGet, você verá um erro como: "Esta versão do WindowsAppSDK requer WinRT.Runtime.dll versão 1.6 ou superior".

Correções de bug:

  • Correção de problemas de entrada por toque no TextBox em relação ao teclado flexível e à interação geral. Esses problemas também afetaram os atalhos de teclado. Para obter mais informações, consulte o problema 6291 no GitHub.
  • Correção de um problema em que uma janela do aplicativo às vezes era mostrada como inativa quando ativa.
  • Correção do problema de desempenho causado pelo UIA (Automação da Interface do Usuário) em execução em processos externos.
  • Correção do problema de estabilidade do aplicativo com a entrada de caneta.
  • Correção de um problema em que a renderização de ícones png em um menu era drasticamente atrasada devido à UIA.

Versão 0.8.7

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui várias atualizações de desempenho para aplicativos C#/.NET. Para atualizar para esta versão, você precisará fazer referência à versão mais recente do pacote do SDK do Windows. Para fazer isso, adicione a propriedade <WindowsSdkPackageVersion>10.0.<sdk_version>.24</WindowsSdkPackageVersion> ao arquivo .csproj com a versão do SDK que seu aplicativo está direcionando da TargetFramework propriedade. Por exemplo:

<Project Sdk="Microsoft.NET.Sdk">
   <PropertyGroup>
       <OutputType>WinExe</OutputType>
       <TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
       <TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
       <WindowsSdkPackageVersion>10.0.19041.24</WindowsSdkPackageVersion>
   <PropertyGroup>
   ...

Esta versão da projeção do SDK do Windows estará disponível em uma próxima versão de manutenção do .NET 6. Depois que a atualização do SDK do .NET estiver disponível, você deverá remover a <WindowsSdkPackageVersion> propriedade do arquivo de projeto.

Se você não definir essa propriedade, verá um erro como: "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.6 or greater."

Versão 0.8.6

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui várias melhorias de desempenho para aplicativos C#/.NET para a versão 0.8.0.

Para atualizar para esta versão do SDK do Aplicativo Windows, você precisará ter a atualização de dezembro do SDK do .NET mais recente instalada (consulte Baixar o .NET e o .NET 5 chegará ao fim do suporte em 10 de maio de 2022). Se você não tiver a versão mínima necessária do SDK do .NET instalada, verá um erro como "Error: This version of Project Reunion requires WinRT.Runtime.dll version 1.4 or greater."

Correções de bugs

Para obter uma lista detalhada das melhorias de desempenho, consulte as notas de versão do C#/WinRT 1.4.1.

Versão 0.8.5

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug mais críticas para a versão 0.8.0.

Correções de bug

  • Correção de um problema que estava causando falha nos aplicativos WinUI usando a entrada de ponteiro .
  • Correção de um problema que fazia com que os botões da barra de título (min, max, close) não tivessem cantos arredondados no Windows 11.
  • Correção de um problema que fazia com que as opções de layout de redimensionamento não aparecessem ao passar o mouse sobre o botão maximizar/restaurar no Windows 11.
  • Correção de um problema que causava uma exceção de falha ao criar um objeto PointCollection . Para obter mais informações, consulte o problema 971 no Github.

As limitações e problemas conhecidos para a versão 0.8 também se aplicam à versão 0.8.5, a menos que marcadas de outra forma na seção abaixo.

Versão 0.8.4

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug mais críticas para a versão 0.8.0.

Correções de bug

  • Correções para barras de título personalizadas para que o ContentDialog não encobri-lo e os botões da barra de título sejam arredondados.
  • Correção de uma falha no processamento de imagens quando a escala de exibição é alterada.
  • Corrige bugs de recorte em que a interface do usuário desaparece ou é cortada incorretamente

As limitações e problemas conhecidos para a versão 0.8 também se aplicam à versão 0.8.4, a menos que marcadas de outra forma na seção abaixo.

Versão 0.8.3

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug mais críticas para a versão 0.8.0.

Correções de bug

O foco do teclado estava sendo perdido quando uma janela foi minimizada e restaurada, exigindo um clique do mouse para restaurar o foco.

As limitações e problemas conhecidos para a versão 0.8 também se aplicam à versão 0.8.3, a menos que marcadas de outra forma na seção abaixo.

Versão 0.8.2

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui correções de bug mais críticas para a versão 0.8.0.

Correções de bug

  • SDK do Aplicativo Windows e WinUI 3 agora têm suporte no Visual Studio 2022 Preview 2 e posterior.
  • Para aplicativos .NET, você pode receber o seguinte erro ao passar uma matriz de enumerações: Object contains non-primitive or non-blittable data.
  • Escrever usando o Painel de Escrita Manual dentro de uma caixa de texto causa uma falha
  • Ícones/imagens sempre carregam em seu valor de escala de 100% em vez de com base no valor de escala do monitor
  • A coleta de lixo do EventSource<T> causa falha subsequente em cancelar a assinatura de manipuladores (consulte o problema do GitHub para obter mais detalhes)
  • Correção de segurança – consulte CVE-2021-34533 para obter mais detalhes.
  • SwapChainPanel.CompositionScaleChanged às vezes retornando valores incorretos do CompositionScale após alterar a escala de exibição

As limitações e problemas conhecidos para a versão 0.8 também se aplicam à versão 0.8.2, a menos que marcadas de outra forma na seção abaixo.

Versão 0.8.1

Essa é uma versão de manutenção do SDK do Aplicativo Windows que inclui algumas correções de bug críticas para a versão 0.8.0.

Correções de bug

  • SDK do Aplicativo Windows não pode ser executado no build mais recente do Windows Insider
  • Falha no EditableComboBox ao inserir um valor que não aparece no menu suspenso
  • O WebView2 não permite que o usuário faça a guia depois que o foco for recebido
  • Qualificar totalmente o namespace Windows.Foundation.Metadata.DefaultOverload no código gerado pelo WinUI para evitar a ambiguidade do namespace
  • Correção de segurança – consulte CVE-2021-34489 para obter mais detalhes.

As limitações e problemas conhecidos para a versão 0.8 também se aplicam à versão 0.8.1, a menos que marcadas de outra forma na seção abaixo.

Versão 0.8.0 Estável

Novos recursos e atualizações

Esta versão dá suporte a todos os recursos estáveis do canal.

WinUI 3

Esta versão inclui muitas correções de bug e estabilização aprimorada no WinUI 3. Essas são todas as novas alterações no WinUI 3 desde o lançamento do WinUI 3 – Project Reunion 0.5:

  • O controle Dinâmico foi adicionado novamente e agora pode ser usado em qualquer aplicativo WinUI 3.

  • Todas as correções de bug do Project Reunion v0.5.5, v0.5.6 e v0.5.7 estão incluídas nesta versão.

  • Novas correções de bug, incluindo:

    • O aplicativo tinha uma falha quando o usuário clicava com o botão direito do mouse em TextBox
    • NavigationView causava falha na UWP, no Reunion 0.5 Versão Prévia
    • ProgressBar não mostra a diferença entre as opções Pausa e Erro
    • Falha no RichEditBox ao copiar/colar/alterar o estilo de texto
    • Os botões de legenda de janela são extraviados quando SetTitleBar não está definido ou nulo

    Para obter a lista completa de bugs abordados nesta versão, consulte nosso repositório GitHub.

  • A ColorHelper.ToDisplayName API não está mais disponível.

  • Os seguintes tipos foram removidos:

    • Microsoft.Graphics.IGeometrySource2D
    • Microsoft.Graphics.IGeometrySource2DInterop

    Em vez disso, use Windows.Graphics.IGeometrySource2D e Windows.Graphics.IGeometrySource2DInterop.

  • Todos os tipos no Microsoft.System namespace foram movidos para o Microsoft.UI.Dispatching namespace, incluindo a classe DispatcherQueue.

  • A AcrylicBrush.BackgroundSource propriedade foi removida, pois HostBackdrop não há suporte como uma BackgroundSource no WinUI 3.

Para obter mais informações sobre o WinUI, consulte a Biblioteca da Interface do Usuário do Windows 3 (WinUI).

Para ver os controles e recursos do WinUI 3 em ação, você pode clonar e compilar o aplicativo da Galeria WinUI 3 no GitHub ou baixar o aplicativo da Microsoft Store.

Para começar a desenvolver com o WinUI, confira os seguintes artigos:

DWriteCore

Esta versão do DWriteCore inclui os seguintes recursos novos e atualizados. DWriteCore é introduzido e descrito na visão geral do DWriteCore.

Observação

DWriteCoreCreateFactory é funcionalmente igual à função DWriteCreateFactory exportada pela versão do sistema de DirectWrite. A função DWriteCore tem um nome diferente para evitar ambiguidade no caso de você vincular tanto quanto DWriteCore.libDWrite.lib.

Para referência de API DWriteCore e DirectWrite, consulte Referência de API DWriteCore e referência de API DirectWrite.

MRTCore

  • A Ação de Build para recursos é definida automaticamente quando você adiciona o recurso ao seu projeto, reduzindo a necessidade de configuração manual do projeto.

Limitações

  • No momento, não há suporte para esta versão no Canal de Desenvolvimento do Programa Windows Insider. Isso é corrigido na versão 0.8.1.

  • Aplicativos da área de trabalho (área de trabalho C# ou C++): essa versão tem suporte para uso somente em aplicativos da área de trabalho (C++ ou C#) que são empacotados usando MSIX. Para usar o SDK do Aplicativo Windows em aplicativos de área de trabalho não empacotados, você deve usar o canal de versão experimental.

Importante

Se você estiver trabalhando em um aplicativo UWP, veja Migrar da UWP para o SDK do Aplicativo Windows.

Problemas conhecidos

  • Ferramentas do WinUI 3, como Live Visual Tree, Live Property Explorer e Recarga Dinâmica na versão 0.8 e posteriores, exigem o Visual Studio 2019 16.11 Preview 3 e posterior.

  • Atualmente, os aplicativos que usam o WinUI 3 e o SDK do Aplicativo Windows 0.8 não podem usar bibliotecas de classes que usam o Project Reunion 0.5. Atualize as bibliotecas de classes para usar o SDK do Aplicativo Windows 0.8.

  • Os aplicativos .NET devem ter como destino o build 18362 ou superior: o TFM deve ser definido como net6.0-windows10.0.18362 ou superior, e o projeto de empacotamento deve ser definido como 18362 ou superior. Para obter mais informações, consulte o problema do GitHub nº 921.

  • Você pode encontrar uma falha ao alternar com frequência entre o modo claro e escuro.

  • Para aplicativos .NET, você pode receber o seguinte erro ao passar uma matriz de enumerações: Object contains non-primitive or non-blittable data.isso é corrigido na versão 0.8.2.

  • Para aplicativos .NET, atualmente não há como recusar a indexação de uma imagem como um recurso de aplicativo usando a interface do usuário do Visual Studio. Para contornar isso, adicione um Directory.Build.targets (consulte Personalizar seu build – Visual Studio para obter instruções) ao projeto e remova as imagens da seguinte maneira:

    • Para remover imagens específicas (observe que o caminho relativo é necessário):

      <Project> 
      <ItemGroup> 
          <Content Remove="..\Bitmap1.bmp" />
      </ItemGroup>
      </Project>
      
    • Para remover imagens com base em metadados:

      <Project>
      <ItemGroup>
          <Content Remove="@(None->WithMetadataValue('Pack','true'))" />
      </ItemGroup>
      </Project>
      

    Uma correção para esse problema está planejada para uma versão futura - nesse ponto, as soluções alternativas acima não serão mais necessárias.

Versão 0.5

A versão mais recente disponível da linhagem 0.5.x do canal estável do SDK do Aplicativo Windows é a versão 0.5.9.

Novos recursos e atualizações

Esta versão dá suporte a todos os recursos estáveis do canal.

Limitações e problemas conhecidos

Esta versão tem as seguintes limitações e problemas conhecidos:

  • Aplicativos da área de trabalho (área de trabalho C# ou C++): essa versão tem suporte apenas para uso em aplicativos da área de trabalho (C++ ou C#) que são empacotados usando MSIX. Para usar o SDK do Aplicativo Windows em aplicativos de área de trabalho não empacotados, você deve usar o canal de versão experimental.
  • Os aplicativos .NET devem ter como destino o build 18362 ou superior: o TFM deve ser definido como net6.0-windows10.0.18362 ou superior e o projeto de <TargetPlatformVersion> empacotamento deve ser definido como 18362 ou superior. Para obter mais informações, consulte o problema conhecido no GitHub.

Importante

Se você estiver trabalhando em um aplicativo UWP, veja Migrar da UWP para o SDK do Aplicativo Windows.