2022LogoNotas de versão do Visual Studio 2022 versão 17.0


Dica

Assista às gravações do evento de lançamento do Visual Studio 2022 para saber mais sobre as novidades, ouvir dicas e truques e fazer o download de brindes digitais gratuitos.

Developer Community | Roteiro do Visual Studio 2022 | Requisitos do sistema | Compatibilidade | Código distribuível | Histórico do versões | Termos de licença | Blogs | Problemas conhecidos da versão mais recente | O que há de novo no Visual Studio Docs


Visual Studio 2022 versão 17.0

O suporte para o Visual Studio 2022 versão 17.0 terminou em julho de 2023, o que significa que não haverá mais atualizações de segurança para esta versão. Os assinantes corporativos e profissionais que estão usando o canal LTSC do Visual Studio 2022 17.0 devem adotar o canal atual ou a versão LTSC mais recente.

Leia sobre versões e datas de suporte do Visual Studio 2022.

Saiba mais sobre o ciclo de vida e a manutenção do produto do Visual Studio.

Visite o site do Visual Studio para acessar links para as versões mais atuais dos produtos do Visual Studio 2022. Para conferir as instruções sobre como instalar e atualizar o Visual Studio 2022, consulte Atualizar o Visual Studio 2022 para a versão mais recente. A Guia do Administrador do Visual Studio contém diretrizes sobre como implantar o Visual Studio em sua organização.

Versões do Visual Studio 2022 versão 17.0

Blog do Visual Studio 2022

O Blog do Visual Studio 2022 é a fonte oficial de insights do produto da equipe de engenharia do Visual Studio. É possível encontrar informações detalhadas sobre as versões do Visual Studio 2022 nas seguintes postagens:


17.0.23 Visual Studio 2022 versão 17.0.23

lançado em 11 de julho de 2023

Problemas resolvidos nesta versão da versão 17.0.23

  • A Microsoft está ciente de uma vulnerabilidade em que há uma possibilidade de injeção de endereço SMTP que pode acontecer na classe SmtpClient. Isso corresponde ao CVE-2022-26893 (não a uma CVE publicada, pois a vulnerabilidade é avaliada como média).

Resolução de avisos de segurança


17.0.22 Visual Studio 2022 versão 17.0.22

lançado em 13 de junho de 2023

Problemas resolvidos nesta versão da versão 17.0.22

  • A Microsoft está ciente de uma vulnerabilidade em que há uma possibilidade de injeção de endereço SMTP que pode acontecer na classe SmtpClient. Isso corresponde ao CVE-2022-26893 (não a uma CVE publicada, pois a vulnerabilidade é avaliada como média).

Resolução de avisos de segurança


17.0.21 Visual Studio 2022 versão 17.0.21

lançado em 11 de abril de 2023

Problemas resolvidos nesta versão da versão 17.0.21

  • Corrige uma falha quando a entrada inválida é enviada para o driver usado durante o treinamento PGO para drivers de modo kernel.
  • Correção de um problema no IIS Express que poderia causar uma falha ao atualizar dados de telemetria.
  • A Microsoft está ciente de uma vulnerabilidade em que há uma possibilidade de injeção de endereço SMTP que pode acontecer na classe SmtpClient. Isso corresponde ao CVE-2022-26893 (não a uma CVE publicada, pois a vulnerabilidade é avaliada como média).

Comunidade de Desenvolvedores

Resolução de avisos de segurança


17.0.20 Visual Studio 2022 versão 17.0.20

lançado em 14 de março de 2023

Problemas resolvidos nesta versão da versão 17.0.20

  • A Microsoft está ciente de uma vulnerabilidade em que há uma possibilidade de injeção de endereço SMTP que pode acontecer na classe SmtpClient. Isso corresponde ao CVE-2022-26893 (não a uma CVE publicada, pois a vulnerabilidade é avaliada como média).
  • O Git 2.39 renomeou o valor para credential.helper de "manager-core" para "manager". Consulte https://aka.ms/gcm/rename para obter mais informações.
  • Atualizações do pacote do mingit e do Git para Windows para v2.39.2, que aborda a CVE-2023-22490

Resolução de avisos de segurança


17.0.19 Visual Studio 2022 versão 17.0.19

lançado em 14 de fevereiro de 2023

Problemas resolvidos nesta versão da versão 17.0.19

  • Interpretador do CPython atualizado para a versão 3.9.13.
  • Atualizações do mingit e do pacote do Git para Windows para v2.39.1.1, que aborda a CVE-2022-41903

Resolução de avisos de segurança

17.0.18 Visual Studio 2022 versão 17.0.18

lançado em 10 de janeiro de 2023

Resolução de avisos de segurança

  • CVE-2023-21538 Vulnerabilidade de Negação de Serviço do .NET Existe uma vulnerabilidade de negação de serviço no .NET 6.0 em que um cliente mal-intencionado pode causar um excedente de pilha que pode resultar em um ataque de negação de serviço quando um invasor envia uma solicitação inválida para um ponto de extremidade exposto.

17.0.17 Visual Studio 2022 versão 17.0.17

lançado em 13 de dezembro de 2022

Resolução de avisos de segurança

  • CVE-2022-41089 Execução Remota de Código Existe uma vulnerabilidade de execução remota de código no .NET Core 3.1, .NET 6.0 e .NET 7.0, em que um ator mal-intencionado pode fazer com que um usuário execute código arbitrário como resultado da análise de arquivos xps criados com códigos maliciosos.

17.0.16 Visual Studio 2022 versão 17.0.16

lançado em 8 de novembro de 2022

Problemas resolvidos nesta versão da versão 17.0.16

Resolução de avisos de segurança


17.0.15 Visual Studio 2022 versão 17.0.15

lançado em 11 de outubro de 2022

Problemas resolvidos nesta versão da versão 17.0.15

  • Os administradores poderão atualizar o instalador do VS em um computador cliente offline de um layout sem atualizar o VS.

Resolução de avisos de segurança


17.0.14 Visual Studio 2022 versão 17.0.14

lançado em 13 de setembro de 2022

Problemas resolvidos nesta versão da versão 17.0.14

Resolução de avisos de segurança

CVE-2022-38013 Vulnerabilidade de Negação de Serviço do .NET Existe uma vulnerabilidade de negação de serviço no ASP.NET Core 3.1 e no .NET 6.0 em que um cliente mal-intencionado pode causar um excedente de pilha que pode resultar em um ataque de negação de serviço quando um invasor envia um conteúdo personalizado que é analisado durante o model binding.


17.0.13 Visual Studio 2022 versão 17.0.13

lançado em 9 de agosto de 2022

Problemas resolvidos nesta versão da versão 17.0.13

  • Aborda o Erro do Git após a atualização 17.1.4 – Comentários do Visual Studio que fornecem a opção de marcar um repositório git como seguro por meio do Visual Studio.
  • Atualiza o MinGit para a versão 2.37.1.1 para abordar o CVE – CVE-2022-29187 (mitre.org), que expôs os usuários a uma vulnerabilidade em que navegar para um repositório que eles possuem, mas que outro usuário pode gravar pode ser explorado para executar código mal-intencionado.
  • Atualiza o Git para Windows para v2.37.1.1 que trata do CVE-2022-31012.

Resolução de avisos de segurança


17.0.12 Visual Studio 2022 versão 17.0.12

lançado em 12 de julho de 2022

Problemas resolvidos nesta versão da versão 17.0.12

  • LibraryManager atualizado para acomodar alterações na API cdnjs
  • Corrigido o bug em que o editor de texto estaria em branco ao abrir um documento ou falhar ao digitar.

Resolução de avisos de segurança


17.0.11 Visual Studio 2022 versão 17.0.11

lançado em 14 de junho de 2022

Problemas resolvidos nesta versão da versão 17.0.11

  • Atualizado o Conjunto de Ferramentas do Dev 16.11 C++ lado a lado para a versão 14.29.30145.00. A versão mais recente do Conjunto de Ferramentas do C++ do Dev 16.11 contém correções de bugs importantes, incluindo a correção de todos os relatórios de defeito restantes do C++20. Consulte as notas de versão 16.11.14 para obter mais informações.

Da Developer Community

Resolução de avisos de segurança


17.0.10 Visual Studio 2022 versão 17.0.10

lançado em 10 de maio de 2022

Problemas resolvidos nesta versão da versão 17.0.10

  • Versão do Git para Windows consumida pelo Visual Studio e componente opcional instalável atualizada para 2.36.0.1
  • Correção de um problema com a integração do git, em que, se os branches de pull/sincronização divergirem, a janela de saída não mostraria uma dica localizada sobre como resolvê-la.
  • Corrigido um problema em que, ao abrir um repositório Git no Visual Studio, a janela de saída mostra "Ocorreu um ou mais erros" em vez do motivo pelo qual a falha está acontecendo e como resolvê-la.
  • Atualização da linha de base webview2 em Daytona

Da Developer Community

Resolução de avisos de segurança

CVE-2022-29117 Vulnerabilidade de Negação de Serviço do .NET Existe uma vulnerabilidade no .NET 6.0, .NET 5.0 e .NET Core 3.1 em que um cliente mal-intencionado pode manipular cookies e causar uma negação de serviço.

CVE-2022-23267 Vulnerabilidade de Negação de Serviço do .NET Core Uma vulnerabilidade existe no .NET 6.0, .NET 5.0 e .NET Core 3.1, em que um cliente mal-intencionado pode causar uma negação de serviço por meio de alocações de memória em excesso por meio do HttpClient.

CVE-2022-29145 Vulnerabilidade de Negação de Serviço do .NET Existe uma vulnerabilidade no .NET 6.0, .NET 5.0 e .NET Core 3.1 em que um cliente mal-intencionado pode causar uma negação de serviço quando formulários HTML são analisados.

CVE-2022-24513 Vulnerabilidade de elevação de privilégio Uma vulnerabilidade potencial de elevação de privilégio existe quando o serviço atualizador do Microsoft Visual Studio analisa incorretamente os dados de configuração local.


17.0.9 Visual Studio 2022 versão 17.0.9

lançado em 19 abril de 2022

Problemas resolvidos nesta versão da versão 17.0.9

  • Correção da regressão vctip.exe de 17.0.8
  • Correção de um bug que impedia que alguns aplicativos criados com o ASAN (Address Sanitizer) carregassem no Windows 11.
  • Correção de outro problema de ASAN em que aplicativos com vários threads com contenção de heap podem experimentar deadlocks, relatórios falsos de "ponteiro selvagem liberado" ou um deadlock durante a saída do processo.
  • Corrigido o problema "Não é possível instalar nenhuma extensão (vsix) para Visual Studio em um computador offline".

17.0.8 Visual Studio 2022 versão 17.0.8

lançado em 12 de abril de 2022

Problemas resolvidos nesta versão da versão 17.0.8

Da Developer Community

Resolução de avisos de segurança

CVE-2022-24765 Vulnerabilidade de elevação de privilégio Existe uma vulnerabilidade potencial de elevação de privilégio no Git para Windows, na qual as operações do Git podem ser executadas fora de um repositório durante a busca de um diretório Git. O Git para Windows agora é atualizado para a versão 2.35.2.1.

