Compartilhar via


Logotipo do Visual Studio Notas sobre a versão do Visual Studio 2022 Preview

Versão 17.12 Versão prévia 1

Lançado em 13 de agosto de 2024

Temos o prazer de anunciar a disponibilidade do Visual Studio 2022 v17.12. Esta atualização se concentra em fornecer experiências fantásticas ao desenvolvedor para trabalhar com projetos do .NET 9 e novos recursos de produtividade de IA, juntamente com melhorias contínuas em todos os aspectos.

Produtividade Da comunidade
Copiar da visualização da lista de erros 1 Tíquete de comentários
Ir para a linha em qualquer lugar na Visualização da Pesquisa de Código 1 Tíquete de comentários
Encaixar a janela Pesquisa de código Visualizar 1 Tíquete de comentários
Gerenciar a renomeação de arquivos com o Git Preview 1 Tíquete de comentários
Criar repositórios internos do GitHub Versão Versão Prévia 1 Tíquete de comentários
Depuração & diagnóstico Da comunidade
Depuração do Blazor WebAssembly Versão Prévia 1
IDE Da comunidade
Avisos de segurança do MotW Preview 1
Desktop Da comunidade
Pesquisa de componentes WinUI aprimorados Versão Prévia 1
Web Da comunidade
Suporte a arquivos HTTP para variáveis de solicitação Versão Prévia 1 Tíquete de comentários
Suporte Vitest em JavaScript e TypeScript Versão Prévia 1 Tíquete de comentários
Suporte a dicas de embutimento para mais idiomas Versão Prévia 1 Tíquete de comentários
.NET Da comunidade
Obtenha mais com o .NET 9 Versão Prévia 1
NuGet audita pacotes transitivos Versão Prévia 1 Tíquete de comentários
Principais correções de bug Da comunidade
Erro em pipelines do Azure DevOps com o VSTest@2 Versão Prévia 1 Tíquete de comentários
Realçar a chave aberta não realça a chave de fechamento Versão Prévia 1 Tíquete de comentários
Localizar e substituir continua revertendo a seleção para o documento atual Versão Prévia 1 Tíquete de comentários
O MSVC considera incorretamente a referência a um tipo de função qualificado por cv/ref como ... Versão Prévia 1 Tíquete de comentários
Assert acionado em ResourceManager.cpp no de CPU de núcleo alto Versão Prévia 1 Tíquete de comentários
Bug no destruidor de embutimento de compilação x86 com SPGO habilitado Versão Prévia 1 Tíquete de comentários

Observação

Confira a lista completa de solicitações de recursos e correções de bug relatadas pelo usuário que estão nesta versão.

Produtividade

Copiar da lista de erro Versão Prévia 1

Copiar um erro da Lista de Erros agora copia apenas a descrição em vez de toda a linha para a área de transferência.

Você vê um erro na Lista de Erros que não sabe como corrigir. Então, você o seleciona e clica em Ctrl+C para copiar a descrição para uma pesquisa na web. Depois de colá-lo no mecanismo de pesquisa, você percebe que ele copiou todos os cabeçalhos de coluna e valores de linha em vez de apenas a descrição. Agora você deve excluir tudo, exceto a descrição do erro, antes de realizar a pesquisa na web. Isso é complicado, mas agora temos uma solução!

Correção de cópia da lista de erros

Quando você copia um erro da Lista de Erros usando Ctrl+C, somente a descrição é copiada para a área de transferência. Isso facilita a pesquisa do erro online ou o compartilhamento com outras pessoas.

Você ainda pode copiar a linha inteira clicando com o botão direito do mouse no erro e selecionando Copiar linha no menu de contexto ou pressionando Ctrl+Shift+C.

Se o que você queria fazer com a descrição do erro era fazer uma pesquisa na web, basta clicar em Ctrl+F1 para pesquisar informações sobre o erro online.

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

Ir para a linha em qualquer lugar na Pesquisa de Código Versão Prévia 1

Na Pesquisa de Código, agora você pode navegar até uma linha específica no documento atual ou em outro documento especificado.

