2019Logo Notas sobre a versão do Visual Studio 2019 versão 16.8



Developer Community | Requisitos do sistema | Compatibilidade | Código distribuível | Histórico de versões | Termos de licença | Blogs | Novidades da documentação do Visual Studio


Observação

Esta não é a versão mais recente do Visual Studio. Para baixar a última versão, acesse o site do Visual Studio.



Novidades no Visual Studio 2019 versão 16.8

Período de suporte

Essa versão está agora sem suporte. Para obter mais informações sobre suporte do Visual Studio, revise a Política de Suporte do Visual Studio 2019.

Veja a última versão das notas sobre a versão ou acesse o site do Visual Studio para baixar a última versão com suporte do Visual Studio 2019.

Lançamentos do Visual Studio 2019 versão 16.8

Notas sobre a versão arquivadas do Visual Studio 2019

Blog do Visual Studio 2019

O Blog do Visual Studio 2019 é 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 2019 nas seguintes postagens:


Confira esta lista completa de todos os itens da Developer Community usados no Visual Studio 2019 versão 16.8

Ícone das Notas de Versão Visual Studio 2019 versão 16.8.7

Lançado em 9 de março de 2021

Problemas solucionados neste lançamento do Visual Studio 2019 versão 16.8.7

Aviso de Consultoria de Segurança

CVE-2021-21300 Vulnerabilidade de execução de código remoto do Git para Visual Studio

Existe uma vulnerabilidade de execução remota de código quando o Visual Studio clona um repositório mal-intencionado.

CVE-2021-26701 Vulnerabilidade de execução de código remoto do .NET Core

Existe uma vulnerabilidade de execução de código remoto no .NET 5 e no .NET Core devido à forma como a codificação de texto é executada.


Ícone das Notas de Versão Visual Studio 2019 versão 16.8.6

lançado em 22 de fevereiro de 2021

Problemas solucionados neste lançamento do Visual Studio 2019 versão 16.8.6


Ícone das Notas de Versão Visual Studio 2019 versão 16.8.5

lançado em 9 de fevereiro de 2021

Aviso de Consultoria de Segurança

CVE-2021-1639 Vulnerabilidade de execução remota de código do serviço de linguagem TypeScript

Existe uma vulnerabilidade de execução de código remoto quando o Visual Studio carrega um repositório mal-intencionado que contém arquivos de código JavaScript ou TypeScript.

CVE-2021-1721 Vulnerabilidade de negação de serviço do .NET Core

Existe uma vulnerabilidade de negação de serviço na criação de uma solicitação Web HTTPS durante a criação da cadeia de certificados X509.

CVE-2021-24112 Vulnerabilidade de execução de código remoto .NET 5 e .NET Core

Existe uma vulnerabilidade de execução remota de código no descarte de metarquivos quando uma interface gráfica ainda tem uma referência a eles. Essa vulnerabilidade só existe em sistemas em execução no MacOS ou no Linux.

Problemas solucionados neste lançamento do Visual Studio 2019 versão 16.8.5

  • Corrigido um problema em que o x86 Microsoft.VCLibs Appx instalado em ExtensionSDKs foi atualizado com a assinatura correta.
  • Corrigido um vazamento de memória ao usar os recursos do C++ DesignTime.
  • Corrigido um problema em que uma exceção ocorreria se uma senha não fosse lembrada ao importar um banco de dados existente para um projeto do SSDT.
  • Corrigido um problema em que o botão de publicação era desabilitado na primeira vez que os clientes publicavam projetos do .NET Core em uma pasta ou outros destinos de hospedagem.
  • Corrigido um travamento que ocasionalmente ocorria quando os desenvolvedores abriam a página de exibição de perfis de publicação.
  • Adicionado suporte ao Xcode 12.4.

Itens da Developer Community


Ícone das Notas de Versão Visual Studio 2019 versão 16.8.4

lançada em 12 de janeiro de 2021

Aviso de Consultoria de Segurança

CVE-2021-1651 / CVE-2021-1680 Vulnerabilidade de elevação de privilégio do serviço de coletor padrão do Hub de Diagnóstico

Há uma vulnerabilidade de elevação de privilégio quando o Coletor Padrão do Hub de Diagnóstico manipula incorretamente as operações de dados.

CVE-2020-26870 Vulnerabilidade de execução remota de código do Instalador do Visual Studio

Existe uma vulnerabilidade de execução remota de código quando o Instalador do Visual Studio tenta mostrar um markdown mal-intencionado.

CVE-2021-1723 Vulnerabilidade de negação de serviço do ASP.NET Core e do Visual Studio

Existe uma vulnerabilidade de negação de serviço na forma como o Kestrel analisa solicitações HTTP/2.