CVE-2022-24767 Vulnerabilidade de sequestro da DLL Existe uma vulnerabilidade potencial de sequestro de DLL no instalador do Git para Windows, ao executar o desinstalador na conta de usuário SYSTEM. O Git para Windows agora é atualizado para a versão 2.35.2.1.

CVE-2022-24513 Vulnerabilidade de elevação de privilégio Uma vulnerabilidade potencial de elevação de privilégio existe quando o serviço atualizador do Microsoft Visual Studio analisa incorretamente os dados de configuração local.


17.0.7 Visual Studio 2022 versão 17.0.7

lançado em 8 de março de 2022

Problemas resolvidos nesta versão da versão 17.0.7

  • Melhor desempenho em monitores de alta taxa de atualização.
  • Correção de um travamento durante a inicialização do Visual Studio para usuários de SKU da Comunidade.

Da Developer Community

A Developer Community tem uma lista completa de correções disponíveis na versão 17.0.

Resolução de avisos de segurança

CVE-2020-8927 Vulnerabilidade Uma vulnerabilidade de execução remota de código existe no .NET 5.0 e no .NET Core 3.1, onde existe um estouro de buffer nas versões da biblioteca Brotli antes da 1.0.8.

CVE-2022-24464 Vulnerabilidade Existe uma vulnerabilidade de negação de serviço no .NET 6.0, .NET 5.0 e .NET CORE 3.1 ao analisar determinados tipos de solicitações de formulário http.

CVE-2022-24512 Vulnerabilidade Uma vulnerabilidade de execução remota de código existe no .NET 6.0, .NET 5.0 e .NET Core 3.1, em que ocorre uma buffer de pilha na rotina de Análise Dupla do .NET.

CVE-2021-3711 Vulnerabilidade de estouro de buffer do OpenSSL Existe uma possível vulnerabilidade de estouro de buffer no OpenSSL, que é consumido pelo Git para Windows. O Git para Windows agora é atualizado para a versão 2.35.1.2, o que resolve esse problema.


17.0.6 Visual Studio 2022 versão 17.0.6

lançado em 8 de fevereiro de 2022

Problemas resolvidos nesta versão da versão 17.0.6

Resolução de avisos de segurança

CVE-2022-21986 Vulnerabilidade Existe uma vulnerabilidade de Negação de Serviço no .NET 5.0 e no .NET 6.0 quando o servidor Web Kestrel processa determinadas solicitações HTTP/2 e HTTP/3


17.0.5 Visual Studio 2022 versão 17.0.5

lançado em 13 de janeiro de 2022

Problemas resolvidos nesta versão da versão 17.0.5

  • Instância ocasional abordada em que o VSInstr não sairia ao instrumentar um binário com metadados voláteis, fazendo com que a Criação de Perfil de Instrumentação falhasse.
  • Correção dos problemas em que link.exe ocasionalmente falha ou trava ao produzir PDB junto com binário.
  • Correção de um bug em C++ Concurrency::p arallel_for_each que estava falhando no processo de chamada devido ao estouro de inteiro.
  • Correção de um bug nas comparações de CString da ATL em modos de linguagem C++20 e C++Latest.
  • Correção de uma falha durante a execução de um binário com PGI no arm64 e arm64ec quando um grande número de investigações de pogo foi usado.
  • Correção de um problema em que a otimização de funções muito grandes poderia gerar código incorreto.

17.0.4 Visual Studio 2022 versão 17.0.4

lançado em 16 de dezembro de 2021

Problemas resolvidos nesta versão da versão 17.0.4

  • Adiciona suporte ao Xcode 13.2.

17.0.3 Visual Studio 2022 versão 17.0.3

lançado em 14 de dezembro de 2021

Problemas resolvidos nesta versão da versão 17.0.3

Renderização de caracteres de controle de texto bidirecional

Para evitar uma exploração potencialmente mal-intencionada que permita que o código seja deturpado, o editor do Visual Studio não permitirá mais que caracteres de controle de texto bidirecional manipulem a ordem dos caracteres na superfície de edição. Uma nova opção fará com que esses caracteres de controle de texto bidirecional sejam mostrados com espaços reservados. Os caracteres de controle de texto bidirecional ainda estarão presentes no código, pois esse comportamento afeta apenas o que é renderizado no editor de código.

VS with bidirectional text control characters replaced with placeholders

Essa funcionalidade é controlada em Ferramentas\Opções. Na página Editor de Texto\Geral, há uma opção para "Mostrar caracteres de controle de texto bidirecional", que será marcada por padrão. Quando marcada, todos os caracteres de controle de texto bidirecional serão renderizados como espaços reservados. Desmarcar a opção será revertido para o comportamento anterior em que esses caracteres não são renderizados.

Um caractere Unicode será considerado um caractere de controle de texto bidirecional se ele se enquadrar em qualquer um dos seguintes intervalos: U+061c, U+200e-U+200f, U+202a-U+202e, U+2066-U+2069.

  • Correção de uma falha no Web Forms Designer
  • Corrigido um problema em que a conclusão do CSS para !important inseriria texto no local errado em arquivos HTML ou Razor.
  • Correção de uma regressão com a Recarga Dinâmica de XAML do Xamarin.Forms conflitante com bibliotecas que compartilhavam dependências semelhantes, como o SignalR. A Recarga Dinâmica de XAML do Xamarin.Forms agora deve ser capaz de interoperar, independentemente do que seja carregado em seu aplicativo.
  • Correção de um problema em que páginas de visão geral do projeto, Ferramentas de Diagnóstico ou janelas do Criador de Perfil de Desempenho às vezes ficavam em branco.
  • Correção de um problema na edição de arquivo razor em que o cursor às vezes saltava para um local diferente no meio da digitação.

Da Developer Community

A Developer Community tem uma lista completa de correções disponíveis na versão 17.0.

Resolução de avisos de segurança

CVE-2021-43877Vulnerabilidade do .NET Existe uma vulnerabilidade de elevação de privilégio no ANCM que pode permitir a elevação de privilégio quando aplicativos .NET core, .NET 5 e .NET 6 são hospedados no IIS.

CVE-2021-42574 Vulnerabilidade de texto bidirecional Os caracteres de controle de texto bidirecional podem ser usados para fazer com que o código seja renderizado no editor de forma diferente do que está contido no disco.


17.0.2 Visual Studio 2022 versão 17.0.2

lançado em 30 de novembro de 2021

Problemas resolvidos nesta versão da versão 17.0.2

  • Correção para codegen silencioso-ruim com operações semelhantes a memmove com dados sobrepostos
  • Adição de mensagens na janela de saída que aparece ao usar módulos C++ ou unidades de cabeçalho. Isso contém problemas conhecidos no momento usando módulos ou unidades de cabeçalho com o IntelliSense.
  • Corrija o problema com as Páginas de Visão Geral do CMake e o editor do CMakeSettings presos em "Aguardando que o IntelliSense conclua a inicialização..."
  • Corrigido um problema em que um destruidor modelo envolvido em uma hierarquia de classe com inicializadores de membros de dados pode ser instanciado muito cedo, potencialmente levando a diagnósticos incorretos sobre usos de tipos indefinidos ou outros erros.
  • O Python 3.9.7 foi adicionado à carga de trabalho do Python. O Python 3.7.8 foi removido devido a uma vulnerabilidade de segurança.
  • Correção de um problema em que o Find Next (F3) e o Find Next Selected (Ctrl+F3) às vezes saltavam para a primeira ocorrência no arquivo em vez da próxima ocorrência.
  • Resolva o problema em que as datas nas interfaces do usuário de controle de versão não respeitavam a localidade do sistema operacional do cliente.
  • Resolva um problema no Windows 11 em que os clientes definem o Terminal do Windows como padrão e o depurador não pode parar de depurar um aplicativo de console corretamente e impedir inícios futuros.

Da Developer Community

A Developer Community tem uma lista completa de correções disponíveis na versão 17.0.


17.0.1 Visual Studio 2022 versão 17.0.1

lançado em 16 de novembro de 2021

Problemas resolvidos nesta versão da versão 17.0.1

  • Correção de uma falha ao usar builds em lote.
  • Correção de uma falha ao iniciar projetos do Xamarin.Forms com o Recarga Dinâmica de XAML habilitado.

Da Developer Community

A Developer Community tem uma lista completa de correções disponíveis na versão 17.0.

17.0.0 Visual Studio 2022 versão 17.0.0

lançado em 08 de novembro de 2021

Resumo das novidades desta versão do Visual Studio 2022 versão 17.0.0

64 bits

  • devenv.exe agora é somente de 64 bits

Serviços de Nuvem do Azure

  • Não há suporte para novos projetos do Serviço de Nuvem do Azure (clássico) devido à preterida no Azure para novos clientes. Os projetos do Serviço de Nuvem do Azure (suporte estendido) são a substituição recomendada.
  • Os projetos existentes do Serviço de Nuvem do Azure (clássico) podem ser abertos e têm suporte total.

C++

  • As ferramentas de build v143 agora estão disponíveis por meio do instalador do Visual Studio, bem como das ferramentas de build autônomas.
  • A nova experiência de Recarga Dinâmica agora está disponível para aplicativos C++ nativos durante a execução no depurador. Ele dá suporte a projetos MSBuild e CMake. Para obter mais informações, consulte nossa seção Recarga Dinâmica abaixo.
  • Agora você pode compilar e depurar nativamente no WSL2 sem estabelecer uma conexão SSH. Há suporte para projetos CMake multiplataforma e projetos Linux baseados em MSBuild.
  • O Visual Studio agora dá suporte à opção buildPresets.targets em CMakePresets.json. Isso permite que você crie um subconjunto de destinos em seu projeto do CMake.
  • O menu Projeto em projetos do CMake foi simplificado e expõe as opções "Excluir Cache e Reconfigurar" e "Exibir Cache".
  • As Páginas de Visão Geral do CMake foram atualizadas para dar suporte a CMakePresets.json.
  • Sinalizador implementado /scanDependencies para gerar dependências de módulo C++20 para projetos do CMake, conforme descrito em P1689r4. Esta é uma etapa para dar suporte à criação de projetos baseados em módulos com o CMake e estamos trabalhando para concluir esse suporte em versões posteriores.
  • Agora você pode depurar processos em execução em sistemas remotos do Visual Studio com LLDB.
  • Atualizamos a versão do CMake enviada com o Visual Studio para a versão 3.21. Consulte as notas de versão do CMake 3.21 para obter detalhes sobre o que está disponível.
  • As ferramentas LLVM enviadas com o Visual Studio foram atualizadas para a LLVM 12. Para obter detalhes, confira Notas sobre a versão do LLVM.
  • O conjunto de ferramentas MSVC agora usa o padrão de hash de origem SHA-256 em registros de depuração. Anteriormente, o conjunto de ferramentas usava MD5 para hash de origem por padrão.
  • O Desenvolvimento de jogos com carga de trabalho C++ agora instala o Mecanismo Unreal mais recente com suporte para Visual Studio 2022.
  • Melhorias feitas no C++ IntelliSense ao fornecer realce de navegação e sintaxe para tipos de módulos importados e unidades de cabeçalho.
  • Melhor desempenho do IntelliSense do C++ otimizando o uso de cabeçalho armazenado em cache e o acesso ao banco de dados de símbolos, fornecendo tempos de carga aprimorados para entrar em seu código.
  • O Linter de Código do IntelliSense para C++ agora está ativado por padrão, fornecendo sugestões instantâneas conforme o tipo e sugestões de correção para defeitos de código comuns.
  • Suporte para libfuzzer sob a opção -fsanitize=fuzzer. Confira a documentação do para obter mais detalhes.
  • Melhoramos a detecção de desreferência de ponteiro nulo em nossas ferramentas de análise de código.
  • A análise de código agora impõe que os valores retornados de funções anotadas com _Check_return_ ou _Must_inspect_result_ que precisa ser verificados.
  • Suporte adicionado para gsl::not_null para análise de código.
  • Atualizado para o NDK r21 LTS na carga de trabalho de Desenvolvimento Móvel do C++.
  • Cabeçalhos C++ AMP foram preteridos. A inclusão <de amp.h> em um projeto C++ gerará erros de build. Para silenciar os erros, defina _SILENCE_AMP_DEPRECATION_WARNINGS. Consulte nossos links de substituição AMP para obter mais detalhes.