Às vezes, você sabe que há um problema em uma determinada linha do código e deseja resolvê-lo rapidamente. Talvez você tenha sido informado sobre um erro sendo lançado na linha 43 de algum arquivo ou queira chegar ao final de um arquivo específico.

A Pesquisa de código agora dá suporte à navegação rápida para uma linha específica em seu código.

Abra Pesquisa de código e vá para uma linha no documento atual usando dois-pontos + número da linha. Por exemplo, :39 navegará até a linha 39 no arquivo ativo.

Ir para a linha no documento atual

Você também pode ir para uma linha em um documento diferente usando nome do arquivo + dois-pontos + número da linha. Por exemplo, Order:43 navegará até a linha 43 em Order.cs. Se você não especificar o nome exato do arquivo, a pesquisa tentará encontrar a melhor correspondência.

Ir para a linha em um documento diferente

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

Encaixar a janela Pesquisa de código Versão Prévia 1

Agora você pode posicionar livremente a janela Pesquisa de código com recursos como encaixe e ocultação automática.

Se você precisar que a Pesquisa de Código ou Recurso fique fora do seu caminho, agora você tem mais controle sobre o comportamento da janela de pesquisa.

Agora você pode encaixar a janela de pesquisa e executar ações da janela de ferramentas com ela, como o Gerenciador de Soluções e outros.

Pesquisa encaixada na parte inferior

Depois de abrir a Pesquisa de Código ou a Pesquisa de Recursos, clique no ícone da caixa no canto superior direito para convertê-lo em uma janela de ferramentas. Você pode optar por encaixá-lo em outro lugar, retirá-lo, ocultar automaticamente, etc. Você pode reverter para a janela dispensável fechando a janela de ferramentas e reabrindo a pesquisa.

No canto superior direito da janela, o segundo ícone é o ícone da janela de ferramentas

Também simplificamos e limpamos a experiência de visualização na pesquisa. Agora há um botão, indicado com um ícone de olho, para ativar e desativar a visualização.

No canto superior direito da janela, o primeiro ícone é o ícone do painel de visualização

A posição do painel de visualização também será ajustada com base nas dimensões da janela de pesquisa.

Pesquisar encaixado à direita

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

Gerenciar a renomeação de arquivos com o Git Versão Prévia 1

Fique tranquilo ao renomear arquivos com uma nova notificação.

Ao renomear arquivos do gerenciador de soluções, você será lembrado de preparar suas alterações para ver as renomeações no Git. Isso aumenta sua confiança de que o Git está reconhecendo a alteração do arquivo e rastreando-a corretamente. Descobrimos que isso era um ponto de confusão para muitos clientes, então trabalhamos com o pessoal da Comunidade de Desenvolvedores para produzir uma nova notificação.

Notificação do Git mv

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

Criar repositórios internos do GitHub Versão Prévia 1

O Visual Studio agora dá suporte à criação de repositórios internos e inclui diretrizes para cada tipo de repositório para dar a você mais confiança ao iniciar um novo projeto.

O Visual Studio agora dá suporte a repositórios internos para suas organizações do GitHub. Também incluímos orientações para cada tipo de repositório para fornecer mais clareza sobre a visibilidade do novo projeto, dependendo de qual conta você está usando.

Nova caixa de diálogo do repositório

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

Depuração & diagnóstico

Depuração do Blazor WebAssembly Versão prévia 1

Uma prévia da experiência de depuração aprimorada para aplicativos Blazor WebAssembly direcionados ao .NET 9 ou posterior.

O Visual Studio agora oferece uma prévia de uma experiência de depuração aprimorada para aplicativos Blazor WebAssembly direcionados ao .NET 9 ou posterior:

  • Os tipos de dados mostrados no depurador agora correspondem aos tipos de dados .NET esperados.
  • Digite membros e a visibilidade dos membros use os ícones esperados.
  • A pilha de chamadas exibida é limpa para mostrar apenas a pilha de chamadas .NET e respeitar corretamente a configuração Apenas Meu Código.
  • A janela de módulos agora é suportada.
  • O suporte à avaliação de expressões na janela Imediata e para inspeções e pontos de interrupção condicionais foi expandido e aprimorado.

