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
- 9 de março de 2021 – Visual Studio 2019 versão 16.8.7
- 22 de fevereiro de 2021 – Visual Studio 2019 versão 16.8.6
- 9 de fevereiro de 2021 – Visual Studio 2019 versão 16.8.5
- 12 de janeiro de 2021 – Visual Studio 2019 versão 16.8.4
- 8 de dezembro de 2020 – Visual Studio 2019 versão 16.8.3
- 19 de novembro de 2020 – Visual Studio 2019 versão 16.8.2
- 12 de novembro de 2020 – Visual Studio 2019 versão 16.8.1
- 10 de novembro de 2020 – Visual Studio 2019 versão 16.8.0
Notas sobre a versão arquivadas do Visual Studio 2019
- Notas sobre a versão do Visual Studio 2019 versão 16.7
- Notas sobre o lançamento do Visual Studio 2019 versão 16.6
- Notas sobre a versão do Visual Studio 2019 versão 16.5
- Notas sobre a versão do Visual Studio 2019 versão 16.4
- Notas sobre a versão do Visual Studio 2019 versão 16.3
- Notas sobre a versão do Visual Studio 2019 versão 16.2
- Notas sobre a versão do Visual Studio 2019 versão 16.1
- Notas sobre a versão do Visual Studio 2019 versão 16.0
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:
- O Visual Studio 2019 v16.9, versão prévia 3 está disponível hoje!
- O Visual Studio 2019 v16.9 Versão Prévia 2 e um Feliz Ano Novo chegarão em breve!
- Versão prévia do Visual Studio 2019 v16.8 e v16.9 disponível hoje
- Novos recursos no Visual Studio 2019 v16.8 versão prévia 3.1
- O Visual Studio 2019 v16.8 Preview 2 está lançando novos recursos hoje mesmo!
- O Visual Studio 2019 v16.7 e v16.8 Versão Prévia 1 será lançado hoje.
- O Visual Studio 2019 v16.7 Versão Prévia 2 está disponível hoje.
- Novas atualizações incríveis na experiência do Git no Visual Studio
- Em lançamento hoje! Visual Studio 2019 versões 16.6 e 16.7 Versão Prévia 1
- O Visual Studio 2019 versão 16.6 versão prévia 2 lança novos recursos para você
- O Visual Studio 2019 versão 16.5 já está disponível!
- Esta é a temporada de lançamento do Visual Studio 2019 v 16.4
- Visual Studio 2019 v16.4 versão prévia 2, esportes de outono e pumpkin spice
- Suporte do .NET Core e muito mais no Visual Studio 2019 versão 16.3 – atualize agora
- Visual Studio 2019 versão 16.3 versão prévia 2 e Visual Studio 2019 para Mac versão 8.3 versão prévia 2 lançados.
- Visual Studio 2019 versão 16.2 e 16.3 versão prévia 1 agora disponíveis
- Visual Studio 2019 versão 16.2 versão prévia 2
- Visual Studio 2019 versão 16.1 e versão prévia 16.2
- Visual Studio 2019: codifique mais rápido. Work smarter. Crie o futuro.
Confira esta lista completa de todos os itens da Developer Community usados no Visual Studio 2019 versão 16.8
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.
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
- Corrigido um bug de alta prioridade que impedia os desenvolvedores de enviar código para o Azure Functions ou outros recursos do Azure do Visual Studio 2019.
- VS 16.8.5 Criar um repositório Git – Criar um repositório GitHub – PÚBLICO (opção Privado não marcada) – FALHA
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
- Corrigido um problema em que .sqlproj não estava atualizando com alterações.
- O Visual Studio 2019 falha com falhas de OOM em soluções do Chromium.
- Bug no compilador de otimização do Visual Studio 2019 versão 16.7.6
- O Visual Studio falha ao adicionar novo item –> tabela em um projeto de banco de dados.
- VSDIIUnregisterServer está deixando o Visual Studio 2019 lento.
- Falha inesperada do Visual Studio 2019 ao encaixar ou dividir janelas.
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
- Depois que a atualização para a versão 16.8 foi feita, ocorrem muitos erros de análise de código, apesar de determinadas regras estarem configuradas como aviso
- Um aplicativo .NET Core 3.1 ou .NET 5.0 instalado pelo ClickOnce pode falhar ao ser iniciado após a instalação.
- Falso positivo C33005 com _variant_t
- Bug de operação de commit e merge do Git
- Não é possível exibir informações de tarefas ou de pilhas paralelas com o TFM net5.0-windows*
- Clicar em atualizar na Comparação de Esquemas do SQL não salva as alterações no arquivo sqlproj
- Projeto de banco de dados: arrastar um arquivo do gerenciador de soluções para um aberto está excluindo o arquivo do sistema de arquivos!
- O treinamento do modelo do IntelliCode falha no Visual Studio 2019
- Falha ao abrir sessões de colaboração do Live Share
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
- O nome do evento deve ter pelo menos três partes separadas por uma barra
- A personalização da barra de ferramentas não é mantida
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
- KeyNotFoundException relatado por SolutionAssetStorage.GetAssetAsync resulta na barra de ouro
- O IntelliSense falha porque o build do designtime não pode localizar o destino 'GetClCommandLineForReference'
- IOException (pipe interrompido) relatado por GetAssetAsync
- A pesquisa não está funcionando
- O otimizador removeu de forma incorreta informações de EH, gerando falha em algumas exceções
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.
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.
- 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
- 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
- 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
paranameof
no C# e deGetType
paraNameOf
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 usaris
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
eSuppressMessageAttributes
desnecessários Rename
eFind All References
entendem referências a símbolos na cadeia de caracteres de destino deSuppressMessageAttributes
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.
- 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.
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:
- Adicione <FakesUseV2Generation>False</FakesUseV2Generation> a um PropertyGroup em seu arquivo csproj.
- Adicione o <Fakes Include="Fakes\*.fakes" /> a um ItemGroup em seu arquivo csproj.
- 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
- Adicionar a diretiva
- 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.
- 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.
Produtividade do 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 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
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.
- 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.
- 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:
Selecione Embutir e manter <QualifiedMethodName>
para preservar a declaração de método original:
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.
- 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.
Depois de selecionar Ok, você verá a nova classe base adicionada com seus membros.
- Agora há uma correção de código para converter instâncias de typeof(
<QualifiedType>
).Name em nameof(<QualifiedType>
) no C# e instâncias de GetType(<QualifiedType>
).Name em NameOf(<QualifiedType>
) no Visual Basic. Usar nameof em vez do nome do tipo evita as reflexões envolvidas ao recuperar um objeto. Coloque o cursor dentro do typeof(<QualifiedType>
).Name. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Depois, selecione uma das seguintes opções:
Para C#, selecione Converter typeof
em nameof
:
Para o Visual Basic, selecione 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.
- 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'.
- 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 deis
quando aplicável, essa correção de código também sugere os combinadores de padrõesand
,or
enot
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.
- 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'.
- 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.
- 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 oSuppressMessageAttribute
. Pressione (Ctrl+.) para acionar o menu Ações Rápidas e Refatorações. Selecione Remover supressão desnecessária.
- 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
.
- 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.
- Foi introduzido suporte à janela interativa para vários runtimes, como .NET Framework e .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.
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.
- 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).
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)
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.
Extensibilidade
- População da caixa de ferramentas de pacotes NuGet não referenciados: nesta versão, adicionamos suporte para arquivos VisualStudioToolsManifest.xml e específicos do TargetFrameworkMoniker ao popular a Caixa de Ferramentas usando controles de pacotes NuGet não referenciados. Portanto, seu pacote poderá expor diferentes conjuntos de controles para projetos do .NET Core 3.1 e do .NET 5.0, por exemplo.
Da Developer Community
- Não é possível compilar aplicativos WPF direcionados ao .NET 5
- Usar o msbuild.exe por meio da linha de comando para Xamarin.iOS suspende a conclusão
- Desabilitar o IntelliCode 2.2.733.31896 interrompe o TypeScript 3.x com um CompositionFailedException durante a edição de um arquivo .ts
- O IntelliSense do Typescript continua parando
- VS2019 C++: código inválido gerado com Optimize
- As tarefas em segundo plano relatam infinitamente "Operação do IntelliSense em C/C++ em andamento"
- Erro de designer WPF: o caminho do nó calculado é inválido -- null->Window:Grid
- O processo do Visual Studio 16.8.0 Versão prévia 4 desaparece
- Rolar pela janela Configurações de Exceção causa falha no VS
- Macro USE_ATL_THUNK2 do atlstdthunk.h não pode ser indefinido
- Falhas frequentes do Visual Studio Community 2019 16.7.x
- Ir para o gerenciador de pacotes do NuGet causa uma falha no Visual Studio
- asan com avx2 relata estouro-de-buffer-de-pilha
- Não é possível fechar o VisualStudio – Não é possível acessar um objeto descartado
- Foi encontrada uma exceção do tipo NullReferenceException.
- Problemas de modelo do Analisador do Visual Basic
- VS falha ao digitar no arquivo .cs
- Novas verificações de variante no C++ Code Analysis (VS 2019 atualização 8 versão prévia 3) não ocorrem/funcionam
- Abrir uma solução C++ com arquivos de dependência externa faz com que essas guias de arquivo de dependência externa mostrem "Ocorreu um erro em..."
- Falha dos builds do C++ com SDK do Windows 8.1 após a atualização para o Visual Studio 16.7
- ARM64 C++: regressão 16.4 -> 16.5+.
- csproj foi alterado no disco. Feche o editor e reabra-o
- ServiceHub.Host.CLR.x64 parou de funcionar
- ASAN x64 – CMake parece não ter suporte
- A compilação VS2019 WSL C++ falha intermitentemente quando Max Parallel Compilation Jobs é definido como o número de processadores disponíveis
- A recompilação do projeto remove a pasta de saída inteira (compilação remota)
- VS2019 ainda apaga o diretório CMakeBuild toda vez que eu toco em CMakeFiles.txt ou CMakeSettings.JSON
- Falha ao carregar IntelliCodeCppPackage
- Erro de build na configuração WSL do projeto CMake causado pelo prefixo "/mnt/"
- CMake: variáveis de ambiente criadas em CMakeSettings.json não são mais expandidas desde a atualização para o VS 16.7
- A Comparação de Esquemas não avalia as variáveis SQLCMD ao comparar o DACPAC com o código-fonte do projeto
- A separação de build e depuração não deve implantar arquivos .o
- O módulo com a partição não será compilado
- Recebo a mensagem "Trabalhando nisso" quando alterno para uma guia
- O Depurador S2019 do Visual Studio está confuso por diversas variáveis terem o mesmo nome
- O delimitador literal de cadeia de caracteres é realçado após o colchete
- Não é possível definir uma corrotina usando um promise_type que não seja construível por padrão
- C/C++ IntelliSense: nenhuma lista de membros aparece após digitar var. após um operador aritmético em arquivos C
- As referências do Codelens não são atualizadas quando são feitas alterações de código em outro arquivo
- Ir para Definição acessa o construtor std::function em vez da classe do argumento lambda
- Há uma falha no Compilador do Sombreador HLSL ao criar um diretório de saída para arquivos de cabeçalho
- Erro C2027 inesperado: uso de um tipo indefinido durante o uso de modelos com /permissive
- D9025: substituição de '/sdl-' por '/GS-'
- constexpr parece não ser compatível com referências a ponteiros
- O documento já está aberto como um projeto ou uma solução e não pode ser aberto em um editor neste momento.
- A cobertura da expressão switch foi removida na versão 16.7
- O aviso C5045 é acionado mesmo tendo sido desabilitado
- O Xamarin.Forms não pode criar o Arquivo para iOS!
- CImage::Draw() tem chamada ambígua para DrawImage() na 16.7.0 Preview1
- Exibições ausentes ao carregar um Projeto "Abrir Pasta" com o Ícone de Barra de Tarefas Fixado
- C++: compilador seleciona um candidato de sobrecarga incorreto
- Não é possível criar um projeto de VSIX do VB com CodeFix
- VS2019 Localizar Resultados que não estão usando Configurações de Fonte/Cor
- Editar o arquivo .editorconfig em uma solução grande torna o editor muito lento, com alto uso de CPU e RAM e, às vezes, falha
- Os Resultados da Pesquisa com Ctrl+F são mostrados como texto, mas quero ver os resultados na nova janela estruturada de resultados da pesquisa
- O botão Publicar não está visível
- Salvar não salva
- Nomes de projeto/solução com mais de 60 caracteres não são permitidos.
- Mensagem: Você tem uma nova licença para o Visual Studio Enterprise 2019 disponível.
- A exibição Git com o modo escuro não tem a aparência correta.
- O Visual Studio 2019 falha ao fazer a análise de código em segundo plano e não recupera arquivos.
- Falha ao adicionar a Conta de Desenvolvedor da Apple com a autenticação em duas etapas.
- A expressão de dobra em noexcept gera um erro de sintaxe.
- Barra dourada após exceção RPC em StreamPipeReader.AdvanceTo: Nenhuma operação de leitura a ser concluída.
- O projeto do SQL Server falha durante a edição de colunas usando o painel de design.
- Versão prévia do Visual Studio 2019: o repositório ssh+git:// não solicita credenciais, mas informa um erro em vez disso.
- Std::enable_if não remove o operador de conversão do conjunto de sobrecarga.
- A página de solicitação de pull não está funcionando.
- Problema de Enable_if_t SFINAE
- Std::condition_variable::wait_for(0) não elimina o bloqueio
- A obtenção do endereço de um temporário não é detectada pelo compilador.
- NullPointerException é gerada na renomeação de uma classe junto com um arquivo do símbolo.
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 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.