Depuração e Diagnóstico

  • Anexar a melhorias da caixa de diálogo do processo
  • Melhorias do auxiliar de exceção
  • Forçar Execução até Clicar
  • Análise de diagnóstico de despejo de memória
  • Lançamos um novo tipo de ponto de interrupção chamado Ponto de Interrupção Dependente, que permite que você configure um ponto de interrupção para ser habilitado somente se outro ponto de interrupção for atingido pela primeira vez.
  • Adicionamos mais atualizações ao nó Fontes Extrenal, agora você pode ver o módulo no sub nó "Módulos sem Fontes" e carregar o próprio gerenciador de soluções de formulário de símbolos.
  • Melhorias na Sarjeta de Ponto de Interrupção
  • Ponto de interrupção temporário
  • Arrastar e soltar ponto de interrupção
  • Nó de Fontes Externas no Gerenciador de Soluções
  • Anexar a melhorias da caixa de diálogo do processo

Personalização

  • Adição de guias de cor para guias verticais e horizontais
  • Adicionado o Pacote de Temas e trabalhou com autores de temas do VS Code para iniciar a coleção de temas personalizados
  • Conversor de tema criado para converter temas de código VS para trabalhar no Visual Studio 2022
  • Funcionalidade adicionada para sincronizar o tema do Visual Studio com o tema do Windows
  • Foram adicionados novos recursos de gerenciamento de documentos que inclduding personalizando a largura da guia, o documento ativo em negrito e o botão de fechamento adicional no docwell.

Editor

  • Navegação de sub-palavra adicionada
  • O salvamento automático agora está disponível como uma versão prévia do recurso
  • Experiência de cópia/colagem de vários cursos

Extensibilidade

  • APIs removidas dos assemblies Microsoft.VisualStudio.Language.Client
  • O SDK do VS contém várias alterações interruptivas e as extensões do Visual Studio 2019 não funcionarão em 2022. Consulte a documentação do VSSDK para obter mais informações.
  • Os assemblies de referência do SDK do VS não estão mais instalados na pasta VSSDK\VisualStudioIntegration\Common\Assemblies. Se o build estava contando com esses assemblies, migre seu projeto para usar pacotes NuGet. Para cenários offline:
    1. Mantenha um feed nuget na organização do qual restaurar os pacotes nuget.
    2. Faça check-in dos binários.
  • Adição de correções de alteração da falha de ILanguageClient

Serviços de Nuvem

  • O Azurite será usado para emulação local do Armazenamento do Microsoft Azure em vez do Emulador de Armazenamento do Azure mais antigo e não mais desenvolvido ativamente.

Ferramentas do Git

Menu Ajuda

  • Durante a 17.0, remodelamos o Menu de Ajuda com material de Introdução e dicas/truques úteis.
  • Fornece mais colaboração com nossa equipe de desenvolvimento adicionando itens como acesso à Developer Community, Notas de Versão, o Roteiro do produto do Visual Studio e nossas páginas de Mídia Social.

Experiência de Recarga Dinâmica

  • A Recarga Dinâmica agora está disponível para desenvolvedores do .NET por meio do depurador do Visual Studio e sem o depurador para muitos tipos de aplicativo .NET 6
  • A Recarga Dinâmica agora está disponível para desenvolvedores do C++ ao usar o Depurador do Visual Studio

Para obter mais detalhes, consulte o link acima

IntelliCode

JavaScript/TypeScript

  • Lançamos um novo tipo de projeto JavaScript/TypeScript que cria projetos JavaScript/TypeScript autônomos com ferramentas adicionais. Você poderá criar projetos Angular e React no Visual Studio usando a versão da estrutura instalada em seu computador.
  • O teste de JavaScript e TypeScript agora está disponível no Gerenciador de Testes do Visual Studio
  • NPM GUI disponível, portanto, agora você pode baixar módulos NPM da mesma maneira que você baixa pacotes Nuget

SDK do .NET 6

  • O SDK do .NET 6 está incluído no Visual Studio 2022

Produtividade do .NET

  • Introduzir a refatoração de parâmetro pode mover um novo parâmetro da implementação do método para seus chamadores.
  • Controlar a fonte de valor para análise de fluxo de dados
  • Opção para sublinhar variáveis que são atribuídas novamente
  • Opção de pesquisa adicionada na caixa de diálogo Gerar Substituições
  • Informações rápidas para marcas de <código> XML agora preservam blocos de espaço em branco e CDATA
  • A janela Localizar Todas as Referências agora agrupará projetos de vários destinos
  • Refatoração para remover tipos repetitivos no Visual Basic
  • Ir para Implementação não navegará mais para membros com declarações abstratas que também são substituídas.
  • Sincronizar namespaces para corresponder à estrutura de pastas do Gerenciador de Soluções
  • Configurar a análise de código em segundo plano do Gerenciador de Soluções
  • Os tipos de referência que permitem valor nulo agora estão habilitados por padrão para novos projetos do .NET
  • Refatoração de namespace com escopo de arquivo do C# 10.0
  • A navegação para fontes descompiladas agora está ativada por padrão
  • Refatoração para preferir verificação nula em vez de verificação de tipo
  • Os comentários XML agora gerarão automaticamente uma marca <exception> quando um método gerar explicitamente exceções
  • A Margem de Herança agora está habilitada por padrão

Linguagens de programação

  • C#10

Razor (ASP.NET Core) Editor

  • Redução dos congelamentos de interface do usuário e melhor desempenho na inicialização da solução
  • Colorização semântica mais rápida até 2x em algumas soluções
  • Suporte a F7 (código de exibição) em arquivos Razor
  • Suporte a snippet em arquivos Razor que concluirão uma sessão de snippet com uma única guia em vez de pressionar tab-tab
  • Melhor formatação em @code blocos quando há componentes HTML e Razor aninhados
  • Suporte à Recarga Dinâmica em arquivos Razor
  • Aprimoramentos de desempenho
  • Aprimoramentos de formatação e recuo
  • Novas cores do editor Razor
  • Os TagHelpers agora estão coloridos e têm dicas de ferramentas de suporte de classificação de informações rápidas e de conclusão
  • Realce de chave angular e navegação para constructos do Razor
  • Os comentários agora têm preenchimento automático, recuo inteligente, inclusão automática de continuações de comentários e navegação de comentários em bloco

Teste remoto

  • Versão prévia experimental muito inicial da habilitação de testes em execução em ambientes remotos, como contêineres linux, WSL e conexões SSH.