Melhorias de depuração do Blazor

Para habilitar a nova experiência de depuração de visualização:

  • Habilite a configuração Habilitar novo depurador .NET 9+ Mono.
  • Instale o SDK do .NET 9 mais recente.
  • Atualize seu aplicativo Blazor para direcionar o .NET 9.

Limitações conhecidas:

  • A recarga a quente durante a depuração ainda não está totalmente funcional. Isso será abordado em uma ou duas semanas.

IDE

Avisos de segurança do MotW Versão Prévia 1

Os avisos de segurança da Marca da Web (MotW) agora estão integrados à funcionalidade geral de confiança.

O Visual Studio mostrará um aviso de segurança quando detectar que você está tentando abrir o conteúdo marcado com o identificador MotW (Marca da Web).

Este novo aviso relacionado à confiança transmite os riscos de abrir conteúdo de fontes potencialmente inseguras, como downloads da Internet.

Alerta de diálogo de confiança sobre os riscos de segurança de abrir downloads da Web dentro do Visual Studio

Você pode modificar a experiência de confiança padrão acessando as Configurações de Confiança em Ferramentas > Opções > Ambiente.

As configurações de confiança permitem que você personalize a experiência de confiança padrão

Área de trabalho

Pesquisa de componentes WinUI aprimorada Versão Prévia 1

Aprimore a configuração do projeto WinUI com a pesquisa aprimorada do Instalador do Visual Studio, simplificando a localização do componente para desenvolvedores.

Simplifique ainda mais a configuração do seu projeto WinUI com nossa atualização mais recente do instalador do Visual Studio! Os desenvolvedores agora podem localizar rapidamente componentes relacionados ao WinUI, eliminando a frustração anterior de navegar por um resultado de pesquisa vazio. Esse aprimoramento simplifica a configuração do ambiente de desenvolvimento, permitindo uma experiência de usuário mais intuitiva e eficiente.

Uma imagem mostrando uma nova pesquisa para componentes individuais do WinUI no Instalador do Visual Studio

Abra o Instalador do Visual Studio, vá para a guia de componentes individuais e pesquise palavras-chave relacionadas ao WinUI (WinUI, WinRT)!

Web

Suporte a arquivos HTTP para variáveis de solicitação Versão Prévia 1

Os arquivos HTTP agora suportam variáveis de solicitação. É aí que você pode enviar uma solicitação e, em seguida, usar os dados da resposta ou solicitação em solicitações futuras.

Ao trabalhar com arquivos HTTP, um cenário comum é chamar um ponto de extremidade e obter um valor da resposta e enviar uma solicitação subsequente. Por exemplo, você pode chamar um ponto de extremidade para autenticar um usuário e, em seguida, em chamadas posteriores, pode passar o token que foi retornado do ponto de extremidade de logon. Antes desta versão, isso não era possível no Visual Studio. No trecho abaixo, você pode ver um exemplo de como isso funciona em um arquivo HTTP.

# @name login
POST {{TodoApi_HostAddress}}/users/token
Content-Type: application/json

{
  "username": "{{myusername}}",
  "password": "{{mypassword}}"
}

###

GET {{TodoApi_HostAddress}}/todos
Authorization: Bearer {{login.response.body.$.token}}

###

No trecho acima, há duas solicitações, a primeira chamando o ponto de extremidade /users/token para autenticar o usuário. Imediatamente acima da linha de solicitação, você verá o comentário # @name login. Essa sintaxe dá um nome à solicitação (login neste caso) e a configura como uma variável de solicitação. Quando a solicitação é enviada, você pode acessar os valores da resposta ou solicitação em qualquer solicitação futura enviada desse arquivo HTTP. Como esta é uma solicitação de login, você deve ter cuidado para proteger seus segredos. No Visual Studio, temos suporte para acessar segredos de maneira segura. Consulte esta seção sobre os documentos para obter mais informações sobre como lidar com segredos.