Problemas solucionados neste lançamento do Visual Studio 2019 versão 16.8.4

  • Correção de um problema em que componentes do IntelliCode específicos do C# podem não ser instalados se o IntelliCode tiver sido instalado anteriormente do Visual Studio Marketplace em versões mais antigas do Visual Studio
  • As referências de projetos transitivas agora são respeitadas quando um projeto PackageReference faz referência a projetos packages.config com dependências do PackageReference.
  • Adiciona o suporte ao Xcode 12.3.
  • Corrige o suporte de simulação do watchOS 7.0+ x86_64
  • Corrigimos falsos positivos (C33001 a C33005) para uso de VARIANTES que são retornadas de uma função.
  • Correção da falha intermitente do VS no designer .NET Core do WinForms ao fechar o projeto ou a solução.
  • Corrigido o projeto de banco de dados: arrastar um arquivo do gerenciador de soluções para um aberto estava excluindo o arquivo do sistema de arquivos.
  • Corrigido erro em que clicar em atualizar na Comparação de Esquemas do SQL não salvava as alterações no arquivo sqlproj
  • Corrigido um bug em que os builds falhavam com erros "Tabela/coluna não foi encontrada".
  • Corrigida a caixa de seleção "confirmar após mesclagem" do Team Explorer – Branches >.
  • Corrigido um erro em que o Visual Studio pode deixar de responder por vários segundos ao verificar se há atualizações.
  • A ferramenta DeploymentAppRecipe.exe agora dá suporte à execução a partir de qualquer diretório atual. Ela agora também retorna um valor diferente de zero sempre que a implantação falha e imprime mensagens de erro no fluxo de erros padrão.

Da Developer Community



Ícone das Notas de Versão Visual Studio 2019 versão 16.8.3

lançado em 08 de dezembro de 2020

Aviso de Consultoria de Segurança

CVE-2020-17156 Vulnerabilidade de execução de código remoto do Visual Studio

Existe uma vulnerabilidade de execução remota de código quando o Visual Studio clona um repositório mal-intencionado.

Problemas solucionados neste lançamento do Visual Studio 2019 versão 16.8.3

  • Correção de um erro de compilador interno quando um modelo de função aninhado é definido fora da classe pai.
  • Correção de um erro C2355 inválido quando 'this' era usado no inicializador de um membro de dados não estático.
  • O erro de carregamento de ruleset foi corrigido para o ruleset personalizado usando a opção /analyze:ruleset com a opção /analyze:rulesetdirectory e/ou /analyze:projectdirectory.
  • Correção de uma falha intermitente no Visual Studio ao usar o designer WinForms do .NET Core.
  • Inserção do .NET 5.0.1 no Visual Studio v 16.8.3
  • Correção do problema em que algumas das janelas de ferramentas ativadas por contexto da interface do usuário podem causar uma falha no Visual Studio.
  • Correção do push da página Gerenciar Ramificações quando não há uma ramificação de rastreamento remoto do Git.
  • Adição do suporte ao Xcode 12.2.

Da Developer Community



Ícone das Notas de Versão Visual Studio 2019 versão 16.8.2

lançada em 19 de novembro de 2020

Problemas solucionados neste lançamento do Visual Studio 2019 versão 16.8.2

  • Corrigido para o bug de otimização em loops.
  • Corrigido o erro do compilador interno na implementação da cópia garantida de corrotina (recurso C++ 17).
  • Corrigida a regressão de desempenho do build para grandes usos de tipos anônimos.
  • Resolvido um problema em que uma barra de ouro com a mensagem "O argumento especificado estava fora do intervalo de valores válidos" aparecia ao editar o código C#.
  • Corrigido um problema que poderia causar uma MissingMethodException ao compilar um projeto que tinha modelos T4.
  • Corrige um problema em que a pesquisa na caixa de diálogo Novo Projeto pode retornar zero resultado.

Da Developer Community



Ícone das Notas de Versão Visual Studio 2019 versão 16.8.1

lançada em 12 de novembro de 2020

Problemas solucionados neste lançamento do Visual Studio 2019 versão 16.8.1

  • Correção de um problema de alto impacto em que o aviso “O pacote 'SourceExplorerPackage' não foi carregado corretamente”. o aviso é exibido ao clonar um repositório no Team Explorer. Quando os usuários encontravam esse problema, o produto parava de responder.

Ícone das Notas de Versão Visual Studio 2019 versão 16.8.0

lançada em 10 de novembro de 2020

Resumo das novidades neste lançamento do Visual Studio 2019 versão 16.8


F#:

  • O F# 5 agora é lançado com o .NET 5
  • Correções e melhorias de desempenho para ferramentas do Visual Studio por meio das Ferramentas do F# versão 11.0.0
  • Notas sobre a versão completas disponíveis no GitHub