Suporte a ferramentas de teste

  • Mostrar no Gerenciador de Testes
  • Novas versões da plataforma de teste a partir da 17.0 não poderão executar testes genéricos e testes ordenados. Esses recursos específicos são fornecidos apenas como parte de uma versão inicial do MSTestv1 e não estão incluídos no MSTestv2. Vemos que o uso muito baixo desses recursos e testes ordenados agora é considerado contrário às práticas recomendadas de teste.
  • Algumas experiências de teste não estarão disponíveis na versão 17.0, incluindo a criação de novos arquivos TestSettings e o editor TestSettings. As execuções de teste ainda poderão usar arquivos TestSettings, no entanto, TestSettings foi substituído por RunSettings e incentivamos os usuários a migrar melhor desempenho e funcionalidade. Leia mais.
  • O Teste de Carga da Web e o Teste de IU Codificado dão suporte a atualizações. Testes de interface do usuário codificados e [Testes de Carga da Web](Fim da vida útil do serviço de teste de carga baseado em nuvem | O Blog do Azure DevOps (microsoft.com) foi oficialmente preterido em 2019. Para minimizar o impacto aos usuários, há suporte mínimo para esses recursos no Visual Studio 2022. Incentivamos fortemente os usuários a sair do Teste de IU Codificado e do Teste de Carga da Web.

População de caixas de ferramentas para SDKs de Extensão UWP

  • Os SDKs de Extensão UWP agora são necessários para declarar explicitamente os tipos que desejam aparecer na Caixa de Ferramentas listando-os em seu arquivo SdkManifest.xml. O comportamento das versões mais antigas do Visual Studio é inalterado; eles ignorarão a lista de controles no manifesto e, em vez disso, enumerarão dinamicamente os tipos de controle nos assemblies do SDK.

Locais Confiáveis

  • Renovamos a funcionalidade "Configurações de Confiança" e agora podemos mostrar um aviso sempre que o código não confiável (por exemplo, arquivos, projetos ou pastas) estiver prestes a ser aberto dentro do IDE.
  • As verificações de confiança agora são feitas no nível da pasta da solução
  • Os projetos criados pelo usuário são adicionados automaticamente à lista confiável
  • Os usuários podem ignorar verificações de confiança em locais temporários criados pelo Visual Studio

Atualizações, LTSC e Implantação

  • Com o Visual Studio 2022, haverá várias linhas de base de manutenção com suporte simultanouemente que serão lançadas no outono e na primavera. Para obter mais detalhes, consulte a documentação do Visual Studio Release Rhythm e o Ciclo de Vida do Produto do Visual Studio 2022.
  • O novo instalador que vem com o Visual Studio 2022 agora tem a capacidade de configurar de onde o produto do Visual Studio deve obter suas atualizações. Isso permite que você escolha atualizações de um LTSC diferente ou, se estiver em um ambiente corporativo gerenciado, poderá configurar o cliente para obter suas atualizações de um layout. A capacidade de configurar a origem para atualizações é uma nova funcionalidade que vem com o Instalador do Visual Studio e, portanto, o comportamento é aplicável a versões de nível inferior do Visual Studio também, como o Visual Studio 2019. Para obter informações adicionais sobre como configurar o canal de atualização, consulte a documentação do Atualizar o Visual Studio. Para obter informações adicionais sobre como fazer isso funcionar para layouts de rede, consulte o Guia de administradores do Visual Studio.
  • Os administradores de TI agora podem relatar problemas sem ter o Visual Studio instalado.

Interface do Usuário

  • Os ícones padrão foram atualizados e atualizados.

Ferramentas da Web

  • A página Publicar resumo agora tem ações para iniciar/parar a depuração remota e a criação de perfil em '...' menu no canto superior direito da seção 'Hosting'
  • A página Serviços Conectados agora tem uma ação para iniciar o Gerenciador de Armazenamento
  • O modelo "ASP.NET Core Empty" que vem com o .NET 6 está usando o novo paradigma de "APIs mínimas" para o qual começamos a adicionar suporte
  • O Azurite será usado para emulação local do Armazenamento do Microsoft Azure em vez do Emulador de Armazenamento do Azure mais antigo e não mais desenvolvido ativamente.
  • Você pode adicionar autenticação ao aplicativo ASP.NET Core usando a plataforma de identidade da Microsoft por meio da experiência de Serviços Conectados no Visual Studio.

Designer XAML do WPF para .NET Framework

  • O Designer XAML do WPF atual para .NET Framework é substituído por um novo Designer XAML do WPF para .NET Framework, com base na mesma arquitetura usada para o Designer XAML do WPF para .NET (.NET Core). A experiência do Visual Studio terá a mesma aparência, mas os fornecedores de controle de terceiros precisam dar suporte ao novo modelo de extensibilidade, já que o modelo anterior se baseou .design.dll e Microsoft.Windows.Design.Extensibility foi preterido. Se você já tiver criado uma extensão .designtools.dll para .NET (.NET Core), essa mesma extensão funcionará para o novo Designer XAML do WPF para .NET Framework. Consulte o documento de migração abaixo para obter mais informações sobre como migrar para o novo modelo de extensibilidade.

XAML Hot Reload

  • Alterações de Recarga Dinâmica de XAML – pequenas alterações na barra de ferramentas e configurações no aplicativo

Visualização ao vivo do XAML

  • O XAML Live Preview agora está disponível para desenvolvedores do WPF, UWP, WinUI e Xamarin.Forms executando seus aplicativos no Android Emulator ou como um aplicativo da área de trabalho UWP. O Live Preview captura uma interface do usuário de aplicativos em execução e a coloca em uma janela encaixada no Visual Studio. Isso facilita o uso da Recarga Dinâmica de XAML para alterar o aplicativo enquanto vê essas alterações dentro do próprio Visual Studio, sem a necessidade de fazer uma guia entre o aplicativo em execução e o Visual Studio enquanto faz alterações de código XAML ao vivo.

Para obter mais informações, clique no link acima.

Dados de exemplo XAML

  • Os dados de exemplo de tempo de design agora serão adicionados por padrão ao criar controles DataGrid, ListBox e ListView da caixa de ferramentas em aplicativos WPF. Para desabilitar esse comportamento, desmarque "Adicionar automaticamente dados de exemplo na criação de elementos" em Ferramentas –> Opções –> Designer XAML.".
  • Para saber mais sobre dados de exemplo, visite a documentação dados de exemplo.

Experiência de associação XAML aprimorada

  • Fizemos várias melhorias para tornar a associação de dados rápida e fácil, como acesso rápido à caixa de diálogo Associação de Dados do Inspetor de Propriedades, capacidade de definir a associação de Ações Rápidas, capacidade de escolher a propriedade a ser associada dentro da caixa de diálogo Associação de Dados.

Para obter mais informações, clique no link acima.

Problemas conhecidos

Desenvolvimento para dispositivos móveis com .NET

Ferramentas do Python

C++ IntelliSense

Detalhes das novidades desta versão do Visual Studio 2022 versão 17.0.0

Depuração e diagnóstico

  • Anexar a melhorias da caixa de diálogo do processo
  • Nova exibição de lista de processos pai/filho por meio de alternância na parte inferior da janela
    • A seleção do modo de exibição deve ser mantida.
    • A tecla esquerda no teclado navega para o processo pai no modo de exibição pai/filho.
    • Todas as colunas devem ser classificadas como a exibição original.
  • A coluna Nova Linha de Comando está disponível em ambos os modos de exibição.
  • O nome do pool de aplicativos é mostrado na "coluna Título" para processos w3wp

! [Anexar ao processo] (media/17.0/17.0_P2_attach_to _process_3.png)

  • Adicionado um Auxiliar de Exceção no bloco catch. Isso exibirá o auxiliar de exceção com as informações de exceção relevantes quando uma etapa gerenciada fizer com que uma exceção seja lançada e a etapa for concluída em um bloco catch.
  • Um novo botão "continuar": mostrando o auxiliar de exceção em exceções "capturadas".

Exception Handler Updates

  • Adicionamos uma opção para forçar a execução para clicar que executará o depurador até que a posição do cursor selecionada seja alcançada, ignorando todos os pontos de interrupção no meio.
  • Você pode executar isso clicando em "Forçar Executar para Clicar" no menu de clique com o botão direito do mouse na linha de código desejada.

Force Run to Cursor

  • Quando o aplicativo está no modo de depuração, você também pode executar o "Force Run to Click" clicando no glifo verde que aparece ao lado de uma linha de código quando o mouse passa o mouse ao segurar a tecla SHIFT.

Force Run to Cursor Glyph

  • Análise de diagnóstico de despejo de memória
    • Melhoramos o mecanismo do analisador para encontrar mais problemas de sincronização sobre assíncrona em despejos de memória ASP.NET Principais.
    • Localize quais partes do código estão consumindo mais recursos de CPU examinando os cinco principais threads por tempo de CPU.
    • Examine todo o heap gerenciado em busca de sinais de pressão de memória na Geração 0, 1, 2 e no Heap de Objetos Grandes.
    • Se você tiver um despejo de memória, poderá encontrar a segunda exceção de chance e o thread que causaram a falha do aplicativo.
    • Lutando para formar uma hipótese de diagnóstico? Quando a causa exata de uma falha ou travamento não é bem conhecida, você pode usar o analisador de exceção para localizar e revisar rapidamente todas as exceções no heap.
    • Para aqueles momentos em que a análise de memória é importante, melhoramos a heurística do analisador de filas do Finalizador. Agora nos concentramos em seu código e excluímos objetos gerenciados pela estrutura do .NET.

Ponto de interrupção dependente

Esse é um novo ponto de interrupção que permite que o usuário configure um ponto de interrupção para ser habilitado somente se outro ponto de interrupção for atingido pela primeira vez. Ao depurar, o depurador do Visual Studio só pausará o aplicativo no ponto de interrupção Dependente se o ponto de interrupção de pré-requisito for atingido. Você pode converter qualquer ponto de interrupção em ponto de interrupção dependente habilitando a caixa de seleção "Habilitar somente quando o ponto de interrupção de acompanhamento for atingido" na janela de configurações e selecionando o ponto de interrupção de pré-requisito na lista suspensa na qual você deseja configurar o ponto de interrupção Dependente.

Dependent Breakpoint

Melhorias na Sarjeta de Ponto de Interrupção

Adicionamos um novo glifo de ponto de interrupção para indicar o local em que o usuário pode definir um ponto de interrupção.

Breakpoint Glyph

O clique com o botão direito do mouse nesse glifo de ponto de interrupção fornecerá um novo menu de contexto com opções; que fornece uma maneira rápida de criar pontos de interrupção avançados (ponto de interrupção condicional, tracepoint e ponto de interrupção temporário) em menos cliques.

Breakpoint Context Menu

Ponto de interrupção temporário

Esse é um novo ponto de interrupção que permite que o usuário interrompa o código apenas uma vez. Ao depurar, o depurador do Visual Studio só pausará o runtime do aplicativo uma vez para esse ponto de interrupção e o removerá imediatamente após ele ter sido atingido. Você pode converter qualquer ponto de interrupção em um ponto de interrupção temporário habilitando a caixa de seleção "Remover ponto de interrupção após a ocorrência" da janela de configurações. Como alternativa, você pode usar o novo menu de contexto de clique com o botão direito do mouse na sarjeta do ponto de interrupção para definir esse ponto de interrupção.

Temporary Breakpoint

Arrastar e soltar ponto de interrupção

Adicionamos o gesto de arrastar e soltar para os pontos de interrupção. Agora você pode manter o ponto de interrupção e liberado na linha de código desejada para mover o ponto de interrupção de um local para outro. Ele funciona para nosso ponto de interrupção avançado, desde que as variáveis de ações/condição estejam dentro do contexto.

Drag and Drop Breakpoint

Nó de Fontes Externas no Gerenciador de Soluções

Adicionamos um novo nó "Fontes Externas" no Gerenciador de Soluções. No momento, isso só será exibido durante a depuração e mostrará fontes para módulos gerenciados com símbolos carregados que contêm informações do Servidor de Origem ou do Source Link. Durante a depuração, qualquer arquivo de símbolo gerenciado carregado (.pdb) que tenha informações do Servidor de Origem presentes aparecerá nesse nó. Você pode procurar arquivos como qualquer outra pasta do Gerenciador de Soluções ou clicar duas vezes em um item para baixar o arquivo do Servidor de Origem e abri-lo no Editor do VS. External Sources node in Solution explorer

Anexar a melhorias da caixa de diálogo de processo

Adicionamos uma nova caixa de seleção de atualização automática na caixa de diálogo anexar ao processo, que ao verificar atualiza a lista de processos automaticamente com os processos disponíveis. A nova opção "Selecionar qualquer janela da área de trabalho" na caixa de diálogo anexar ao processo, permite que o usuário escolha qualquer janela em execução na área de trabalho e anexe ao processo associado para depuração.

Attach to process Dialog Improvements

Análise de diagnóstico de despejo de memória

Localizar os quadros de chamada raiz quando ocorre uma Exceção de Stack Overflow pode ser difícil e demorado. Nossos analisadores mais recentes apresentam uma exibição conveniente da Pilha de Chamadas e remove quadros repetitivos e barulhentos para uma análise de problema mais rápida.

Personalização

Converter temas do VS Code em temas do Visual Studio

Criamos uma ferramenta de Conversor de Tema que pode converter temas do VS Code para funcionar no Visual Studio. Experimente aqui.

Novo Pacote de Temas do Visual Studio

Os temas padrão do VS Code agora estão disponíveis como um Pacote de Temas do Visual Studio. Dê uma olhada no pacote de temas aqui.

Sincronizar tema com o sistema operacional Windows

Adicionamos a capacidade de sincronizar seu tema do Visual Studio com o tema do Windows, para que seu tema possa se ajustar com base na quantidade de luz ambiente disponível. Para habilitar isso, navegue até o Tema > de Ferramentas > Usar Configuração do Sistema.

Guias de cor

Para habilitar as guias coloridas, navegue até Ferramentas > Opções > Guias e Janelas e habilite Colorir Guias.

Color tabs

Editor

Navegação de sub palavras

Ctrl+Alt+Seta para a esquerda e Ctrl+Alt+Seta para a direita agora navegarão por sub palavra. Por exemplo, a cadeia de caracteres "HelloWorld" identifica "Hello" e "World" como sub-palavras. Habilitar a Navegação de sub palavras em Ferramentas > Opções > Editor de texto > Geral fará com que comandos relacionados ao word (por exemplo, TransposeWord) interajam com sub palavras.

Salvamento automático

Em Ferramentas > Opções > Ambiente > Recursos , o salvamento automático agora está disponível. Se habilitado, quando o aplicativo do Visual Studio perde o foco (por exemplo, outra janela obtém o foco), todos os documentos sujos serão salvos no disco, se possível. Se qualquer arquivo não puder ser salvo, ele permanecerá sujo até que o usuário o salve explicitamente (com os comandos Salvar ou Salvar como... ).

Experiência de cópia\colagem de vários cuidados

Melhoramos a experiência de copiar e colar com vários cuidados. Anteriormente, a colagem de várias linhas em vários conjuntos gera a duplicação de toda a área de transferência em cada conjunto. Agora, colar várias linhas no mesmo número de conjuntos insere cada linha em um respectivo conjunto. Para usar várias teclas, pressione o Alt+Shift+clique do mouse ou Alt+Shift+. E use a Ctrl+Shift+tecla de direção para expandir as seleções. Em seguida, pressione Ctrl+C para copiar o texto em várias seleções. Use o Alt+Shift+clique do mouse para criar vários conjuntos de caracteres para cada linha que você gostaria de colar em locais desejados. Por fim, pressione Ctrl+V para colar cada linha em seu próprio cursor.

Multi-caret copy and paste

Além disso, você pode usar Alt+Shift+tecla de direção cima ou baixo ou Alt+Shift+arraste de mouse para selecionar com várias carets. Anteriormente, esses gestos criavam a seleção de caixa. Agora, a seleção de caixa se transforma em várias carets. Esse método é mais fácil e rápido do que clicar em locais precisos para inserir sinais individuais. Se você preferir continuar usando a seleção de caixa com Alt+Shift+teclas de direção e Alt+Shift+arraste de mouse ao expandir a seleção de vários cursos, vá para Ferramentas > Opções > Editor de texto >Avançado e selecione Usar seleção de caixa.

Multi-caret box selection option

Extensibilidade

O Microsoft.VisualStudio.LanguageServer.Client está introduzindo uma nova maneira de personalizar notificações quando um cliente de idioma não é inicializado.

A tarefa de inicialização agora será controlada pelo Central de Status de Tarefas (TSC). Se a tarefa de inicialização falhar, os usuários poderão acessar o TSC para obter mais informações sobre o que deu errado. Os clientes de idioma agora poderão personalizar a mensagem mostrada ao usuário fornecendo informações sobre o que essa falha representa para eles e possíveis ações a serem tomadas para corrigi-la. Para fazer isso, estamos introduzindo um novo conjunto de APIs na interface ILanguageClient. Essas novas APIs causariam uma alteração significativa na interface ILanguageClient, portanto, as extensões de linguagem precisarão referenciar o novo pacote para funcionar no Visual Studio 2022.

Veja a seguir as novas APIs:

  1. Propriedade ShowNotificationOnInitializeFailed – propriedade booliana que determinará se o servidor de idiomas deseja que mostremos uma bolha para notificar o usuário sobre a falha desta maneira:

ShowNotificationOnInitializeFailed in the Task Status Center

A recomendação é definir essa propriedade como true somente se a falha afetar drasticamente a experiência do usuário para o projeto em que ele está trabalhando no momento.

  1. Método OnServerInitializedFailedAsync – esse método será invocado quando a inicialização do cliente de idioma falhar. Forneceremos um objeto LanguageClientInitializationInfoBase com informações sobre como a falha ocorreu para que o cliente de idioma possa notificar o usuário sobre a falha por conta própria ou fornecer uma mensagem personalizada com o contexto da falha. Se a mensagem for fornecida, ela será mostrada na janela Saída do Visual Studio.

Language client initialization error in the Output Window

JavaScript/TypeScript

Agora há suporte para um novo tipo de projeto JavaScript/TypeScript que permite criar projetos autônomos do Angular, React e Vue no Visual Studio. Os projetos serão criados usando as ferramentas da CLI da estrutura instaladas no computador local. Isso também significa que a versão do modelo é baseada nas versões da CLI que você tem em seu computador local.

Nesses novos projetos, você poderá executar testes de unidade e integrá-los a projetos de API do ASP.NET Core. A documentação pode ser encontrada aqui

  • Lançamos um novo tipo de projeto JavaScript/TypeScript que cria projetos JavaScript/TypeScript autônomos com ferramentas adicionais. Leia mais sobre isso aqui
  • NPM GUI disponível, portanto, agora você pode baixar módulos NPM da mesma maneira que você baixa pacotes Nuget nos novos projetos JavaScript/TypeScript

NPM GUINPM GUI2

Experiência de Recarga Dinâmica para desenvolvedores do .NET e C++

No início deste ano , anunciamos a Recarga Dinâmica do .NET, um projeto ambicioso para levar a Recarga Dinâmica para o maior número possível de desenvolvedores do .NET. Começamos esse percurso com uma primeira versão prévia disponível no Visual Studio 2019 e prometemos muito mais para vir no Visual Studio 2022, onde a experiência completa seria enviada. Hoje estou animado para compartilhar os detalhes do que concluímos na versão GA do Visual Studio 2022.

Para qualquer pessoa nova na Recarga Dinâmica, aqui está uma rápida introdução. A experiência de Recarga Dinâmica no Visual Studio funciona para aplicativos .NET e C++ nativos gerenciados. Independentemente do tipo de aplicativo no qual você está trabalhando, nosso objetivo com a Recarga Dinâmica é salvar o máximo possível de reinicializações de aplicativo entre edições, tornando-o mais produtivo, reduzindo o tempo gasto aguardando que os aplicativos sejam recompilados, reiniciados, navegue novamente até o local anterior em que você estava no próprio aplicativo, etc.

Fazemos isso possibilitando que você edite os arquivos de código de seus aplicativos e aplique essas alterações de código imediatamente ao aplicativo em execução, também conhecido como "Recarga Dinâmica". Depois que essas alterações forem aplicadas, basta executar novamente o código executando uma ação no próprio aplicativo (ou por meio de algum tipo de temporizador, etc.) e ver as alterações imediatamente, sem interrupção do aplicativo por meio de pontos de interrupção necessários!

Se quiser ver algumas demonstrações ao vivo desse recurso, confira um destes vídeos:

Experiência do usuário de Recarga Dinâmica no Visual Studio

A experiência de Recarga Dinâmica para desenvolvedores do .NET e do C++ no Visual Studio 2022 também passou por grandes melhorias. A barra de ferramentas agora tem a implementação de destino do botão "Recarga Dinâmica" com aparência aprimorada e mais funcionalidade.

A primeira coisa que você observará é o novo botão de estilo suspenso com um novo ícone. O comando é renomeado de "aplicar alterações de código" (de visualizações iniciais) para "Recarga Dinâmica".

Hot Reload User Experience in Visual Studio 2022

A expansão dos botões revela acesso rápido a recursos como reiniciar a execução de aplicativos, uma alternância de aceitação para Recarga Dinâmica no salvamento e acesso rápido ao novo painel de configurações.

Veja mais detalhes sobre cada um dos novos recursos:

  • Reinicie aplicativos facilmente: agora você pode reiniciar facilmente seu aplicativo em execução se uma edição rude precisar ser aplicada por meio de uma recompilação, independentemente de você ter iniciado seu aplicativo usando o depurador ou se você o iniciou sem o depurador (NEW para aplicativos .NET 6!).
  • Recarga Dinâmica em Salvar: em versões prévias anteriores, você só podia aplicar alterações de Recarga Dinâmica ao salvar em projetos ASP.NET, para todos os outros projetos que você tinha que clicar explicitamente no botão Recarga Dinâmica. Na versão final, agora é possível fazer Recarga Dinâmica usando a chave de salvamento para qualquer tipo de projeto. Essa opção é aceita, mas uma vez habilitada, ela se aplicará a todas as suas sessões futuras do Visual Studio, a menos que você a desative.
  • Acesso de Configurações Fáceis: adicionamos um painel de opções de recarga frequente para fornecer mais controle quando o Recarga Dinâmica estiver habilitado/desabilitado. Você pode acessar essas configurações no Visual Studio "Opções > .NET/Recarga Dinâmica do C++" ou no menu suspenso Botões de Recarga Dinâmica clicando em Configurações.

Também adicionamos uma caixa de diálogo de edição rude aprimorada que está disponível ao executar seu aplicativo .NET sem o depurador.

New Rude Edit dialog for Hot Reload in Visual Studio 2022

Esta nova caixa de diálogo tem várias melhorias, como:

  • Uma opção de aceitação em toda a sessão do Visual Studio para recompilar e aplicar alterações em cada edição rude do Recarga Dinâmica. Depois de verificado, isso se aplica a todas as edições rudes futuras até que o Visual Studio seja reiniciado
  • Um comando recompilar e aplicar as alterações de código que podem ser realizadas com um único clique, em vez de várias etapas manuais
  • E acesso fácil às configurações

A caixa de diálogo também permite que você continue editando se não quiser executar nenhuma ação automatizada como era possível anteriormente.

Há uma limitação conhecida, essa nova caixa de diálogo não estará disponível na versão GA ao usar o depurador, mas o trabalho para disponibilizá-lo nesse cenário será concluído em uma atualização futura.

Suporte para aplicativos C++

Ao usar o Visual Studio 2022 e iniciar seu aplicativo com o depurador, agora é possível fazer Recarga Dinâmica de um aplicativo C++ nativo ao ser executado sob o depurador (F5) usando o botão "Recarga Dinâmica". A Recarga Dinâmica também é compatível com os aplicativos criados usando projetos CMake e OpenFolder.

Essa experiência é alimentada por Edição e Continuação nativas, para edições com suporte, consulte nossa documentação.

Estruturas e cenários de aplicativos .NET com suporte

Desde que anunciamos a Recarga Dinâmica em maio de 2021, uma pergunta muito comum dos desenvolvedores do .NET foi "o Hot Reload funcionará com minha combinação de estrutura/versão de aplicativos do .NET?". Fizemos grandes progressos para fazer a resposta SIM na maioria das situações, aqui estão os destaques.

  • Ao usar o Visual Studio 2022 e iniciar seu aplicativo com o depurador, a experiência básica de Recarga Dinâmica funciona com a maioria dos tipos de aplicativos .NET e versões da estrutura, isso inclui .NET Framework, .NET Core e .NET 5+ (para C# e VB.NET conforme aplicável). O tipo de aplicativos com suporte inclui Web (alterações code-behind), desktop, móvel, nuvem e outros tipos de projeto. A regra de chave aqui é se você estiver usando o depurador pressupõe que a Recarga Dinâmica está disponível para você e tente!
  • Ao usar o Visual Studio 2022, mas não usar o depurador (por exemplo, usando CTRL-F5 para iniciar o aplicativo), a Recarga Dinâmica agora está disponível mesmo sem o depurador ao direcionar a maioria dos tipos de aplicativos .NET 6. Isso significa que os aplicativos que não são direcionados ao .NET 6 (.NET 5 ou inferior) não dão suporte ao cenário "sem depurador" e devem usar o depurador para obter suporte ao Recarga Dinâmica.
  • Ao usar o Visual Studio 2022 com um aplicativo .NET 6, há suporte para a maioria dos tipos de cenários. Isso não se limita à nova menção de recurso "sem depurador" acima. Também inclui outros novos recursos, como suporte para Recarga Dinâmica de projetos Blazor e, em geral, edição de arquivos Razor em qualquer aplicativo do ASP.NET Core e Recarga Dinâmica do CSS. Usar o Visual Studio 2022 e aplicativos direcionados ao .NET 6 juntos definitivamente lhe dará a experiência mais poderosa de Recarga Dinâmica e esperamos que você tente.

Abaixo, expandiremos o resumo acima e nos aprofundaremos em mais detalhes.

Visual Studio 2022 com um aplicativo .NET ao usar o depurador

Ao usar o Visual Studio 2022 e iniciar o aplicativo com o depurador, a Recarga Dinâmica funciona com a maioria das estruturas de aplicativos, incluindo tipos de aplicativos típicos, como Console, Windows Forms (WinForms), WPF, UWP, WinUI 3* e a maioria dos tipos de projetos Web ASP.NET (para edições code-behind), incluindo ASP.NET MVC, API Web e projetos ainda mais antigos do Web Forms. Essa lista também é apenas um exemplo. A resposta real é que, em qualquer lugar que você tenha .NET e esteja usando o depurador gerenciado pelo Visual Studio, você deverá obter suporte básico à Recarga Dinâmica.

Isso significa que mesmo projetos como o Azure Functions funcionarão muito bem nesse cenário. Recomendamos que você experimente sua combinação e informe-nos se encontrar algum problema.

*O WinUI 3 por padrão usa a depuração de modo misto que não dá suporte à Recarga Dinâmica. Você pode modificar isso nas configurações do projeto habilitando o Depurador Gerenciado, o que permitirá que a Recarga Dinâmica funcione corretamente.

Ao usar o Visual Studio 2022 com um aplicativo .NET, mas não usando o depurador

A Recarga Dinâmica agora está disponível sem o depurador ao direcionar a maioria dos tipos de aplicativos .NET 6, incluindo tipos de projeto como Console, WPF, Windows Forms (WinForms), ASP.NET Core MVC, API Web e Blazor. Sabemos que alguns desenvolvedores têm um bom motivo ou preferência para iniciar seus aplicativos sem o depurador e esperamos que esse recurso extra lhes dê valor por pouco ou nenhum impacto no tempo de inicialização.

Esse recurso é exclusivo do .NET 6+ e esses aplicativos que não têm como destino o .NET 6 (.NET 5 ou inferior) não dão suporte ao cenário "nenhum depurador" e devem usar o depurador para obter acesso à funcionalidade de Recarga Dinâmica.

Lembre-se também de que nem todos os tipos de projeto terão suporte para o cenário "sem depurador" em nossa primeira versão. Especificamente:

  • Aplicativos UWP não têm suporte para Recarga Dinâmica sem o depurador, isso é por design e não há planos atuais para melhorar isso.
  • Os aplicativos Xamarin.Forms voltados para iOS e Android não dão suporte para Recarga Dinâmica do .NET (independentemente de você estar iniciando o aplicativo com ou sem o depurador), mas continuarão a oferecer suporte para Recarga Dinâmica do XAML
  • Os aplicativos MAUI do .NET no futuro imediato não darão suporte ao cenário sem depurador, mas darão suporte à Recarga Dinâmica do .NET por meio do depurador

Ao usar o Visual Studio 2022 com um aplicativo .NET 6, há suporte para a maioria dos tipos de cenários

Os desenvolvedores que puderem usar o Visual Studio 2022 e trabalhar em aplicativos direcionados ao .NET 6 obterão os benefícios da experiência de Recarga Dinâmica mais polida e capaz.

Destaques do que tem suporte:

  • Aplicativos Blazor (Server e WebAssembly*)
  • Edição de arquivo Razor em sites Blazor e regulares do ASP.NET Core
  • Recarga Dinâmica do CSS
  • Capacidade de obter suporte à Recarga Dinâmica ao executar aplicativos sem o depurador (conforme descrito acima com mais detalhes)

Os desenvolvedores direcionados ao .NET 6 continuarão a obter mais melhorias nas atualizações futuras do Visual Studio 2022 e na banda de recursos do .NET e nas principais versões. Estamos apenas começando!

*No Visual Studio 2022 GA versão Recarga Dinâmica suporte para Blazor WebAssembly ao usar o depurador do Visual Studio ainda não está habilitado. Você ainda poderá obter a Recarga Dinâmica se iniciar seu aplicativo por meio do Visual Studio sem o depurador e estamos trabalhando para resolver isso em uma atualização futura do Visual Studio.

Cenários com suporte do ASP.NET Core

A experiência básica de Recarga Dinâmica agora é amplamente suportada para muitos cenários de ASP.NET. O recurso mais amplamente disponível é a capacidade de alterar o code-behind e outros arquivos de classe do .NET para a maioria dos tipos de aplicativos Web. Esse recurso funciona ao usar o depurador do Visual Studio e está presente em qualquer lugar em que a opção Editar e Continuar já estava disponível.

Para os desenvolvedores do ASP.NET Core que estão direcionando o .NET 6, há recursos adicionais não disponíveis para versões inferiores do .NET, isso inclui melhorias como:

  • CSHTML: a edição de um arquivo CSHTML Razor agora dá suporte a muitos tipos de edições.
  • Atualização do navegador: a edição de um arquivo Razor agora atualizará automaticamente as alterações no navegador da Web durante a depuração. Isso só estava disponível anteriormente ao iniciar o aplicativo sem o depurador.
  • Recarga Dinâmica do CSS: agora é possível alterar arquivos CSS enquanto o aplicativo está em execução e as alterações serão aplicadas imediatamente ao aplicativo em execução conforme você digitar.
  • Sem Depurador: agora você receberá suporte à Recarga Dinâmica ao usar o Visual Studio para iniciar seu aplicativo Web sem o depurador (CTRL-F5).

Observação: ao trabalhar em um aplicativo Blazor Wasm e usar o Visual Studio 2022 (17.0), a Recarga Dinâmica para páginas Razor só funciona ao iniciar aplicativos sem o depurador. Adicionaremos suporte ao depurador em uma atualização futura.

Edições do .NET com suporte

A experiência de Recarga Dinâmica do .NET é alimentada pelo mecanismo Editar e Continuar e fizemos melhorias para dar suporte a tipos adicionais de edições que vão além do que era originalmente possível em versões anteriores. Os aprimoramentos incluem:

  • Adicionando, atualizando ou excluindo atributos personalizados
  • Adicionar ou atualizar structs de Registro
  • Adicionar ou atualizar diretivas #line
  • Editar expressões Switch
  • Editar arquivos com diretivas #line, incluindo alterações na própria diretiva
  • Editar instruções de nível superior
  • Editando código que usa qualquer um dos novos recursos do C# 10, como diretivas de uso global, namespaces com escopo de arquivo, lambdas aprimoradas e construtores de struct sem parâmetro
  • Renomear parâmetros Lambda
  • Renomear parâmetros de métodos existentes

As melhorias acima estão disponíveis para o Recarga Dinâmica e as experiências Editar e Continuar.

Atualizações adicionais

  • Recarregar e editar e continuar com vários processos: agora é possível usar de forma confiável as experiências de Recarga Dinâmica e Edição e Continuar quando anexadas a vários processos. Anteriormente, essa funcionalidade não tinha suporte total e nem sempre funcionava corretamente, agora ela foi corrigida.
  • Mensagens de erro/aviso atualizadas: atualizamos muitas mensagens de erro/aviso para ficar mais claro quando as mensagens se aplicam ao EnC e ao Recarga Dinâmica. Fizemos isso tornando as mensagens mais genéricas para que a terminologia de edição e continuação não seja usada durante operações de Recarga Dinâmica
  • Teste de unidade mais rápido de aplicativos .NET: a tecnologia de Recarga Dinâmica agora pode ser usada como um recurso experimental para acelerar o teste de unidade ao direcionar o .NET 6. Para obter mais informações, consulte a seção de teste dessas notas de versão

Cenários do .NET sem suporte

Mesmo na versão final, ainda haverá alguns cenários sem suporte que você deve estar ciente:

  • Os aplicativos do Xamarin.Forms não são compatíveis com a Recarga Dinâmica do .NET em cenários do iOS e Android. Você obterá algum Recarga Dinâmica ao direcionar um aplicativo UWP. Isso ocorre por design e mais melhorias não são esperadas. (Observação: a Recarga Dinâmica de XAML continuará disponível e terá suporte para clientes do Xamarin.Forms no SDK mais recente)
  • Não há suporte para aplicativos MAUI do .NET nesta versão, para trabalhar com o .NET MAUI e a Recarga Dinâmica, consulte as notas de versão do Visual Studio 2022 Atualização 1 Versão Prévia 1 para obter detalhes.
  • Os aplicativos criados usando F# ou aqueles direcionados ao .NET Native não darão suporte ao Recarga Dinâmica.

Produtividade do .NET

A refatoração de namespaces de sincronização agora está disponível no menu (clique com o botão direito do mouse) de um projeto ou pasta no Gerenciador de Soluções, permitindo que você sincronize facilmente namespaces para corresponder à sua estrutura de pastas.

Sync namespaces from Solution Explorer

A configuração de análise de código em segundo plano agora está disponível no menu Gerenciador de Soluções (clique com o botão direito do mouse). Clique com o botão direito do mouse no nó da solução no Gerenciador de Soluções e selecione Analisar e Limpeza de código. Em seguida, selecione Definir Escopo de Análise para configurar o escopo para análise de código em segundo plano.

  • Agora há uma refatoração que introduz um parâmetro que moverá uma expressão de uma implementação de método para seus chamadores adicionando um novo parâmetro. Coloque o cursor na linha que contém a expressão ou realce a expressão. Pressione (Ctrl+.) para disparar o menu Ações Rápidas e Refatorações. Selecione Introduzir parâmetro para {0} ou Introduzir parâmetro para todas as ocorrências de {0}. Ambas as opções terão três opções de submenu para (1) inserir a expressão atualizada em todos os sites de chamadas, (2) extrair e criar um novo método que retorna a expressão e adiciona um argumento nos sites de chamada ou (3) criar uma sobrecarga do método que contém a expressão e chamadas no método original.

Introduce parameter from Quick Actions menu

  • Há um novo comando chamado Rastrear Fonte de Valor que permite que você execute a análise do fluxo de dados para determinar como determinados valores podem ter passado em um determinado ponto e para onde ele pode ser passado. Clique com o botão direito do mouse em qualquer membro determinado e selecione Rastrear Fonte de Valor no menu de clique com o botão direito do mouse.

Track value source in right click menu

  • A janela Controle de Valor será aberta permitindo que você analise os resultados:

Track Value Source Window

  • Adicionamos uma opção para sublinhar variáveis reatribuídas. Isso está desativado por padrão, portanto, você precisará habilitá-lo em Ferramentas > Opções > Editor de Texto > C# ou Básico > Avançado e selecionar variáveis reatribuídas de Sublinhado.

Underline reassigned variables in Editor

  • Adicionamos uma opção de pesquisa na caixa de diálogo Gerar Substituições, permitindo que você pesquise rapidamente e selecione membros para substituir.

Search in Generate Overrides Dialog

  • Informações rápidas para marcas de <código> XML agora preservam o espaço em branco e blocos CDATA. passe o cursor sobre o elemento. As Informações Rápidas exibirão os estilos compatíveis dos comentários XML acima do código.

Quick Info for XML preserves whitespace

  • A janela Localizar todas as Referências agora agrupará projetos de vários destinos ajudando a reduzir o ruído visual.

Find All Reference Groups Multi-Targeted Projects

  • Agora há uma refatoração que remove tipos repetitivos no Visual Basic.
  • Ir para Implementação não navegará mais para membros com declarações abstratas que também são substituídas.

Ferramentas de Linguagem C#

No C# 8.0, introduzimos tipos de referência anuláveis que permitem que você declare se nulo é esperado. Para usar tipos de referência anuláveis, você precisa adicionar o elemento <Nullable>habilitar</Nullable> ao arquivo de projeto ou adicionar o pragma #nullable enable a cada arquivo de origem em seu projeto. Para ajudar a simplificar esse processo, agora incluímos automaticamente a <Nullable>habilitar</Nullable> para novos projetos do .NET.

No C# 10.0, estamos introduzindo o namespace com escopo de arquivo, oferecendo a opção de não aninhar definições de classe em um namespace. Agora temos uma refatoração para converter um namespace em um namespace com escopo de arquivo. Para usar o namespace com escopo de arquivo, primeiro você precisará adicionar o elemento de <LangVersion>visualização</LangVersion> ao arquivo de projeto. Em seguida, coloque o cursor em um namespace. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Converter em namespace com escopo de arquivo.

File-scoped namespace refactoring

Agora há uma refatoração a ser preferida is not null em vez de is object quando aplicada a tipos de valor. Para usar essa nova refatoração, coloque o cursor em uma verificação de tipo. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Preferir verificação nula sobre a verificação de tipo.

Navegar até fontes descompiladas

Navegue até Fontes Descompiladas agora em diante, permitindo que você navegue até declarações de tipos de biblioteca. Navegue até fontes descompiladas quando você invoca Ir para Definição em um símbolo de biblioteca no código-fonte e em fontes descompiladas.

Aprimoramentos do editor

Os comentários XML agora gerarão automaticamente uma <exception> marca dentro de uma <summary> marca, permitindo que você adicione uma descrição quando um método gera explicitamente exceções.

No Visual Studio 2019, lançamos a Margem de Herança que adiciona ícones às margens que representam as implementações e substituições do código. Clicar nos ícones de margem de herança exibirá as opções de herança que você pode selecionar para navegar. Nesta versão, a Margem de Herança está habilitada por padrão. Para desativar a Margem de Herança, vá para Ferramentas>Opções>Editor de texto> C# ou Básico>Avançado e desmarque Ativar Margem de Herança.

Inheritance Margin

Linguagens de programação

C# 10

  • Registrar structs e with expressões em structs (record struct Point(int X, int Y);, var newPoint = point with { X = 100 };).
  • Diretivas de uso global: global using as diretivas evitam repetir as mesmas using diretivas em muitos arquivos em seu programa.
  • Atribuição definida aprimorada: a atribuição definitiva e a análise de nulidade lidam melhor com padrões comuns, como dictionary?.TryGetValue(key, out value) == true.
  • Cadeias de caracteres interpoladas constantes: cadeias de caracteres interpoladas compostas por constantes são constantes.
  • Padrões de propriedade estendidos: os padrões de propriedade permitem acessar membros aninhados (if (e is MethodCallExpression { Method.Name: "MethodName" })).
  • Registro lacrado ToString: um registro pode herdar um registro base com um ToString.
  • Geradores de origem incremental: aprimore a experiência de geração de origem em projetos grandes, dividindo o pipeline de geração de origem e armazenando em cache resultados intermediários.
  • Desconstruções mistas: desconstrução-atribuições e declarações de desconstrução podem ser combinadas ((existingLocal, var declaredLocal) = expression).
  • AsyncMethodBuilderno nível do método: o AsyncMethodBuilder usado para compilar um método async pode ser substituído localmente.
  • #line diretivade intervalo: permitir geradores de origem como o controle refinado Razor do mapeamento de linha com #line diretivas que especificam o intervalo de destino (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName").
  • Melhorias lambda: atributos e tipos de retorno são permitidos em lambdas; lambdas e grupos de métodos têm um tipo delegado natural (var f = short () => 1;).
  • Manipuladores de cadeia de caracteres interpolados: tipos de manipulador de cadeia de caracteres interpolados permitem formatação eficiente de cadeias de caracteres interpoladas em atribuições e invocações.
  • Namespaces com escopo de arquivo: arquivos com um único namespace não precisam de chaves extras ou recuo (namespace X.Y.Z;).
  • Construtores de struct sem parâmetros: dão suporte a construtores sem parâmetros e inicializadores de campo de instância para tipos de struct.
  • CallerArgumentExpression: esse atributo permite capturar as expressões passadas para um método como cadeias de caracteres.

Consulte o status do recurso de linguagem C# e alterações recentes para obter mais detalhes.

Editor Razor (ASP.NET Core)

  • Agora há suporte à Recarga Dinâmica em arquivos Razor.

Reload Support in Razor Files

  • Fizemos melhorias significativas no desempenho do Editor Razor.

  • Aprimoramos a formatação e o recuo tornando-o mais confiável e significativamente mais rápido.

  • Adicionamos novas cores Razor! Você pode personalizar essas cores em Ferramentas > Opções > Ambiente > Fontes e Cores.

  • Os TagHelpers agora são coloridos e têm suporte de classificação nas dicas de ferramentas de conclusão do IntelliSense e informações rápidas.

TagHelpers Classification Support

  • Aprimoramos o realce do branch angular e a navegação para construções Razor.

  • Os comentários agora têm preenchimento automático, recuo inteligente, inclusão automática de continuações de comentários e navegação de comentários em bloco.

Versão prévia experimental inicial do teste remoto

Temos uma versão prévia experimental muito inicial da habilitação da execução de testes em ambientes remotos, como contêineres linux, WSL e conexões SSH! Embora essa seja uma funcionalidade muito valiosa, pedimos sua paciência, pois esse recurso ainda está em um estado experimental muito inicial à medida que coletamos comentários. Talvez você não experimente a suavidade que normalmente obtém, pois pode imaginar que há muitos cenários de canto em como podemos nos comunicar e gerenciar um ambiente conectado do Visual Studio. Aqui estão alguns requisitos para usar esta versão experimental do teste remoto:

  • Você precisa instalar as dependências necessárias em seu ambiente de destino. Isso significa que, se você quiser que seus testes direcionados ao .NET 3.1 executem em um contêiner linux, será necessário verificar se o contêiner tem o .NET 3.1 instalado por meio do Dockerfile. Um dia adoraríamos criar uma experiência de instalação que permita a aquisição suave de qualquer uma de suas dependências de teste, mas por enquanto estamos deixando a maior parte do provisionamento do ambiente até a especificação do usuário.
  • Planeje monitorar o status da conexão com o ambiente remoto por meio do painel Testes de>Saída. Por exemplo, se o contêiner tiver sido interrompido, uma mensagem será exibida no painel Testes de>Saída. Podemos não detectar todos os cenários, portanto, planeje verificar sua saída se parece que a conexão foi perdida. Especialmente se o painel Saída não estiver definido como "Teste", talvez você não veja a mensagem imediatamente. Ainda estamos experimentando o melhor modelo de notificação quando as conexões são perdidas, então os comentários são muito bem-vindos! Se ele parecer que a conexão foi perdida, você poderá usar a lista suspensa do ambiente de teste remoto no Gerenciador de Testes para definir a conexão de volta para seu ambiente local e, em seguida, selecionar o ambiente remoto novamente para reinicializar a conexão.
  • A versão prévia experimental tem como escopo apenas testes do .NET por enquanto. Estamos cientes do interesse em oferecer suporte a experiências de teste remoto em C++ e esperamos fornecer isso também eventualmente.

Como posso experimentar testes remotos?

  • Os documentos oficiais chegarão após o período experimental. Por enquanto, aqui está o que você precisa para começar a testá-lo.
  • Ambientes são especificados usando testenvironments.json na raiz da sua solução. A estrutura do arquivo json segue o esquema abaixo:
{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}
  • Conexões de contêiner local
    • Para se conectar a um contêiner em execução localmente, você deve ter o Docker Desktop em seu computador local. Opcionalmente, habilite a integração do WSL2 para melhorar o desempenho.
    • Para um Dockerfile, o ambiente pode ser especificado em testEnvironments.json na raiz da sua solução:
          {
          "name": "<name>",
          "localRoot": "<path to local environment>", // optional
          "type": "docker",
          "dockerImage": "<docker image tag>",
          }
      
      Por exemplo:
      {
      "version": "1",
      "environments": [
          {
          "name": "linux dotnet-core-sdk-3.1",
          "type": "docker",
          "dockerImage": "testenv"
          }
      ]
      }
      
    • Aqui está um exemplo de um Dockerfile para executar testes direcionados ao .NET 3.1.
      FROM mcr.microsoft.com/dotnet/core/sdk:3.1
      
    • Crie seu contêiner usando o seguinte comando (incluindo o "". no final): docker build -t <docker image name> -f <path to Dockerfile> .
  • Conexões WSL2 locais
    • Você deve habilitar a integração do WSL2 em seu computador local.
    • O ambiente pode ser especificado em testEnvironments.json na raiz da sua solução seguindo este esquema:
      {
      "version": "1",
      "environments": [
          {
          "name": "WSL-Ubuntu",
          "type": "wsl",
          "wslDistribution": "Ubuntu"
          }
      ]
      }
      
  • Conexões SSH
    • Vá para Ferramentas > Opções > Multiplataforma > Gerenciador de Conexões para adicionar ou remover conexões SSH. A seleção de "Adicionar" permitirá que você insira o nome do host, a porta e as credenciais necessárias.
    • O ambiente pode ser especificado em testEnvironments.json na raiz da solução com o seguinte:
      {
      "version": "1",
      "environments": [
          {
          "name": "ssh-remote",
          "type": "ssh",
          "remoteUri": "ssh://user@hostname:22"
          }
      ]
      }
      
  • O ambiente ativo é selecionado por meio de uma lista suspensa na barra de ferramentas do Gerenciador de Testes. Atualmente, apenas um ambiente de teste pode estar ativo por vez.

Remote testing environment drop down in Test Explorer

  • Depois que um ambiente é selecionado, os testes são descobertos e executados no novo ambiente.

Tests are discovered and executed in remote environments

  • Agora você pode executar e depurar seus testes dentro do ambiente remoto!

    View test results from remote environment in the test explorer

  • O Gerenciador de Testes pode solicitar que você instale alguns pré-requisitos de ambiente ausentes e tente instalá-los, mas, em última análise, estamos deixando a maior parte do provisionamento do ambiente remoto até a especificação do usuário.

Recarga Dinâmica no Gerenciador de Testes [experimental]: agora é possível experimentar um novo recurso experimental que acelera sua experiência de teste usando a tecnologia de Recarga Dinâmica nos bastidores. O que isso significa é que após sua primeira execução de teste em que um build completo ainda é necessário, você pode fazer pequenas alterações, executar seus testes e todas essas atualizações serão refletidas sem precisar fazer uma compilação completa novamente. Para começar e saber mais, confira os detalhes abaixo:

Hot reload for the Test Explorer in Visual Studio enables you to run tests without requiring a build between minor edits

  • Essa experiência só está disponível para projetos direcionados ao .NET 6 e você deve aceitar acessando 'Ferramentas > Opções > Teste'

Screenshot of Visual Studio showing enable hot reload option in Tools > Options > Test.

  • Quando essa opção está habilitada, seus testes estão sendo atualizados mesmo com alterações não salvas no editor. Não estamos criando, portanto, os binários em seu disco na pasta bin estão obsoletos. Isso significa que você pode ver discrepâncias entre o que está em disco e os resultados do teste no Visual Studio. Para resolvê-los e antes de fazer check-in, certifique-se de fazer um build completo com (Ctrl+Shift+B). Qualquer build explícito substituirá os resultados do teste de Recarga Dinâmica pelos resultados regulares do teste de build completo.

  • Há certos tipos de edições que a Recarga Dinâmica não pode captar e, nesses casos, ele retornará ao comportamento antigo de fazer um build completo. Observe também que apenas as alterações no Visual Studio estão sendo controladas, casos opacos no editor, como alterar destinos, podem voltar a exigir um build completo.

  • Determinadas alterações grandes (como renomear mais de 1.000 nomes de método) podem levar mais tempo para fazer a Recarga Dinâmica do que simplesmente compilar novamente. Nesses casos, uma mensagem será impressa na saída, solicitando que os usuários façam uma recompilação completa em vez de aguardar a Recarga Dinâmica.

  • Os rastreamentos de pilha ainda não estão disponíveis com Recarga Dinâmica no Gerenciador de Testes. Se você precisar usar o rastreamento de pilha, recomendamos que você faça uma compilação completa.

Ferramentas de teste

  • Mostrar no Gerenciador de Testes (Ctrl+E,S): mostrar no Gerenciador de Testes é a capacidade de saltar de onde o cursor está em um método de teste no editor para onde o teste está no Gerenciador de Testes. Isso pode lembrá-lo de um recurso semelhante chamado Sincronização com Documento Ativo que mantém o documento em que você está trabalhando realçado no Gerenciador de Soluções. Este foi um dos itens mais votados na comunidade de Desenvolvedor, então obrigado a todos que votaram e nos ajudaram a priorizar esse recurso! Mostrar no Gerenciador de Testes também está disponível no menu de clique com o botão direito do mouse no editor, no glifo de teste do CodeLens e no clique com o botão direito do mouse no Gerenciador de Soluções.

    Show in Test Explorer from right-click menuShow in Test Explorer from CodeLens

  • Teste de carga da Web e atualização de suporte de teste de interface do usuário codificada: o gravador de teste de carga da Web está disponível no Visual Studio 2022. O gravador de teste de interface do usuário codificado não será incluído no Visual Studio 2022. Você ainda poderá executar testes de interface do usuário codificados e criar novos testes escrevendo código no Visual Studio 2022, mas o gravador depende de dependências de 32bits que não são viáveis para portar. Você ainda pode instalar o Visual Studio 2019 lado a lado para usar o gravador de interface do usuário codificado. Como lembrete, o Teste de Carga da Web e o Teste de IU Codificado foram preteridos em 2019 e planejamos removê-los do produto quando pudermos minimizar o impacto para os usuários. Encorajamos os usuários interessados em testes de interface do usuário da Web a adotar a nova estrutura de teste da Web de plataforma cruzada e código aberto Playwright. Além de dar suporte a todos os principais navegadores e ao tratamento muito melhor do código assíncrono, o Playwright também tem a funcionalidade de gravação de teste interna.

Locais Confiáveis

  • Como parte da renovação de "Configurações de Confiança", removemos a verificação "Marca da Web" e adicionamos uma caixa de diálogo de aviso exibida ao tentar abrir código (por exemplo, arquivos, projetos ou pastas) que não era confiável anteriormente
  • O código agora pode ser confiável na pasta atual ou no local da pasta pai
  • Os projetos criados pelo usuário são adicionados automaticamente à lista de locais confiáveis do usuário
  • Você pode ignorar verificações de confiança para locais temporários criados pela funcionalidade do Visual Studio

Antes que o conteúdo (por exemplo, solução, projeto, arquivo ou pasta) seja aberto dentro do IDE, verificaremos se o local da pasta foi anteriormente confiável.

Se o código não confiável for detectado, mostraremos uma caixa de diálogo de aviso alertando você sobre as implicações de segurança e solicitando que você confie no código antes da operação normal do IDE.

Observação: embora esse recurso esteja desativado por padrão, ele pode ser habilitado por meio de Opções > Confiança de Configurações> recoplicar uma decisão de confiança antes de abrir o conteúdo

Atualizações do nó de fontes externas

O nó de Fontes Externas no Gerenciador de Soluções agora também tem suporte para C++. Além disso, adicionamos um novo sub nó que fornece todos os módulos com símbolos ainda não carregados.

External Sources node in Solution explorer supports C++

Você também pode usar o menu de contexto de clique com o botão direito do mouse para carregar os símbolos diretamente do gerenciador de soluções para que os módulos possam aparecer nos nós de origem externos. Os arquivos que o nó de Fontes Externas também são classificados em ordem alfabética agora.

External Sources menu

Iconografia atualizada e atualizada

  • Como parte de nossa meta de atualizar a interface do usuário para o Visual Studio 2022, você encontrará ícones atualizados e atualizados recentemente em todo o IDE com base na consistência, legibilidade e familiaridade.

Examples of new icons with dark and light backgrounds

Recarga Dinâmica de XAML

Atualizamos as configurações de Recarga Dinâmica de XAML e as barras de ferramentas no aplicativo para fornecer clareza de que as configurações e as experiências do aplicativo estão relacionadas ao Recarregamento Frequente XAML e não à Recarga Dinâmica do .NET.

Updated in-app toolbar in XAML apps

Também simplificamos o painel de configurações para organizar melhor as opções comuns em conjunto.

Updated XAML Settings options panel

Visualização dinâmica de XAML

O XAML Live Preview agora está disponível para desenvolvedores do WPF, UWP, WinUI e Xamarin.Forms executando seus aplicativos no Android Emulator ou como um aplicativo da área de trabalho UWP. O Live Preview captura uma interface do usuário de aplicativos em execução e a coloca em uma janela encaixada no Visual Studio. Isso facilita o uso da Recarga Dinâmica de XAML para alterar o aplicativo enquanto vê essas alterações dentro do próprio Visual Studio, sem a necessidade de fazer uma guia entre o aplicativo em execução e o Visual Studio enquanto faz alterações de código XAML ao vivo.

Live Preview of XAML Desktop Apps UI

Para começar:

  • Iniciar um aplicativo com suporte usando o depurador
  • Ative o XAML Live Preview, por meio da pesquisa rápida digitando "Visualização ao Vivo XAML" ou usando o botão "Mostrar no XAML Live Preview" nas barras de ferramentas no aplicativo

Depois que a experiência for iniciada, os seguintes recursos estarão disponíveis:

  • Rolagem e zoom: você pode fazer a panorâmica e ampliar a janela que captura a interface do usuário dos aplicativos, o que permite que você ajuste às suas necessidades para mostrar o aplicativo completo ou apenas as partes que você está tentando editar. O movimento panorâmico e a rolagem funcionam com um touch pad (rolagem com dois dedos), roda de rolagem do mouse ou CTRL + Clique para arrastar o conteúdo.
  • Réguas: você pode adicionar uma ou mais réguas horizontais/verticais para sobrepor seu aplicativo em execução. Essas linhas podem ser movidas para a posição usando o mouse ou o teclado. Ao mover réguas com teclado, use teclas de direção para posicionamento preciso e Ctrl + tecla de direção para posicionamento rápido. Você também pode excluir réguas selecionando-as (clicando nelas) e pressionando a chave de exclusão.
  • Seleção de elementos e dicas de informações: com a seleção de elementos, você pode selecionar o elemento XAML que deseja editar usando o mesmo recurso com o qual está acostumado na Árvore Visual Dinâmica ou na barra de ferramentas no aplicativo. Depois de selecionado, você também pode habilitar o novo recurso "dicas de informações" para obter informações adicionais sobre o elemento selecionado, como fontes, cores, informações de margem/preenchimento e muito mais. Ao usar a Seleção de Elementos, considere habilitar o Item Selecionado de Visualização – por meio do botão de barra de ferramentas árvore visual ao vivo ou Depurar > Opções > configurações de Recarga Dinâmica - para ir para o XAML de origem.
  • Comutação do Windows: você pode controlar quais janelas do aplicativo são capturadas.

Experiência de associação XAML aprimorada

  • Ícones de associação de dados aprimorados no Inspetor de Propriedades. Agora você pode acessar rapidamente a caixa de diálogo Associação de Dados clicando em um ícone de "cilindro" ao lado de uma propriedade e desmarcando a associação clicando no ícone "x".

Binding icons in Property Inspector

  • Adição da guia Associação em Ações Rápidas para que você possa criar associações com apenas alguns cliques do designer XAML.

Binding tab in Quick Actions

  • A caixa de combinação Propriedade de Destino foi adicionada à caixa de diálogo Associação de Dados para selecionar a propriedade em qualquer lugar.

Updated Data Binding Dialog with Target Property combo box

Principais problemas votados pela Developer Community

Confira nossa lista completa de correções da Visual Studio Developer Community nesta versão.


Problemas conhecidos

Veja todos os problemas abertos e soluções alternativas disponíveis no Visual Studio 2022 seguindo o link abaixo.

Comentários e sugestões

Adoraríamos ouvir o que você tem para nos dizer! Você pode Relatar um problema ou sugerir um recursoFeedback Icon usando o ícone Enviar Comentários no canto superior direito do instalador ou do IDE do Visual Studio ou em Ajuda > Enviar Comentários. Você pode acompanhar seus problemas usando a Visual Studio Developer Community, em que você adiciona comentários ou encontra soluções. Você também pode obter ajuda gratuita com a instalação por meio de nosso suporte via chat ao vivo.


Blogs

Aproveite as informações e recomendações disponíveis no site Blogs de Ferramentas de Desenvolvedor para ficar em dia com as novas versões e conferir postagens detalhadas sobre uma grande variedade de recursos.


Início da página