A segunda solicitação chama um endpoint autenticado, /todos, que retornará os itens todo para esse usuário. Na solicitação, o token é passado como um cabeçalho com a linha.

Authorization: Bearer {{login.response.body.$.token}}

O ponto de extremidade /users/token retorna uma resposta em JSON. O token é extraído com uma expressão JSON Path, $.token, no corpo da resposta. Se você estiver usando um ponto de extremidade que retorna XML, em vez de uma expressão JSON Path, poderá passar uma expressão XPath. O suporte no Visual Studio foi inspirado na extensão OSS existente para Cliente REST que está disponível para Visual Studio Code. Você pode saber mais sobre as variáveis de solicitação lá. Adicionaremos documentos em breve para discutir esse suporte com muito mais detalhes.

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

Suporte Vitest em JavaScript e TypeScript Versão Prévia 1

Ao usar projetos JavaScript e TypeScript, agora você pode criar casos de teste com o Vitest.

Em projetos JavaScript e TypeScript (JSTS), projetos que possuem a extensão .esproj, adicionamos suporte para descobrir e executar testes criados com o Vitest. Para começar a usar os testes do Vitest, em um projeto JSTS, adicione o pacote vitest usando o npm no Gerenciador de Soluções e, em seguida, modifique o arquivo de projeto para que as propriedades a seguir sejam declaradas.

    <JavaScriptTestRoot>test\</JavaScriptTestRoot>
    <JavaScriptTestFramework>Vitest</JavaScriptTestFramework>

Verifique se o valor de JavaScriptTestRoot tem o caminho relativo correto para onde seus arquivos de teste estão localizados.

Adicione seus testes à pasta correta e crie o projeto/solução. Depois disso, você deverá ver os casos de teste no Gerenciador de Testes.

Explorador de testes com testes vitest

No Gerenciador de Testes, você pode ver os diferentes casos de teste descobertos e executá-los.

Ainda não adicionamos suporte para depuração, mas adicionaremos esse suporte em breve. Outro problema conhecido é quando você clica duas vezes em um caso de teste no Gerenciador de Testes, ele o levará para a primeira linha do arquivo onde o caso de teste está definido. Aprimoraremos essa experiência também.

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

Suporte para dicas de embutimento para mais idiomas Versão Prévia 1

O suporte a Inlay Hint foi adicionado a JavaScript, TypeScript, Python e Razor, bem como uma configuração para controlar seu comportamento.

As dicas de embutimento mostram informações adicionais sobre o código-fonte que é renderizado embutido. Isso geralmente é usado para mostrar tipos inferidos, nomes de parâmetros e outras informações implícitas do código diretamente no editor.

Adicionamos suporte para mostrar dicas de embutimento em JavaScript, TypeScript, Razor e Python. Também adicionamos uma nova configuração para que você possa personalizar o comportamento das dicas nesses idiomas. Essa configuração ainda não se aplica a C# e C++. Para habilitar Dicas de Embutimento para esses idiomas, você pode usar a nova configuração em Ferramentas > Opções > Editor de Texto > Todos os idiomas > Dicas de embutimento. Você pode ver a nova opção na imagem a seguir.

Configuração global de dicas de embutimento

Existem três valores diferentes para dicas de embutimento.

  • Sempre mostre sempre as dicas de embutimento.
  • Ao pressionar Alt+F1 mostra apenas as dicas de embutimento enquanto Alt e F1 são pressionados. Este é o valor padrão.
  • Nunca As dicas de embutimento nunca são mostradas.

Para JavaScript e TypeScript, há uma página de opções adicional para configurar o comportamento de dicas de embutimento. Isso pode ser encontrado em Ferramentas > Opções > Editor de Texto > JavaScript/TypeScript > Avançado > Geral.

Essas opções são mostradas na imagem a seguir.

Configuração global do TypeScript de dicas de embutimento