C++:

  • As corrotinas do C++20 agora são compatíveis com /std:c++latest e o cabeçalho de <corrotina>.
  • O IntelliSense agora dá suporte a cabeçalhos de <conceitos> e <intervalos> do C++20, bem como à renomeação e procura de definições de conceito.
  • Nosso STL agora é compatível com a maioria dos Intervalos do C++20.
  • As funções condicionalmente triviais de membros especiais agora são compatíveis com o MSVC.
  • O C11 e o C17 agora são compatíveis com os switches /std:c11 e /std:c17.
  • Os aprimoramentos adicionais do STL incluem suporte completo para std::atomic_ref, std::midpoint e std::lerp e std::execution::unseq, além de otimizações para std::reverse_copy e muito mais.
  • Atualização da versão do CMake fornecida com o Visual Studio para CMake 3.18.
  • Nossas ferramentas de análise de código agora são compatíveis com o padrão SARIF 2.1: o formato padrão de log de análise estática do setor.
  • As ferramentas de build ausentes nos projetos do Linux emitirão um aviso na barra de ferramentas e uma descrição clara das ferramentas ausentes na lista de erros.
  • Agora é possível depurar os despejos de núcleo do Linux em um sistema Linux remoto ou no WSL diretamente do Visual Studio.
  • Para a geração de comentários de Doxygen para C++, incluímos opções adicionais de estilo de comentário (/*! and //!).
  • Mais anúncios do vcpkg
  • Suporte do compilador para lambdas em contextos não avaliados
  • Desempenho de vínculo /debug:full aprimorado por meio da criação de PDB multithreading. Vários aplicativos grandes e jogos AAA apresentam vinculação duas a quatro vezes mais rápida.
  • O depurador do Visual Studio agora tem suporte para char8_t.
  • Suporte para projetos ARM64 usando clang-cl.
  • Suporte de intrínsecos do Intel AMX.
  • Adição de uma nova opção de link, legacy_stdio_float_rounding.obj, para habilitar o comportamento herdado da impressão de valores de ponto flutuante, que foi alterado no Dev16.2 para arredondar corretamente os números de ponto flutuante exatamente representáveis. Para obter mais detalhes, confira printf, _printf_l, wprintf, _wprintf_l.

Depurador:

  • Suporte à depuração de despejo de núcleo do Linux do .NET Core
  • Análise automática do .NET e do .NET Core
  • Análise automática de caminho crítico de memória do .NET e do .NET Core

Atualizações do editor Razor experimental:

  • Lâmpadas Blazor
  • Lâmpadas C#
  • Formatação Razor aprimorada
  • Renomeação de componentes Razor na marcação de arquivos .razor
  • Ir para definição em namespace de marcas de componentes Blazor
  • Colorização de foco em C#
  • Colorização de dica de ferramenta de conclusão em C#
  • Ir para definição/implementação do Razor, incluindo arquivos fechados
  • Localizar Todas as Referências em arquivos Razor fechados
  • Desempenho e estabilidade aprimorados da edição do Razor para projetos e soluções de grande porte

Fakes com projetos de estilo do SDK:

  • Ao usar o novo suporte do Fakes para projetos de estilo do SDK, alguns usuários encontraram o seguinte erro ao gerar shims

Produtividade do Git:

  • Saiba mais sobre como usar todos os recursos do Git em nossa nova documentação online
  • Abra a janela do repositório GIT a qualquer momento na janela Alterações do Git, no menu Exibição e na barra de status
  • Efetue fetch, pull e push de vários remotos na janela Alterações do Git
  • Exiba mensagens de êxito e de erro para comandos Git na parte superior da janela do repositório Git
  • Criar um branch de um item de trabalho do Azure DevOps
  • Abrir um repositório Git de uma lista de repositórios locais no menu do Git
  • O provedor de controle do código-fonte padrão agora é Git em vez de TFVC
  • Clique único para alternar entre os históricos de branch na janela do Repositório Git
  • Exiba e selecione em uma lista de soluções no Gerenciador de Soluções depois de abrir um repositório
  • Modifique o modo de exibição de histórico e procure por confirmações por meio de uma barra de ferramentas na janela Repositório do Git
  • Busque, efetue pull e envie por push das seções de confirmações de entrada e de saída no grafo de histórico de um branch
  • Receba uma solicitação para criar uma solicitação de pull após enviar um branch por push para o seu repositório remoto
  • Exiba nomes de branch nos comandos merge e rebase no menu de contexto da lista de branches
  • Acesse comandos do Git por meio do menu de contexto no Gerenciador de Soluções e no Editor
  • Observe o progresso do clone por meio de uma nova caixa de diálogo modal com a opção de mover o processo para segundo plano

IntelliCode:

  • Obtenha as conclusões personalizadas do IntelliCode na documentação do Visual Studio
  • Mantenha suas conclusões do IntelliCode atualizadas com sua base de código e compartilhe como parte da documentação do fluxo de trabalho de CI de sua equipe

Produtividade do .NET:

  • Analisadores Roslyn agora estão incluídos no SDK do .NET 5.0
  • Refatoração que apresenta a nova sintaxe de correspondência de padrões not do C# 9 quando um operador de supressão está presente
  • Refatoração de método embutido para ajudar a substituir os usos de método estático, de instância e de extensão em um único corpo de instrução
  • Correção de código para converter instâncias de typeof para nameof no C# e de GetType para NameOf no Visual Basic
  • Suporte do C# e Visual Basic para dicas de nome de parâmetro embutido que insere adornos para literais, literais convertidas e instanciações de objeto antes de cada argumento nas chamadas de função
  • Refatoração que extrai membros de uma classe selecionada para uma nova classe base no C# e no Visual Basic
  • A limpeza de código tem novas opções de configuração que podem aplicar preferências de formatação e de cabeçalho definidas no arquivo EditorConfig em um único arquivo ou em toda a solução
  • Correção de código para remover a palavra-chave in em que o argumento não deve ser passado por referência
  • Refatoração que introduz os novos combinadores de padrões e sugestões de correspondência de padrões do C#9, como a conversão de == para usar is quando aplicável
  • Correção de código para que, quando você fizer uma tentativa de escrever um método abstrato em uma classe que não é abstrata, essa classe seja transformada em abstrata
  • A conclusão do IntelliSense nos literais de cadeia de caracteres DateTime e TimeSpan aparece automaticamente quando a primeira aspa é digitada
  • Correção de código para remover pragma suppressions e SuppressMessageAttributes desnecessários
  • Rename e Find All References entendem referências a símbolos na cadeia de caracteres de destino de SuppressMessageAttributes global
  • A opção ByVal é esmaecida para demonstrar que não é necessária, e uma correção de código foi introduzida para remover a ByVal desnecessária no Visual Basic
  • Suporte à janela interativa para vários runtimes, como .NET Framework e .NET Core.
  • Adição de uma nova API RegisterAdditionalFileAction que permite que os autores do analisador criem um analisador para arquivos adicionais.

IDE do Visual Studio 2019:

  • Adicione sua conta do GitHub usando uma experiência de gerenciamento de conta
  • Nesta versão, a experiência herdada Localizar nos Arquivos foi preterida, e todos os usuários estão passando para a nova experiência. A equipe do editor está trabalhando com pessoas que deixam comentários na Developer Community e estão enfrentando problemas com a experiência moderna Localizar nos Arquivos.
  • O provedor de publicação do ClickOnce agora está disponível para aplicativos do Windows Desktop em .NET Core 3.1 e .NET 5.0.

Quebrar linha do painel de detalhes de teste do Gerenciador de Testes:

  • Agora você pode quebrar linha de texto no painel de detalhes de teste do Gerenciador de Testes.

Ferramentas XAML (WPF, UWP e Xamarin.Forms):

  • Aprimoramentos no diagnóstico de Falhas de Associação XAML
  • Configurações de Recarga Dinâmica de XAML movidas para "Depuração > Recarga Dinâmica"
  • Preenchimento da caixa de ferramentas de pacotes NuGet não referenciados

JavaScript/TypeScript:

  • agora o depurador de JavaScript/TypeScript dá suporte a trabalhos de serviço de depuração, funções de trabalho, iFrames e à sua página JavaScript, tudo ao mesmo tempo! Além disso, a nova experiência de depuração adiciona o suporte para a depuração de seus aplicativos de servidor de nó de back-end e para JavaScript do lado do cliente no navegador ao mesmo tempo. Esse recurso ainda é experimental. Você pode habilitar a nova experiência de depuração no menu de opções Depuração
  • Agora você pode disparar as refatorações em qualquer lugar em que possam estar disponíveis usando o atalho de ação de código (Ctrl +.). Você nem precisa selecionar texto: oTypeScript agora é inteligente o suficiente para examinar o local do cursor e obter as melhores refatorações disponíveis!
  • Agora você pode ajustar quais pacotes o TypeScript pesquisa para conclusão de importação automática. Isso pode levar a melhorias de desempenho em alguns projetos com muitas dependências. Para obter mais detalhes, confira o TypeScript 4.0 (notas sobre a versão)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]
  • Adicionamos uma mensagem no painel de saída mostrando os tipos que instalamos para dar suporte ao IntelliSense. Recomendamos adicionar um tsconfig ao seu projeto para personalizar quais tipos são usados.
  • Observe que incluímos o compilador TypeScript 4.0 e o serviço de linguagem

Aviso de Consultoria de Segurança

CVE-2020-17100 Vulnerabilidade de adulteração do Visual Studio

Há uma vulnerabilidade de adulteração quando as Ferramentas Python para Visual Studio criam a pasta python27. Um invasor que explorasse com êxito essa vulnerabilidade poderia executar processos em um contexto de privilégios elevados.

Problemas solucionados nesta versão

  • Correção de um problema em que a compilação no Visual Studio 2019 16.7 com a versão dupla de 80 bits do compilador Intel C++ emite erros do compilador, impedindo a criação de projetos.
  • Correção de um problema em que o Live Unit Testing se recusava a iniciar em alguns cenários.
  • .NET 5.0. RC2 adicionado ao Visual Studio 2019 v16.8 versão prévia 4
  • Correção de um bug em que uma operação Git ocasional começava e nunca terminava.
  • Funcionalidade extra adicionada à criação e conexão de Codespaces do Visual Studio.
  • Foi corrigido um bug que fazia o Visual Studio 2019 falhar ou parar quando era fechado ou saía das soluções do ASP.NET Core.
  • Corrigimos um problema em que não era possível carregar o sistema de projeto do C++ após a desinstalação e a reinstalação do Visual Studio 2019.

Detalhes das novidades do Visual Studio 2019 versão 16.8.0

C++

  • As corrotinas do C++20 agora são compatíveis com /std:c++latest e o cabeçalho de <corrotina>. O suporte para nosso comportamento herdado está disponível em <experimental/coroutine> e no switch /await.
  • O IntelliSense agora dá suporte a cabeçalhos de <conceitos> e <intervalos> do C++20, bem como à renomeação e procura de definições de conceito. Há um problema conhecido que esperamos resolver na Versão Prévia 4.
  • Nosso STL agora é compatível com a maioria dos Intervalos do C++20. É possível acompanhar nosso progresso em problema de intervalos no GitHub.
  • As funções condicionalmente triviais de membros especiais agora são compatíveis com o MSVC.
  • O C11 e o C17 agora são compatíveis com os switches /std:c11 e /std:c17.
  • Os aprimoramentos adicionais do STL incluem suporte completo para std::atomic_ref, std::midpoint e std::lerp e std::execution::unseq, além de otimizações para std::reverse_copy e muito mais. É possível encontrar todas as atualizações em nosso Log de mudanças.
  • Atualizamos a versão do CMake fornecida com o Visual Studio para CMake 3.18.
  • Nossas ferramentas de análise de código agora são compatíveis com o padrão SARIF 2.1: o formato padrão de log de análise estática do setor. É possível ler mais sobre o formato SARIF na especificação oficial.
  • As ferramentas de build ausentes nos projetos do Linux emitirão um aviso na barra de ferramentas e uma descrição clara das ferramentas ausentes na lista de erros.
  • Agora é possível depurar os despejos de núcleo do Linux em um sistema Linux remoto ou no WSL diretamente do Visual Studio.
  • Para a geração de comentários de Doxygen para C++, incluímos opções adicionais de estilo de comentário (/*! and //!).
  • Mais anúncios do vcpkg
  • Adicionamos suporte de compilador para lambdas em contextos não avaliados, o que permite que você use lambdas em especificadores decltype.
  • As opções de linter ao digitar e correções já estão disponíveis no Visual Studio. Configurar usando Ferramentas->Opções->Editor de Texto->C/C++->CodeStyle->Linter + Correções.
As opções de linter ao digitar mostrando o aviso para usar & bit a bit e em vez de && lógico em bools
Opções de linter ao digitar

Depurador

Suporte à depuração de despejo de núcleo do Linux do .NET Core

A depuração de despejos gerenciados de núcleo do Linux no Windows até então era difícil de ser realizada. Normalmente, ela demandaria configurar outro ambiente do Linux que espelhasse exatamente a produção para depois instalar um conjunto de ferramentas para análise. Agora, com o Visual Studio 2019 16.8 versão prévia 3, basta arrastar e soltar um despejo gerenciado de núcleo do Linux diretamente no IDE e iniciar a depuração imediatamente.

Análise automática do .NET

A programação async (assíncrona) já existe há vários anos na plataforma do .NET, porém ela sempre apresentou dificuldades para funcionar bem. Introduzimos analisadores de despejo de memória gerenciada que ajudam a identificar os seguintes cenários e antipadrões:

  • Sync-over-Async
  • Esgotamento de ThreadPool

Análise automática de caminho crítico de memória do .NET e do .NET Core

Isso permitirá que os clientes exibam de maneira intuitiva os tipos de objetos dominantes no próprio heap de memória usando anotações de flame na janela Ferramenta de Diagnóstico de Memória.

Fakes com projetos de estilo do SDK gera problemas no shim

Ao usar o novo suporte do Fakes para projetos de estilo do SDK, alguns usuários encontraram o seguinte erro ao gerar shims:

Cannot generate shim for System.DateTime: type is not supported because of internal limitations

Uma correção para isso foi lançada na versão 16.8 versão prévia 3. Se estiver usando uma versão 16,7. *, você poderá usar a seguinte solução:

  1. Adicione <FakesUseV2Generation>False</FakesUseV2Generation> a um PropertyGroup em seu arquivo csproj.
  2. Adicione o <Fakes Include="Fakes\*.fakes" /> a um ItemGroup em seu arquivo csproj.
  3. Adicione uma referência aos assemblies do Fakes gerados no ProjectDir/FakesAssemblies.

Você também pode seguir os comentários na Developer Community para obter atualizações adicionais.

Atualizações do editor Razor experimental

O novo editor Razor experimental agora dá suporte aos seguintes recursos de edição do Razor:

  • Lâmpadas Blazor:
    • Extrair para code-behind*:
    • Criar componente de tag*
    • Adicionar a diretiva @using para o componente
    • Qualificar totalmente o nome da tag do componente
  • Lâmpadas C#
    • Adicionar a diretiva @using
    • Qualificar totalmente o nome do tipo
  • Formatação Razor aprimorada
  • Renomeação de componentes Razor na marcação de arquivos .razor
  • Ir para definição em nomes de marcas de componentes Blazor
  • Colorização de foco em C#
  • Colorização de dica de ferramenta de conclusão em C#
  • Localizar Todas as Referências em arquivos Razor fechados
  • Desempenho e estabilidade aprimorados da edição do Razor para projetos e soluções de grande porte

* Funciona apenas em cenários locais do Razor, ainda não tem suporte nos Codespaces ou no LiveShare.

Para habilitar o editor Razor experimental, acesse Ferramentas>Opções>Ambiente>Recursos de Visualização, selecione Habilitar o editor Razor experimental e reinicie o Visual Studio.

IDE do Visual Studio 2019

  • Adicione sua conta do GitHub usando uma experiência familiar de gerenciamento de conta do Visual Studio. O controle de versão, o terminal integrado e outros recursos poderão aproveitar suas credenciais de conta para atender às necessidades de autenticação do GitHub.
Dicas de nome de parâmetro embutido com o GitHub
Como adicionar contas do GitHub ao Visual Studio
  • O provedor de publicação do ClickOnce agora está disponível para aplicativos do Windows Desktop em .NET Core 3.1 e .NET 5.0. Para começar, clique com o botão direito do mouse no projeto no Gerenciador de Soluções e selecione Publicar ou o menu Compilar > Publicar <NomeDoAplicativo>. O ClickOnce pode ser encontrado na categoria Pasta.
Dicas de nome do parâmetro embutido com a imagem do GitHub
Provedor de publicação do ClickOnce no Visual Studio

Produtividade do Git

  • Criar um branch de um item de trabalho do Azure DevOps
Criar um branch de um item de trabalho do Azure DevOps
Criar um branch com base em um item de trabalho
  • Abrir um repositório Git de uma lista de repositórios locais no menu do Git
Lista de repositórios locais
Lista de repositórios locais no menu do Git
  • O provedor padrão de controle do código-fonte agora é o Git, em vez do TFVC, que poderá ser alterado em: Ferramentas – Opções – Controle do código-fonte

  • Clique único para alternar entre os históricos de branch na janela do Repositório Git

  • Exiba e selecione em uma lista de soluções em seu repositório no Gerenciador de Soluções depois de abrir um repositório

Alterne a versão prévia do recurso para mostrar a lista de Exibições ao abrir um repositório
Alterne a versão prévia do recurso para mostrar a lista de Exibições ao abrir um repositório
Lista de Exibições no Gerenciador de Soluções
Lista de Exibições no Gerenciador de Soluções

Produtividade do .NET

  • Os analisadores do .NET Compiler Platform (Roslyn) inspecionam o código em C# ou no Visual Basic para analisar a segurança, o desempenho, o design e problemas diversos. Do .NET 5.0 em diante, esses analisadores estão incluídos no SDK do .NET. Os analisadores estão habilitados, por padrão, para projetos direcionados ao .NET 5.0 ou posterior. É possível habilitar a análise de código em projetos direcionados a versões anteriores do .NET definindo a propriedade EnableNETAnalyzers como true. É possível desabilitar a análise de código do projeto definindo EnableNETAnalyzers como false. Também é possível usar a janela Propriedades do Projeto para habilitar/desabilitar os analisadores do .NET. Para acessar a janela Propriedades do Projeto, clique com o botão direito do mouse em um projeto no Gerenciador de Soluções e selecione Propriedades. Em seguida, selecione a guia Análise de Código, na qual é possível marcar ou desmarcar a caixa de seleção para Habilitar analisadores do .NET.
Janela Propriedades do Projeto para habilitar Analisadores do .NET
Janela Propriedades do Projeto para habilitar Analisadores do .NET
  • Agora há uma refatoração que apresenta a nova sintaxe de correspondência de padrões not do C# 9 quando um operador de supressão está presente. Coloque o cursor no operador de supressão. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Usar a correspondência de padrões.
Refatoração apresentando o C# 9 sem a sintaxe de correspondência de padrões
Refatoração apresentando o C# 9 sem a sintaxe de correspondência de padrões
  • Agora há uma refatoração de método embutido que ajudará a substituir os usos de um método estático, de instância e de extensão em um único corpo da instrução, usando uma opção para remover a declaração de método original. Posicione o cursor sobre o uso do método. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione então uma das seguintes opções:

Selecione Embutir <QualifiedMethodName> para remover a declaração de método embutido:

Refatoração de Método Embutido removendo a declaração
Refatoração de Método Embutido removendo a declaração

Selecione Embutir e manter <QualifiedMethodName> para preservar a declaração de método original:

Refatoração de Método Embutido preservando a declaração
Refatoração de Método Embutido preservando a declaração
  • Para criar um arquivo C# ou do Visual Basic de um modelo, é necessário respeitar as configurações de estilo de código do EditorConfig. Os estilos de código a seguir serão aplicados automaticamente durante a criação de arquivos: cabeçalhos de arquivos, classificação usando diretivas e posicionamento usando diretivas dentro/fora de namespaces.

  • Agora há suporte ao C# e Visual Basic para dicas de nome de parâmetro embutido que insere adornos para literais, literais convertidas e instanciações de objeto antes de cada argumento nas chamadas de função. Primeiro, você precisará ativar essa opção em Ferramentas>Opções>Editor de Texto>C# ou Basic>Avançado e selecionar Exibir dicas de nome de parâmetro embutido (experimental). As dicas de nome de parâmetro embutido serão exibidas no arquivo C# ou Visual Basic.

Dicas de nome de parâmetro embutido
Dicas de Nome de Parâmetro Embutido
  • Agora você pode extrair membros de uma classe selecionada para uma nova classe base com a nova refatoração Extrair a Classe Base. Coloque o cursor sobre o nome de classe ou um membro realçado. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Efetuar pull de membros até a nova classe base. A nova caixa de diálogo Extrair Classe Base será aberta, onde você poderá especificar o nome da classe base e o local onde ela deve ser colocada. Você pode selecionar os membros que deseja transferir para a nova classe base e optar por tornar os membros abstratos marcando a caixa de seleção na coluna Tornar Abstrato.
Extrair a Classe Base
Extrair a Classe Base

Depois de selecionar Ok, você verá a nova classe base adicionada com seus membros.

Para C#, selecione Converter typeof em nameof:

Converter typeof em nameof
Converter typeof em nameof

Para o Visual Basic, selecione Converter GetType em NameOf:

Converter GetType em NameOf
Converter GetType em NameOf
  • A limpeza de código tem novas opções de configuração que podem aplicar preferências de formatação e de cabeçalho definidas no arquivo EditorConfig em um único arquivo ou em toda a solução.
Suporte à Formatação e ao Cabeçalho de Arquivo na Limpeza de Código
Suporte à Formatação e ao Cabeçalho de Arquivo na Limpeza de Código
  • Foi introduzida uma correção de código para remover a palavra-chave in em que o argumento não deve ser passado por referência. Coloque o cursor no erro. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Remover a palavra-chave 'in'.
Remover a correção de código de palavra-chave
Remover a correção de código de palavra-chave `in`
  • Foi introduzida uma refatoração que introduz os novos combinadores de padrões do C#9. Juntamente com as sugestões de correspondência de padrões, como a conversão de == para uso de is quando aplicável, essa correção de código também sugere os combinadores de padrões and, or e not para correspondência de vários padrões diferentes e negação. Coloque o cursor dentro da instrução. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Usar a correspondência de padrões.
Introduzir combinadores de padrões do C#9
Introduzir combinadores de padrões do C#9
  • Foi introduzida uma correção de código para que, ao você fazer uma tentativa de escrever um método abstrato em uma classe que não é abstrata, essa classe seja transformada em abstrata. Coloque seu cursor sobre o erro do método. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Tornar a classe 'abstrata'.
Tornar a classe abstrata
Tornar a classe abstrata
  • Na versão 16.7 Versão prévia 1, adicionamos uma conclusão do IntelliSense em literais de cadeia de caracteres DateTime e TimeSpan. Nesta versão, essa lista de conclusão aparece automaticamente quando a primeira aspa é digitada. No passado, era necessário digitar (Ctrl+espaço) para exibir essa lista de conclusão. Coloque o cursor dentro do literal de cadeia de caracteres DateTime ou TimeSpan e digite a primeira aspa dupla. Em seguida, você verá as opções de conclusão e uma explicação sobre o que significa cada caractere. Serão fornecidos o formato de data e hora e um exemplo.
Conclusão do IntelliSense em literais de cadeia de caracteres DateTime e TimeSpan
Conclusão do IntelliSense em literais de cadeia de caracteres DateTime e TimeSpan
Essa melhoria também funciona para cadeias de caracteres interpoladas quando você digita dois-pontos
Essa melhoria também funciona para cadeias de caracteres interpoladas quando você digita dois-pontos
  • Foi introduzida uma correção de código para remover as supressões de pragma desnecessárias e SuppressMessageAttributes desnecessários. Coloque o cursor sobre o aviso do pragma ou o SuppressMessageAttribute. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Remover supressão desnecessária.
Remover Pragmas Desnecessários
Remover Pragmas Desnecessários
Remover SuppressMessageAttributes Desnecessários
Remover SuppressMessageAttributes Desnecessários
  • Renomear e Localizar Todas as Referências agora compreendem referências a símbolos na cadeia de caracteres de destino de supressões globais de SuppressMessageAttribute.
Renomear SuppressMessageAttribute
Renomear SuppressMessageAttribute
Localizar Todas as Referências para SuppressMessageAttribute
Localizar Todas as Referências para SuppressMessageAttribute
  • O Visual Basic tinha várias maneiras de passar parâmetros, ByVal e ByRef, sendo que ByVal foi opcional durante muito tempo. Atualmente, a opção ByVal é esmaecida para demonstrar que não é necessária, e uma correção de código foi introduzida para remover a ByVal desnecessária. Coloque o cursor na palavra-chave ByVal. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione A palavra-chave 'ByVal' é desnecessária e pode ser removida.
Remover Refatoração de ByVal do Visual Basic
Remover Refatoração de ByVal do Visual Basic
  • Foi introduzido suporte à janela interativa para vários runtimes, como .NET Framework e .NET Core.
Suporte à Janela Interativa no .NET Core
Suporte à Janela Interativa no .NET Core
  • Há uma nova API RegisterAdditionalFileAction que permite que os autores do analisador criem um analisador para arquivos adicionais.

Quebrar linha do painel de detalhes de teste do Gerenciador de Testes

Esse recurso altamente solicitado permite que o usuário selecione a quebra de linha de texto ou deixe o alinhamento da linha de texto padrão. Quando o alinhamento de texto não é necessário, a quebra de linha pode facilitar muito a exibição de comentários de uma execução de teste e eliminar a necessidade de uma barra de rolagem horizontal. Você pode habilitá-lo no menu de configurações do Gerenciador de Testes ou no menu de contexto do painel Resumo.

Encapsular detalhes de teste no menu Configurações de teste
Menu de configurações do teste
Quebrar linha de detalhes de teste no menu de contexto clicando com o botão direito do mouse
Quebrar linha de detalhes de teste no menu de contexto clicando com o botão direito do mouse

Ferramentas XAML (WPF, UWP e Xamarin.Forms)

Aprimoramentos no diagnóstico de Falhas de Associação XAML

Os desenvolvedores que trabalham em projetos WPF, UWP, WinUI e Xamarin.Forms geralmente devem detectar e resolver falhas de associação de dados XAML em seus aplicativos. Para melhorar as ferramentas de diagnóstico nesse cenário, adicionamos duas novas experiências ao Visual Studio 2019 versão 16.8 ou mais recente:

  • Ícone do indicador de falha de associação XAML: um novo ícone de indicador de falha de associação XAML agora está presente na barra de ferramentas no aplicativo para projetos do WPF e UWP e na árvore visual dinâmica para todos os projetos XAML, incluindo Xamarin.Forms. Esse ícone mostrará um indicador vermelho se pelo menos uma falha de associação for detectada. Clicar no ícone também direcionará você à nova janela de Falhas de Associação XAML.
Ícone de Falha de Associação (barra de ferramentas no aplicativo)
Ícone de Falha de Associação (barra de ferramentas no aplicativo)
  • Janela Falhas de Associação XAML: a nova janela Falhas de associação XAML agora está disponível para projetos WPF, UWP, WinUI e Xamarin.Forms. Essa nova experiência dedicada fornece uma interface do usuário avançada sobre as informações de falha de associação que anteriormente só estavam disponíveis na Janela de Saída. Os aprimoramentos incluem a capacidade de ver as falhas como um conjunto de colunas que podem ser classificadas e personalizadas e são totalmente pesquisáveis. Também agrupamos erros semelhantes, limitando o ruído que pode ocorrer durante determinada combinação de falhas de modelos de associação de dados e, ao mesmo tempo, disponibilizando todas as informações sobre erros brutos originais disponíveis e facilmente copiáveis por meio de uma opção de menu de clique com o botão direito do mouse. (observação: requer o Xamarin versão 4.5.0.266-pre3 ou superior)
  • Navegar para a origem para falhas de associação: em parceria com a equipe do WPF, habilitamos a capacidade de navegar até a origem das falhas de associação para os clientes direcionados ao WPF no .NET 5 (RC2 ou mais recente).
Janela Falha de Associação XAML e ícone LVT
Janela Falha de Associação XAML e ícone LVT

XAML Hot Reload

  • A Recarga Dinâmica de XAML "somente alterações" do Xamarin.Forms agora é compatível com UWP: nesta versão, começamos a implantar o suporte para um recurso muito solicitado que habilita as novas alterações somente no suporte de Recarga Dinâmica de XAML em Projetos Xamarin.Forms ao direcionar ao UWP. Esse recurso ainda está em desenvolvimento e, durante a edição do XAML, agora acionará atualizações no aplicativo em execução. Outros recursos, como a barra de ferramentas no aplicativo (seleção de elemento etc.) ainda não foram totalmente implementados, mas serão lançados no futuro.
  • Configurações de Recarga Dinâmica de XAML movidas para "Depuração > Recarga Dinâmica": Nesta versão, consolidamos as configurações de Recarga Dinâmica de XAML em WPF, UWP e Xamarin.Forms em uma tela de configurações unificada em "Depuração > Recarga Dinâmica". Também habilitamos, pela primeira vez, a capacidade de desabilitar ou habilitar a Recarga Dinâmica de XAML por plataforma para dar a você total controle sobre quando esse recurso está disponível. (Observação: nenhuma configuração será alterada durante essa migração, de modo que todas as suas opções existentes permanecerão em vigor nesse novo local)
Configurações consolidadas da Recarga Dinâmica de XAML
Configurações consolidadas da Recarga Dinâmica de XAML

Editor de Código XAML:

  • Suporte a WinUI 3.0 IntelliSense: Nesta versão, habilitamos um suporte melhor ao IntelliSense para desenvolvedores que criam aplicativos usando o novo WinUI 3.0 Versão prévia 3 ou mais recente. Para saber mais sobre o WinUI 3.0, confira a documentação e, para fornecer comentários, visite o Repositório do GitHub XAML da interface do usuário do Windows. Observação: a versão prévia mais recente do WinUI 3.0 é recomendada na 16.9 versão prévia 1 para a experiência de ferramentas atualizada.
  • Aprimorar o suporte a MVVM: ao criar um documento XAML, é possível definir d:DataContext para obter o IntelliSense de uma associação precisa para o documento XAML. No passado, especificar de modo manual o tipo de contexto de dados era muito complicado. Você precisava sair do documento XAML, encontrar o tipo de modelo de exibição desejado, copiar e colar o namespace dele e incluir um nome na declaração d:DataContext. Nesta versão, estamos introduzindo um novo recurso que permitirá declarar rapidamente um d:DataContext por meio de uma lâmpada que sugere possíveis candidatos ao modelo de exibição.
XAML IntelliSense para MVVM d:DataContext
XAML IntelliSense para MVVM d:DataContext

Extensibilidade

Da Developer Community



Problemas conhecidos

Veja todos os problemas em aberto e as soluções alternativas disponíveis no Visual Studio 2019, seguindo o link abaixo.

Comentários e sugestões

Adoraríamos ouvir o que você tem para nos dizer! Em caso de problemas, informe-nos por meio da opção Relatar um Problema no canto superior direito do Instalador ou do próprio IDE do Visual Studio. O ícone Ícone de Comentários está localizado no canto superior direito. Você pode fazer uma sugestão de produto ou acompanhar os problemas na Comunidade de Desenvolvedores do Visual Studio, em que você pode fazer perguntas, encontrar respostas e propor novos recursos. 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.


Histórico de notas sobre a versão do Visual Studio 2019

Para obter mais informações sobre versões anteriores do Visual Studio 2019, consulte a página Histórico de notas sobre a versão do Visual Studio 2019.


Início da página