Por padrão, todas essas opções estão desabilitadas, você deve habilitar as dicas que está interessado em visualizar para arquivos JavaScript e TypeScript. Em uma atualização futura, podemos alterar os valores padrão para essas opções. Na imagem abaixo você pode ver um arquivo JavaScript que mostra Dicas de embutimento.

Dicas de embutimento

Na imagem anterior, as Dicas de embutimento mostradas são as caixas cinzas com : number para indicar o tipo da variável.

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.

.NET

Obtenha mais com o .NET 9 Versão Prévia 1

O .NET 9 eleva o desenvolvimento de aplicativos nativos da nuvem e inteligentes, concentrando-se em aprimoramentos de produtividade, implantações simplificadas e integração acelerada de IA.

O .NET 9 eleva o desenvolvimento de aplicativos nativos de nuvem e inteligentes, com foco em aprimoramentos de produtividade, implantações simplificadas e integração acelerada de IA, garantindo desempenho superior para desenvolvedores em vários aplicativos. E o Visual Studio 17.12 oferece suporte total ao desenvolvimento do .NET 9, facilitando o aproveitamento total de todas as melhorias que ele tem a oferecer.

.NET 9

Além disso, você encontrará atualizações para recursos em torno do IDE que tornam o trabalho com o .NET e ASP.NET mais agradável do que nunca.

NuGet audita pacotes transitivos Versão Prévia 1

O NuGet está alterando as configurações de auditoria padrão para incluir pacotes transitivos.

A Auditoria do NuGet, adicionada pela primeira vez no Visual Studio 17.8 (e no .NET 8), fornece avisos durante a restauração se algum pacote usado pelo projeto tiver vulnerabilidades conhecidas.

Para obter mais informações sobre a Auditoria do NuGet, incluindo todas as opções de configuração, consulte a documentação sobre a Auditoria do NuGet.

Auditoria do NuGet

Nesta versão, os padrões de Auditoria do NuGet para NuGetAuditMode foram alterados. Anteriormente, apenas referências diretas de pacotes eram relatadas por padrão (<NuGetAuditMode>direct</NuGetAuditMode>). Agora, por padrão, ele avisará sobre pacotes diretos e transitivos (<NuGetAuditMode>all</NuGetAuditMode>) com vulnerabilidades conhecidas. Para manter os padrões anteriores, você pode definir explicitamente o valor preferencial de NuGetAuditMode em seu projeto ou arquivo Directory.Build.props.

Como alternativa, você pode definir SdkAnalysisLevel como um número de versão inferior a 9.0.100, mas lembre-se de que isso afetará todos os recursos que usam SdkAnalysisLevel.

A Auditoria do NuGet requer uma fonte de pacote que forneça um banco de dados de vulnerabilidade. NuGet.org fornece vulnerabilidades do GitHub Advisories Database.

A partir do Visual Studio 17.12, agora é possível especificar fontes de auditoria em arquivos NuGet.Config, portanto, não é mais necessário usar nuget.org como uma fonte de pacote.

Se você não estiver usando o nuget.org como uma fonte de pacote e quiser usar a Auditoria do NuGet para relatórios de pacotes vulneráveis durante a restauração, adicione o seguinte a um arquivo NuGet.Config no diretório da solução:

<confiuration>
  <!-- any existing config, including <packageSources> -->
  <auditSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </auditSources>
</configuration>

Confira o tíquete do recurso para compartilhar seu comentário e continuar a conversa.



Dica

Se houver algum recurso que você gostaria de ver em atualizações futuras do Visual Studio, informe-nos enviando um tíquete de recurso.

Observação

Nosso roteiro mostra as prioridades e o direcionamento do futuro do Visual Studio, portanto, confira-o.

Observação

Essa atualização pode incluir um novo software da Microsoft ou de terceiros licenciado separadamente, conforme definido nos Avisos de terceiros ou na licença que o acompanha.

De todos nós da equipe, agradecemos por escolher o Visual Studio. Se você tiver alguma dúvida, entre em contato conosco no Twitter ou na Developer Community.

Boa codificação!
A equipe do Visual Studio