Notas sobre a versão do Visual Studio 2017 versão 15.8
Comunidade de Desenvolvedores | Requisitos do sistema | Compatibilidade | Código distribuível | Termos de licença | Blogs | Problemas conhecidos
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.
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 2017.
Consulte 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 2017.
Blog do Visual Studio
O Blog do Visual Studio é 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 2017 15.8 nas seguintes postagens:
- Visual Studio 2017 versão 15.8 -- Leia a última postagem no blog!
Versões do Visual Studio 2017 15.8
- 2 de novembro de 2018 – Atualização de Manutenção do Visual Studio 2017 versão 15.8.9
- 24 de outubro de 2018 -- Visual Studio 2017 versão 15.8.8 Atualização de Manutenção
- 10 de outubro de 2018 -- Visual Studio 2017 versão 15.8.7 Atualização de Manutenção
- 02 de outubro de 2018 -- Visual Studio 2017 versão 15.8.6 Atualização de Manutenção
- 20 de setembro de 2018 -- Visual Studio 2017 versão 15.8.5 Atualização de Manutenção
- 11 de setembro de 2018 -- Visual Studio 2017 versão 15.8.4 Atualização de Manutenção
- 6 de setembro de 2018 -- Visual Studio 2017 versão 15.8.3 Atualização de Manutenção
- 28 de agosto de 2018 -- Visual Studio 2017 versão 15.8.2 Atualização de Manutenção
- 17 de agosto de 2018 – Atualização de Manutenção do Visual Studio 2017 versão 15.8.1
- 14 de agosto de 2018 – Visual Studio 2017 versão 15.8 Versão Secundária
Importante
Avisos da Consultoria de Segurança do Visual Studio 2017 versão 15.8
- 10 de outubro de 2018 -- Visual Studio 2017 versão 15.8.7 Atualização de Manutenção
- 11 de setembro de 2018 -- Visual Studio 2017 versão 15.8.4 Atualização de Manutenção
- 14 de agosto de 2018 – Visual Studio 2017 versão 15.8
- 10 de julho de 2018 – Visual Studio 2017 versão 15.8 Versão prévia 4
- 26 de junho de 2018 -- Visual Studio 2017 versão 15.8 Versão prévia 3
- 8 de maio de 2018 -- Visual Studio 2017 versão 15.8 Versão prévia 1
Resumo dos novos recursos importantes na 15.8
- O instalador agora oferece a opção para baixar todos os arquivos antes de começar a instalação.
- Melhoramos o desempenho durante o descarregamento/recarregamento do projeto e alternância de branch.
- É possível melhorar os tempos de carregamento da solução desabilitando a restauração automática de documentos.
- Fizemos melhorias de desempenho de teste significativas durante a execução de soluções grandes com vários projetos de teste.
- O Visual Basic agora fornece uma melhoria de desempenho significativo.
- A Criação de Perfil de Desempenho agora oferece a capacidade de pausar/retomar a coleta de dados. Além disso, foi adicionada uma nova ferramenta de Rastreamento de Alocação de Objeto .NET.
- Fizemos melhorias na ferramenta Uso da CPU para a Criação de Perfil de Desempenho.
- Adicionamos novos recursos de produtividade, como limpeza de código, refatoração inverter if, Ir para o Bloco Delimitador, compatibilidade com Vários Sinais de Interpolação e novos perfis de teclado.
- Você pode escolher o destino de instância ao depurar extensões.
- Inicie o Depurador de Instantâneos diretamente da página de resumo de publicação.
- Foi introduzido o F# 4.5, uma nova versão de linguagem totalmente compatível com
Span<'T>
e que contém melhorias significativas para rastreamentos de pilha para o código assíncrono. - O desempenho foi aprimorado e novas funcionalidades foram adicionadas às ferramentas F#, como Ctrl+Clique para Ir para Definição.
- Os aprimoramentos para o conjunto de ferramentas C++ incluem melhorias para o otimizador de SSA e o vinculador.
- As adições de desenvolvimento multiplataforma do C++ incluem atualizações de ClangFormat e modelos de configuração no CMake e Abrir Pasta para MinGW, Linux e Windows.
- As mudanças na produtividade do C++ incluem o IntelliSense do Modelo, dica de ferramenta Informações Rápidas em macros, lâmpadas de conversão para constexpr, rabiscos de análise de código no editor e muito mais.
- As melhorias de depuração de C++ incluem atualizações Apenas Meu Código e novos pontos de interrupção de dados.
- Há diversas melhorias e funcionalidades de JavaScript e TypeScript.
- Agora você pode gerenciar bibliotecas do lado do cliente em seus projetos da Web.
- Adicionamos uma nova experiência de contêiner do Docker de projeto único para projetos Web do ASP.NET Core.
- Agora você pode personalizar a marca para uma imagem do Docker com as melhorias de publicação feitas nesta versão.
- As melhorias do Xamarin incluem suporte para Xcode 9.4 e builds incrementais do Android mais inteligentes.
- Você pode usar o Android Emulator do Google lado a lado com o Hyper-V na Atualização de abril de 2018 do Windows 10.
- Adicionamos um editor de exibição de divisão ao Xamarin.Android Designer.
- Agora, o Visualizador do Xamarin.Forms tem suporte para a caixa de ferramentas, e a mudamos para um editor de exibição dividida.
- Agora você pode usar a depuração em qualquer linguagem com o Python 3.7.0rc1.
- Migrar configurações locais do Azure Functions para o Azure agora mostra novos valores.
- Com a compatibilidade adicionada para Azure Functions, agora você tem um novo host de destino na caixa de diálogo Configurar Entrega Contínua para o Azure.
- A melhoria do painel de resumo do Gerenciador de Testes agora fornece um status de teste mais informativo.
- Extensões de Adaptador de Teste de .NET: substituição e alteração da falha.
- Adicionamos suporte nativo para o Language Server Protocol.
- Agora você tem suporte a segredos para projetos do .NET Framework do ASP.NET.
- O Visual Studio agora ajuda você a atualizar aplicativos .NET Framework do ASP.NET para melhorar o desempenho de build.
- Agora o Visual Studio oferece ferramentas de desenvolvimento do .NET Framework 4.7.2 para as plataformas compatíveis com o runtime 4.7.2 incluído.
- Os pacotes de carregamento automático assíncronos são atrasados até a inicialização e o carregamento da solução serem concluídos.
- As Ferramentas de Build do Visual Studio 2017 agora dão suporte ao Fluxo de Trabalho e incluem o VSSDK.
- O status do Git e o do TFS agora atualizam adequadamente para alterações de arquivo externo em projetos do .NET Core.
- O SDK do .NET Core 2.1.400 está incluído.
Principais problemas corrigidos na 15.8
Estes são os problemas relatados por clientes e solucionados na 15.8:
- SSDT não está presente nas Ferramentas de Build do Visual Studio 2017.
- O Anaconda falha ao ser desinstalado durante a atualização (Erro 87).
- A atualização para a 15.7 gera o erro: PackageId:Anaconda3.Exe.x64;PackageAction:Uninstall;ReturnCode:87;.
- A atualização do Visual Studio gera erros BuildError UWP em MakePri 0x80073b0f e 0xdef00532 em Minha solução.
- O VS 2017 tem problemas com o recurso de modelo de exportação do ASP.NET Core.
- O Gerenciador de Testes (testes SpecFlow): vai para o arquivo de classe de recurso, não para o arquivo de recurso.
- O modelo de projeto exportado de um projeto C++ contém apenas um vcxproj e vcxproj.filters, nenhuma fonte ou cabeçalho.
- Geração de código inválida em x64.
- O menu de contexto de clique com o botão direito do mouse em uma Pasta de Solução não faz nada no Enterprise 15.8 Versão Prévia 2.
- O VS2017 não lembra a posição da tela e o tamanho para uso em três monitores.
- UTF8-no-BOM faz com que a janela de comparação exiba aviso de codificação incorreta.
- Clicar duas vezes em uma palavra seleciona apenas o início da palavra, não a palavra inteira.
- O VS2015 e o VS2017 criam uma pasta Depuração vazia no caminho definido por $(SolutionDir), apesar de $(OutDir) e $(IntDir) usarem configurações completamente diferentes.
- Se você criar um projeto baseado em caixa de diálogo do MFC em um ambiente japonês com o VS2017, editar a caixa de diálogo causará erros no build.
- Texto de Progresso do Download é exibido no Instalador do Visual Studio.
- Clicar com o botão direito do mouse no projeto executável no Gerenciador de Soluções -> Depurar -> Iniciar nova instância seleciona um projeto aleatório da solução para iniciar.
- O build da linha de comando DEVENV falha com Esta operação pode ocorrer apenas no thread de interface do usuário.
- Localizar e substituir lembra dos tipos de arquivo.
- Mensagens de erro são ilegíveis no console do Gerenciador de pacotes devido à cor da fonte e à cor da tela de fundo.
- A versão prévia de publicação da Web do Visual Studio Community 2017 15.4.1 falha com não autorizado.
- Abrir resultados do teste no VS 2017 para Builds XAML.
Confira todos os problemas relatados pelo cliente corrigidos no Visual Studio 2017 versão 15.8.
Detalhes das novidades na 15.8
Visual Studio 2017 versão 15.8.0
lançado em 14 de agosto de 2018
Novas funcionalidades na 15.8
Instalar
Agora você tem a opção de baixar todos os arquivos de instalação antes de iniciar a instalação.
- Para usar essa nova opção, selecione a opção "Baixar tudo, depois instalar" no instalador (Figura 1). Sugerimos esta opção caso você tenha uma conexão de Internet mais lenta.
- A opção padrão permanece "Instalar durante o download", que baixa e instala em paralelo.
Desempenho
Esta versão conta com as seguintes melhorias de desempenho:
- Alternar branches para projetos do C#, do VB e do C++ é muito mais rápido para soluções grandes, pois o recarregamento de solução não é mais necessário.
- Reduzimos o tempo para descarregar e recarregar um pequeno conjunto de projetos do C# e do VB em soluções grandes de minutos para vários segundos.
- Adicionamos uma opção para desabilitar a reabertura de documentos que estavam abertos na sessão anterior, uma vez que a reabertura de determinados tipos de arquivos ou designers pode atrasar o carregamento da solução.
- Ative/desative essa opção em Ferramentas > Opções > Projetos > Soluções > Geral.
Desempenho de Teste
Melhoramos significativamente o desempenho ao executar alguns testes em uma solução grande com vários projetos de teste. Em nossos laboratórios, uma solução com mais de 10.000 MSTests executou um teste único até 82% mais rápido.
Melhoria de desempenho do Visual Basic
O Visual Basic agora fornece uma melhoria significativa de desempenho ao usar o padrão CInt(Fix(number))
para converter de tipos não inteiros para inteiros.
Criação de Perfil de Desempenho
Esta versão conta com os seguintes aprimoramentos de criação de perfil de desempenho:
Adicionamos a capacidade de iniciar a criação de perfil em um estado em pausa:
A ferramenta Uso da CPU no Criador de Perfil de Desempenho (ALT-F2) agora pode ser iniciada em um estado em pausa (Figura 2). Isso pode ser útil durante a espera para que um cenário seja digno de uma investigação de Uso da CPU. Se a coleta de uso da CPU estiver desabilitada na inicialização, o Criador de Perfil de Desempenho não coletará nenhum dado de pilha de exemplo de uso da CPU até que ela seja especificamente habilitada. Isso resulta em uma quantidade menor de dados para ser coletada e analisada, tornando as investigações de desempenho mais eficientes.
Para iniciar uma sessão com a coleta de exemplo de Uso da CPU desabilitada, clique no ícone de engrenagem ao lado de Uso da CPU na página de inicialização do Criador de Perfil de Desempenho. Na página de propriedades Uso da CPU, desmarque a opção Habilitar Criação de Perfil da CPU (Amostragem) e clique em OK para salvar as configurações.
Depois de iniciar o aplicativo de destino (clique em Iniciar na página de inicialização do Criador de Perfil de Desempenho), você verá o grafo de utilização da CPU (Figura 3), que permite controlar a criação de perfil da CPU. Para habilitar a coleta de dados de pilha de exemplo de uso da CPU, selecione Habilitar criação de perfil da CPU no meio da exibição ou clique em Gravar Perfil da CPU logo abaixo do grafo de utilização da CPU. Clique em Gravar Perfil da CPU para habilitar/desabilitar a coleta de dados de exemplo quantas vezes desejar. A cor do grafo de utilização da CPU muda de cor para indicar se a coleção de amostra está habilitada/desabilitada naquele momento.
Adicionamos uma ferramenta de Rastreamento de Alocação de Objeto .NET:
- A ferramenta de Rastreamento de Alocação de Objeto .NET une a família de ferramentas disponíveis para o Criador de Perfil de Desempenho. A invocação dessa ferramenta para uma sessão do criador de perfil de desempenho inicia a coleta de um rastreamento de pilha para cada alocação de objeto .NET ocorrida no aplicativo de destino. Esses dados de pilha são analisados juntamente com as informações de tipo e tamanho do objeto para revelar detalhes da atividade de memória do seu aplicativo. Você pode determinar rapidamente os padrões de alocação no código e identificar anomalias. Além disso, para eventos de GC (Coleta de Lixo), você pode determinar com facilidade quais objetos foram coletados e mantidos e identificar rapidamente os tipos de objeto que dominam o uso de memória do aplicativo.
- Isso é especialmente útil para gravadores de API para ajudar a minimizar as alocações. Muitos aplicativos causarão um estouro dos limites de buffer envolvidos na coleta de dados de diagnóstico, mas os aplicativos de teste pequenos que exercitam cenários de uma chave de API podem ser diagnosticados muito bem. Embora o aplicativo de teste esteja em execução, o Criador de Perfil de Desempenho exibe um grafo de linha de Objetos Ativos (contagem), bem como um grafo de barras de Delta de Objeto (% de alteração).
- Para usar a Ferramenta de Rastreamento de Alocação de Objeto .NET, exiba a página de inicialização do Criador de Perfil de Desempenho (Figura 4), selecione um destino a ser analisado (o destino padrão é o projeto de inicialização na solução), marque a opção Rastreamento de Alocação de Objeto .NET em Ferramentas Disponíveis e, em seguida, clique em Iniciar.
Criação de Perfil de Desempenho (Uso da CPU)
Esta versão contém as seguintes melhorias para a ferramenta de Uso da CPU do Criador de Perfil de Desempenho (disponível por meio das teclas ALT-F2):
- Agora o Modo de exibição de árvore de chamadas mostra a execução assíncrona por pilha de chamadas lógica por padrão. Você pode desativar esse comportamento desmarcando a opção Costurar Código Assíncrono no menu suspenso Filtrar da exibição principal de Uso da CPU.
- Adicionamos uma exibição Módulos/Funções que mostram informações de desempenho por módulo (dll) e por função em um módulo. É possível mostrar a exibição de Módulos/Funções no menu de contexto disponível ao selecionar uma função na exibição principal de Uso da CPU ou do menu suspenso Exibir nos modos de exibição de Árvore de Chamadas ou Chamador/Receptor.
- A indicação de instância foi adicionada ao grafo Uso da CPU na exibição principal da ferramenta Uso da CPU. Exiba as instâncias quando uma função está em execução (por exemplo, na pilha) clicando duas vezes em uma função listada em uma das exibições Uso da CPU.
Produtividade
Esta versão conta com os seguintes aprimoramentos de produtividade:
- Você pode executar a limpeza de código adicional com Formatar Documento (Ctrl+K, D ou Ctrl+E, D) para desenvolvimento em C#. Configure a limpeza acessando Ferramentas>Opções>Editor de Texto>C#>Estilo de Código>Formatação>Geral.
- Foram adicionadas mais refatorações e ações rápidas usando Ctrl + . ou Alt + Enter:
- Inverter if permite que você inverta a lógica em instruções if-else. Coloque o cursor na palavra-chave
if
para disparar essa refatoração. - Adicionar parâmetro do site de chamada do método permite que você adicione um parâmetro a um método adicionando um argumento ao site de chamada de um método e disparando Ações Rápidas e Refatorações.
- Remover parênteses desnecessários remove os parênteses em torno de operadores binários que não são essenciais para a compilação. Configure essa regra de estilo por meio de Ferramentas>Opções>Editor de Texto>C#>Estilo de Código>Geral ou .editorconfig:
dotnet_style_parentheses_in_arithmetic_binary_operators
dotnet_style_parentheses_in_relational_binary_operators
dotnet_style_parentheses_in_other_binary_operators
dotnet_style_parentheses_in_other_operators
- A opção Usar condicionais ternários em atribuições e instruções de retorno também pode ser configurada como uma regra de estilo em Ferramentas>Opções>... ou por meio de .editorconfig:
dotnet_style_prefer_conditional_expression_over_assignment
dotnet_style_prefer_conditional_expression_over_return
- Inverter if permite que você inverta a lógica em instruções if-else. Coloque o cursor na palavra-chave
- Adicionamos novos comandos e melhorias à janela Ir para Todos:
- Ir para o Bloco Delimitador (Ctrl + Alt + Seta para Cima) permite que você navegue rapidamente até o início do bloco de código delimitador.
- Ir para o Problema Seguinte/Anterior (Alt + PgUp/PgDn) permite que você pule para o problema seguinte/anterior (erro, rabisco, lâmpada).
- Ir para Membro (Ctrl + T, M) agora tem escopo para o arquivo por padrão. Você pode alterar o padrão para solução ativando/desativando o Escopo do Documento Atual (Ctrl + Alt + C).
- Agora você pode criar pontos de inserção e seleções em vários locais aleatórios arbitrários em um arquivo com compatibilidade com vários sinais de interpolação. Isso permite que você adicione, edite ou exclua o texto em vários locais simultaneamente.
- Insira sinais de interpolação com Ctrl + Alt + Clique com o botão esquerdo do mouse.
- Adicione uma seleção e sinal de interpolação no próximo local que corresponde à seleção atual com Shift + Alt + Ins.
- Confira Editar > Vários Acentos Circunflexos para obter uma lista completa de ações.
- Acessar um menu de navegação contextual com Alt + `.
- Mantenha suas associações de teclas consistentes com dois novos perfis de teclado: Visual Studio Code e ReSharper (Visual Studio). Encontre esses esquemas em Ferramentas > Opções > Ambiente > Teclado e no menu suspenso superior.
Depuração
Esta versão conta com os seguintes aprimoramentos de depuração:
Agora, quando você tiver mais de uma instância do Visual Studio 2017 instalada, poderá selecionar em qual instância implantar sua extensão durante a depuração (Figura 5). Dessa forma, você pode, por exemplo, desenvolver no canal de versão do Visual Studio enquanto realiza a depuração no canal de versão prévia.
Agora você pode anexar o Depurador de Instantâneos diretamente por meio da página Publicar resumo (Figura 6).
Agora, damos suporte à exibição de Tarefas Gerenciadas por meio da janela Tarefas durante a depuração de minidespejos com heap.
Ferramentas para Desenvolvedores da Plataforma Universal do Windows
Fizemos várias melhorias importantes para o designer XAML para projetos direcionados para a Plataforma Universal do Windows com uma versão de plataforma de destino dos do Windows 10 Fall Creators Update (build 16299) ou posterior. Entre as melhorias estão:
- Agora você pode editar coleções na Inspeção de Propriedade.
- O designer agora permite que Modelos e Estilos sejam editados, incluindo quando as definições para essas entidades são definidas em outros documentos.
- As propriedades do tipo IconElement (por exemplo, um Ícone em um AppBarButton) agora têm um editor personalizado na Inspeção de Propriedade, facilitando a definição dessas propriedades.
- O designer, o editor e a opção Editar e Continuar agora devem funcionar corretamente com x:DefaultBindMode.
- A experiência do Gerenciador de Estado Visual no Blend agora é compatível com AdaptiveTrigger.
Ferramentas do F# 4.5 e F# para Visual Studio
A linguagem F# versão 4.5 foi introduzida com essa versão. Isso também corresponde à nova família de 4.5.x do FSharp.Core (a biblioteca principal do F#). Você pode ler as especificações para cada uma dessas alterações no Repositório RFC do F#. Também há muitas melhorias nas ferramentas do F# para Visual Studio com essa versão.
F# 4.5
Estes são alguns dos destaques com a linguagem F# versão 4.5:
Suporte para<Span>'T
Implementamos Span<'T>
e os recursos relacionados para que o consumo efetivo e a produção de APIs usando constructos semelhantes a Span
, Memory
e ref
sejam possíveis com o F#. Os recursos para isso incluem:
- Novo tipo
voidptr
. - Novas funções
NativePtr.ofVoidPtr
eNativePtr.toVoidPtr
no FSharp.Core. - Novos tipos
inref<'T>
eoutref<'T>
, que são byrefs somente leitura e byrefs somente gravação, respectivamente. Isso corresponde ain ref
eout ref
no C#. - A capacidade de produzir structs
ByRefLike
(comoSpan
eReadOnlySpan
). - A capacidade de produzir structs
IsReadOnly
. - Desreferência implícita de retornos
byref
einref
de métodos. - A capacidade de produzir membros de extensão em
byref
/inref
/outref
.
Esse conjunto de funcionalidades corrige um bug no design inicial de retornos byref
no F# 4.1, em que as funções, os métodos e as propriedades que retornavam byref
s não estavam desreferenciando implicitamente o valor retornado. Fizemos essa alteração para alinhar o recurso com como o C# lida com retornos ref
. Uma mensagem de erro é usada quando uma anotação de tipo indica que uma desreferência implícita de um retorno ref
é usada agora.
Além disso, esse conjunto de funcionalidades também corrige um bug no compilador F#, em que a "Substituição de struct nocivo" era possível, ou seja, chamar um struct do F# podia substituir o struct real que foi chamado com um diferente. O parâmetro this
em um struct agora é considerado um inref<MyStruct>
, com um erro que sugere que você adicione um campo mutável se quiser modificar o struct.
Você pode saber mais sobre os constructos semelhantes a span
e ref
no RFC desse conjunto de recursos.
Correspondência! em expressões de computação
O F# 4.5 introduz match!
, uma nova palavra-chave para uso em expressões de computação, uma contribuição inteiramente de John Wostenberg. Essa simplificação da sintaxe é equivalente a um let!
seguido por um match
no resultado. Você pode saber mais no RFC de match!
.
Atenuar a necessidade de elevação com yield
em sequência, lista e expressões de matriz
O F# 4.5 agora atenua alguns casos em que um upcast ao usar yield
era necessário para converter um subtipo em um supertipo. Essa restrição já não era necessária para essas expressões desde o F# 3.1 quando não era feito o uso de yield
, portanto isso torna as coisas mais consistentes com o comportamento existente. Você pode saber mais no RFC desse recurso.
Permitindo o recuo em colchetes de lista e matriz
O F# 4.5 agora atenua a regra de recuo para colchetes de lista e matriz que exigiam que eles fossem recuados um escopo para a frente quando estivessem em sua própria linha. Esse requisito anterior sempre foi bastante confuso, especialmente para iniciantes no F#. Além disso, ele não é necessário para expressões de sequência do F#. Isso agora traz expressões de lista e matriz para o mesmo estado consistente que as expressões de sequência. Você pode saber mais no RFC desse recurso.
Casos de enumeração emitidos como públicos
O F# 4.5 agora emite casos de enumeração como públicos em todas as circunstâncias, para se alinhar a como o C# emite casos de enumeração. Isso também facilita para as ferramentas de criação de perfil analisarem logs do código F#, em que o valor em vez de o nome do rótulo era emitido. Você pode saber mais no RFC desse recurso.
Melhorias do compilador do F#
As melhorias do compilador do F#, além dos recursos da linguagem mencionados anteriormente, estão no F# 4.5. Estão incluídos:
- Foi melhorado o trabalho de desempenho do compilador removendo até 2,2% de todas as alocações no compilador do F# (em vários cenários).
- Corrigimos um bug que resulta em uma
AccessViolatioNException
ao usaryield!
com enumeráveis baseados em struct. - Agora é possível herdar de
FSharpFunc
novamente. - Chamadas em cauda estão desabilitadas por padrão para builds de depuração do F# para .NET Core. Elas estão habilitadas para a versão, correspondendo assim ao compilador do F# de desktop.
- A normalização de referência de F# foi corrigida para permitir o controle de referências de assembly transitivas gravadas em um arquivo de saída. Isso permite que você execute o equivalente ao redirecionamento de assembly no .NET Core.
- Corrigimos um bug em que a mensagem de erro usada durante a tentativa de usar a invocação dinâmica em funções embutidas era ignorada. Agora a mensagem de erro é propagada.
- O F# agora respeita o sinalizador
WarningsNotAsErrors
que pode ser definido em arquivos de projeto. - A condição de tipo quando branches de uma correspondência de padrão não retornam a mesma mensagem de erro foi atualizada para ser mais amigável por Isaac Abraham.
- Um bug de erro interno ao compilar a implementação da interface que não tem uma implementação de método sobrecarregada foi corrigido por Steffen Forkmann.
- Algumas cópias de matriz desnecessárias na fase de léxico do compilador foram removidas por Gauthier Segay.
- As correspondências de padrão incompletas em enumerações do F# agora geram um aviso detalhado que fornece um exemplo de um caso não coberto, contribuição de John Wostenberg.
- `#nowarn "2003" agora é respeitado, contribuição de Matthias Diitrich.
- Um bug em que o consumo de métodos de extensões do C# poderia falhar na resolução de sobrecarga do F# foi corrigido por Steffen Forkmann.
- Um bug de estrutura de dados QueueList foi corrigido por Steffen Forkmann.
- Vários esforços de limpeza de código e otimizações menores foram contribuições de Steffen Forkmann, Eugene Auduchinok e ncave.
Biblioteca Principal do F# 4.5.x
As seguintes adições à Biblioteca Principal do F# estão disponíveis agora:
- Um trabalho significativo foi feito para melhorar os rastreamentos de pilha para expressões de computação
async { }
. Agora você deve ser capaz de ver o código do usuário e os números de linha do usuário em rastreamentos de pilha. Você pode saber mais no RFC desse recurso. - As APIs
FuncConvert.FromFunc
eFuncConvert.FromAction
que o tipoSystem.Func
eSystem.Action
sobrecarrega, para ajudar na interoperação com C#. Você pode saber mais no RFC desse recurso. ValueOption
é um novo tipo disponível, que é o primeiro em um conjunto de recursos futuros basicamente destinado ao melhor desempenho de Padrões Ativos. Você pode saber mais no RFC desse recurso.TryGetValue
agora é um novo membro do tipo de Mapa do F#. Você pode saber mais no RFC desse recurso.- Corrigimos o Alto uso da CPU na primeira invocação de
MailboxProcessor.TryReceive
. - A comparação para
bool
agora usa a comparação genérica rápida, contribuição de Vasily Kirichenko. - O texto de resumo para
Array.allPairs
foi atualizado para estar correto, contribuição de Patrick McDonald
Melhorias de ferramentas do F#
Melhorias significativas nas ferramentas F#, como melhorias de desempenho e algumas novas funcionalidades de editor, foram incluídas nesta versão. Como sempre, com um grande número de contribuições da comunidade de software livre do F#. Aqui estão os destaques:
- Melhoramos o desempenho do IntelliSense para projetos do estilo do SDK do .NET para todas as formas, incluindo as que usam vários destinos.
- Um esforço da comunidade para analisar e melhorar o desempenho do IntelliSense para arquivos muito grandes foi uma contribuição de Vasily Kirichenko, Steffen Forkmann e Gauthier Segay. O IntelliSense em arquivos muito grandes (mais de 10 mil linhas de código) está aproximadamente duas vezes mais rápido agora.
- O aviso para um FSharp.Core desatualizado (independentemente do pacote sendo instalado) não está mais presente em projetos do estilo do SDK do .NET.
- A dica de ferramenta da descrição que exibe a documentação XML para um membro após
.
no IntelliSense não atinge mais o tempo limite após 10 segundos. - Foi corrigido um bug em que não era possível definir pontos de interrupções em argumentos do construtor de objetos.
- Foi corrigido um bug em que um símbolo renomeado seria duplicado quando ele fosse um parâmetro genérico.
- Os modelos do .NET Framework (modelos do F# clássicos) agora consomem o FSharp.Core de um pacote do NuGet, para se alinharem aos modelos do F# do SDK do .NET.
- O preenchimento de chaves automático e transacional agora está disponível para os pares de chaves
()
,[]
,{}
,[||]
e[<>]
. Realizamos esse trabalho em colaboração com Gibran Rosa. - Agora você pode ir para definição com Ctrl + Clique em um símbolo F#. As configurações para esse gesto também serão respeitadas na janela Ferramentas > Opções.
- A interface do usuário de desempenho do IntelliSense foi modificada para permitir a configuração de informações de typecheck obsoletas para vários recursos do IDE. As explicações sobre cada opção agora estão presentes nas dicas de ferramentas das configurações.
- O realce de correspondência de chaves agora realça as chaves corretamente, concluído em colaboração com Vasily Kirichenko.
- Ir para definição agora navega corretamente quando um tipo é definido recursivamente, contribuição de Vasily Kirichenko.
- Um bug em que um namespace importado automaticamente não era aberto quando a parte superior de um arquivo estava vazia foi corrigido por Vasily Kirichenko.
- Um bug em que os especificadores
printf
que continham pontos eram coloridos incorretamente foi corrigido por Vasily Kirichenko. - Um bug em que todas as aberturas eram consideradas não utilizadas dentro de um módulo recursivo foi corrigido por Vasily Kirichenko.
- O desempenho do analisador de Aberturas Não Utilizadas foi melhorado significativamente por Vasily Kirichenko.
- O preenchimento automático para atributos agora sugere apenas as opções que são realmente atributos, contribuição de Vasily Kirichenko.
- Agora dicas de ferramenta da Ajuda da Assinatura são geradas para parâmetros estáticos do Provedor de Tipos no site de chamada do construtor, contribuição de Vasily Kirichenko.
- Um bug em que os tipos de valor usados como unidades de medida eram coloridos como tipos de referência foi corrigido por Vasily Kirichenko.
- Um bug em que a colorização semântica poderia desaparecer para alguns arquivos durante a rolagem foi corrigido por Vasily Kirichenko.
- Agora há uma implementação de CodeLens experimental, contribuição de Victor Peter Rouven Müller. Você pode ativá-la em Opções > Editor de Texto > F# > CodeLens.
- Um bug em que o serviço de compilador do F# omitia incorretamente os nomes de módulo na documentação XML foi corrigido por Sebastian Urban.
- O código que usa
Dictionary
comContainsKey
e as chamadasItem
subsequentes foi alterado para usarTryGetValue
, por Eugene Auduchinok. - Jakob Majoka também contribuiu no processo de consumir uma API diferente para Dicas de Ferramentas.
Melhorias de infraestrutura, empacotamento e software livre
Fizemos os seguintes aprimoramentos para infraestrutura, empacotamento e nossa experiência de contribuição do software livre:
- O compilador do F# distribuído com o Visual Studio não instala mais um singleton na localização do SDK do Compilador do F#. Agora ele está totalmente lado a lado com o Visual Studio, o que significa que as instalações lado a lado do Visual Studio finalmente terão experiências de linguagem e ferramentas do F# realmente lado a lado.
- O pacote do NuGet do FSharp.Core agora está assinado.
- O registro em log do ETW foi adicionado ao compilador e às ferramentas do F#.
- Os arquivos
control.fs
/control.fsi
muito grandes no FSharp.Core foram divididos emasync.fs
/async.fsi
,event.fs
/event.fsi
,eventmodule.fs
/eventmodule.fsi
,mailbox.fs
/mailbox.fsi
eobservable.fs
/observable.fsi
. - Adicionamos versões de estilo do SDK do .NET dos nossos artefatos de teste de estresse de desempenho de projeto.
- Removemos o Newtonsoft.json de nossa base de códigos, e agora você tem um pacote a menos baixado para colaboradores de OSS.
- Agora usamos as versões mais recentes de System.Collections.Immutable e System.Reflection.Metadata.
Melhorias de conformidade e conjunto de ferramentas do C++
Esta versão conta com as seguintes melhorias de conformidade e conjunto de ferramentas do C++:
- Um novo pré-processador baseado em token experimental que está em conformidade com padrões do C++11 (incluindo recursos do pré-processador C99), habilitado com a opção /experimental:preprocessor. Isso é controlado com a macro
_MSVC_TRADITIONAL
, que é definida como 1 ao usar o pré-processador tradicional e 0 ao usar o novo pré-processador experimental em conformidade com os padrões. - O Prompt de Comando do Desenvolvedor do Visual Studio é compatível com a habilitação de runtimes mitigados de variante 1 do Visual C++ Spectre (
-vcvars_spectre_libs = spectre
). Mais informações sobre mitigações do Spectre estão disponíveis no Blog da Equipe do Visual C++. - Duas novas adições ao Otimizador SSA voltadas para a geração de código C++ moderna: eliminação de armazenamento com redundância e dobra de branches com redundância.
- Desempenho de E/S mapeado de memória otimizada no vinculador para reduzir os tempos de vinculação.
Desenvolvimento multiplataforma do C++
Adicionamos, melhoramos e adicionamos o seguinte ao desenvolvimento multiplataforma do C++ para essa versão:
- Adição do modelo Adicionar>Novo Item para gerar um arquivo de formato .clang seguindo a convenção de codificação especificada para ClangFormat em Ferramentas>Opções. Se a convenção do Visual Studio for selecionada, o arquivo gerado tentará corresponder à configuração de formatação atual do Visual Studio do usuário em Ferramentas > Opções.
- Atualizada a versão de clang-format.exe fornecido para 6.0.0.
- Modelos para simplificar a adição de configurações a CppProperties.json.
- Adicionados modelos para simplificar a adição de configurações para CMakeSettings.json (Figura 7).
Produtividade do C++
Fizemos os seguintes aprimoramentos e melhorias na produtividade do C++:
- Dicas de ferramenta Informações Rápidas do C++ em macros agora mostram no que eles se expandem, em vez de apenas sua definição. Isso é particularmente útil para macros complexas que referenciam outras macros, pois isso esclarece pelo que o identificador de macro é substituído pelo pré-processador.
- Foi adicionada uma nova lâmpada de correção rápida para converter macros básicas para constexpr como uma nova ferramenta para modernizar o código.
- O IntelliSense para modelos fornece a você mais detalhes sobre os argumentos de modelo para aproveitar ao máximo o IntelliSense no corpo do modelo (Figura 8).
- Estamos trabalhando para atualizar nossa experiência de análise de código. Agora você pode habilitar as novas funcionalidades em andamento em Ferramentas>Opções>Editor de Texto>C++>Experimental>Análise de Código. A análise de código pode ser executada em segundo plano quando arquivos são abertos ou salvos, e os resultados são exibidos na lista de erros e como linhas onduladas verdes no editor (Figura 9).
Melhorias na depuração do C++
Fizemos as seguintes melhorias de depuração:
- Apenas Meu Código agora permite que você percorra o código de bibliotecas C++ do sistema ou de terceiros além de recolher essas chamadas na janela de pilha de chamadas. Você pode controlar esse comportamento para todas as bibliotecas C++ quando seu código é compilado com /JMC e os caminhos de bibliotecas que não são de usuários são especificados em um arquivo .natjmc. Se a biblioteca do sistema chamar o código do usuário, quando você entrar, o depurador ignorará todo o código de sistema e parará na primeira linha de retorno de chamada do código de usuário (Figura 10).
- Os pontos de interrupção de dados agora podem ser definidos dentro das janelas Inspecionar, Quickwatch, Autos e Locais, permitindo que você interrompa quando um valor armazenado na memória mudar com apenas alguns breves cliques.
- O Link de Origem permite que você insira informações sobre um executável ou o código-fonte original da biblioteca no PDB durante a compilação.
- Durante a depuração, a janela do console agora permanece aberta por padrão quando o programa termina a execução (semelhante à execução do programa sem o depurador). Esse comportamento pode ser alternado de volta para fechar o console automaticamente em Ferramentas > Opções > Depuração > Geral.
Melhorias de JavaScript e TypeScript
TypeScript 3.0
O Visual Studio 2017 versão 15.8 agora inclui o TypeScript 3.0 por padrão. Para obter mais detalhes sobre esta versão, confira o comunicado de versão do TypeScript 3.0.
Suporte aprimorado para o Vue.js
O suporte para a biblioteca Vue.js foi aprimorado e, especificamente, o suporte para arquivos .vue, também conhecidos como "componentes de arquivo único". Isso fornece melhorias ao editar os blocos de script dentro de arquivos .vue, incluindo o suporte para blocos de script criados em TypeScript por meio do atributo lang="ts"
no elemento de script. (Observação: um processo de build que usa o WebPack ou programa semelhante precisa ser usado para converter os arquivos .vue nos arquivos HTML e JS necessários em runtime. Confira a página Componentes de arquivo único para obter mais detalhes).
Se a carga de trabalho do Node.js estiver instalada, haverá modelos de "Aplicativo Web Básicos Vue.js" nos caminhos "JavaScript/Node.js" ou "TypeScript/Node.js" na caixa de diálogo Novo Projeto. Veja a seguir um exemplo de edição de código TypeScript dentro de um bloco de script em um arquivo .vue (Figura 11).
Melhorias no ESLint
Reimplementamos o suporte para o ESLint nesta versão. O ESLint traz os seguintes aprimoramentos:
- Em vez de apenas fazer linting dos arquivos salvos, o Visual Studio agora também fará linting de arquivos JavaScript no momento da edição.
- Os resultados podem ser relatados para todos os arquivos JS do projeto, não apenas para os arquivos abertos; se houver partes do projeto que você não deseja submeter ao linting, um arquivo .eslintignore poderá ser usado para especificar diretórios e arquivos que devem ser ignorados.
- O ESLint foi atualizado para usar o ESLint 4 por padrão, mas se o projeto tiver uma instalação local do ESLint, ele usará essa versão em vez daquela.
O ESLint pode ser desabilitado globalmente no Visual Studio desmarcando a opção Habilitar ESLint em **Ferramentas > Opções > Editor de Texto > JavaScript/TypeScript > Linting ** (Figura 12).
Melhorias na opção Abrir Pasta para o Node.js
Há várias melhorias no trabalho com o JavaScript e o TypeScript no cenário da opção Abrir Pasta quando a "carga de trabalho Node.js" é instalada. Por exemplo, gerenciamento de pacotes NPM, build do TypeScript, inicialização e depuração com o Node.exe, execução de scripts NPM e execução de testes de unidade.
Confira Desenvolver código JavaScript e TypeScript no Visual Studio sem soluções nem projetos para obter mais informações.
Melhorias de desempenho do editor
Em versões anteriores, todas as operações de serviço de linguagem do JavaScript e do TypeScript eram atendidas por um único processo do Node.js. Isso podia causar atrasos no editor se os comandos que afetam a digitação do usuário (como a formatação automática após uma nova linha) eram enviados enquanto uma operação potencialmente demorada já estivesse em processo (por exemplo, a análise de código em busca de erros). Para atenuar isso, um processo separado agora é usado para as operações que mais afetam a edição. Esse processo é significativamente mais leve em recursos do sistema do que no processo de serviço de linguagem existente. No entanto, caso deseje desabilitar o novo processo, marque a caixa Desabilitar processo de sintaxe dedicado em Ferramentas > Opções > Editor de Texto > JavaScript/TypeScript >Serviço de Linguagem.
Ferramentas da Web do Visual Studio
O Gerenciador de Bibliotecas é um novo recurso incluído no Visual Studio 2017. Ele ajuda a gerenciar bibliotecas do lado do cliente em seus projetos da Web.
Ferramentas de Contêiner
Adicionamos uma nova experiência de contêiner do Docker de projeto único para projetos Web do ASP.NET Core. Isso complementa o conjunto de ferramentas de contêiner com base em Docker Compose existentes e fornece uma maneira mais simples e fácil de criar, depurar e compilar contêineres do Docker diretamente do Visual Studio.
Você pode adicionar o suporte ao Docker ao criar o projeto (Figura 13):
Se preferir, habilite o suporte ao Docker em um projeto existente por meio do menu de contexto do projeto no Gerenciador de Soluções (Figura 14). Depois de fazer isso, o Visual Studio cria um único Dockerfile no projeto. Você tem a opção de escolher Windows ou Linux.
O Visual Studio também adiciona um perfil de inicialização do depurador (Figura 15) ao Docker, de modo que o projeto possa ser depurado durante a execução dentro de um contêiner.
Se você tiver uma solução com vários projetos do Docker, por padrão, apenas um contêiner será executado ao escolher iniciar a solução. Caso deseje executar vários contêineres simultaneamente, no Gerenciador de Soluções, clique com o botão direito do mouse na solução e selecione Definir Projetos de Inicialização, Vários projetos de inicialização e, em seguida, defina a lista suspensa Ação como Iniciar ou Iniciar sem depuração para todos os projetos que deseja executar.
Depois que seu projeto em contêineres estiver em execução da maneira desejada, é possível clicar com o botão direito do mouse no projeto e selecionar Criar a Imagem do Docker para criar uma imagem localmente, quando estiver pronto para enviar por push ao Registro de Contêiner do Azure ou ao DockerHub.
Adicione também a funcionalidade existente baseada no Docker Compose a um projeto Web do ASP.NET Core por meio da nova opção Suporte de Orquestrador de Contêineres(Figura 16). Clique com o botão direito do mouse no projeto Web do ASP.NET Core no Gerenciador de Soluções, selecione Adicionar > Suporte de Orquestrador de Contêineres e, em seguida, selecione Docker Compose no menu suspenso.
Melhorias de publicação
Esta versão conta com as seguintes melhorias de publicação:
- Ao publicar um contêiner do Docker em um Registro de contêiner, agora você pode personalizar a marca para a imagem. Você pode adicionar manualmente uma marca (o padrão é "mais recente") ou usar uma marca gerada automaticamente para garantir que cada marca seja exclusiva.
- Ao criar um Serviço de Aplicativo do Azure, configure também o Application Insights para coletar a telemetria automaticamente. Se você escolher uma região que também tem o Application Insights, ele será habilitado por padrão. Se você escolher uma região que ainda não contém o Application Insights, poderá especificar manualmente uma região diferente para seu recurso do Application Insights na lista suspensa.
- Ao publicar projetos do Azure Functions você pode optar por publicar usando o novo recurso Run-From-Zip.
Ferramentas do Visual Studio para Xamarin
Esta versão contém as seguintes atualizações para Xamarin:
- Adicionamos o suporte para Xcode 9.4.
- Quando você cria um novo projeto do Xamarin.Forms, a opção de compartilhamento de código padrão agora é .NET Standard. A opção de projeto compartilhado ainda está disponível.
- Adicionamos melhorias de build incrementais do Android. O Xamarin.Android usa arquivos gerados no diretório de saída intermediário para alcançar builds incrementais que são mais rápidos que builds completos. Anteriormente, se você alterasse a estrutura de destino do seu projeto, isso invalidaria os arquivos e resultaria em um build completo na próxima execução. Nessa versão, agora preservamos os arquivos em pastas por estrutura para que você possa alternar entre diferentes estruturas de destino e ainda se beneficiar dos builds incrementais. A limpeza do projeto permite que você recupere o espaço em disco usado pelos arquivos preservados.
- Adicionamos suporte mínimo para projetos de associação do Xamarin.Mac no Visual Studio 2017. Isso permite que o Visual Studio carregue e reconheça os projetos de associação do Xamarin.Mac como compatíveis. Você também pode criar projetos de associação do Xamarin.Mac. No entanto, o processo de build é executado localmente sem usar a cadeia de ferramentas nativa do Mac, portanto os assemblies IL gerados não podem ser usados para a execução ou a depuração em aplicativos.
Suporte ao Android Emulator do Hyper-V
Esta versão adiciona suporte ao Google Android Emulator que é compatível com o Hyper-V durante a execução na Atualização de abril de 2018 do Windows 10 (Figura 17). Isso permite que você use o Android Emulator do Google lado a lado com outras tecnologias baseadas em Hyper-V, incluindo máquinas virtuais Hyper-V, conjunto de ferramentas do Docker, emulador HoloLens e muito mais. Os desenvolvedores de aplicativos móveis que usam o Hyper-V agora têm acesso a um Android Emulator rápido que sempre é compatível com as APIs do Android mais recentes, funciona com o Google Play Services e é compatível com todos os recursos do Android Emulator, incluindo a câmera, a geolocalização e a Inicialização Rápida.
Xamarin.Android Designer
Fizemos melhorias significativas na experiência do designer para Xamarin.Android. Os destaques incluem:
- Foi incluído um editor de modo divisão que permite que você crie, edite e visualize seus layouts ao mesmo tempo (Figura 18).
- Experiência do IntelliSense e confiabilidade dos controles personalizados melhoradas.
- Suporte a dados de amostra de valores fornecidos pelo sistema.
Pré-visualizador do Xamarin.Forms
O Pré-visualizador do Xamarin.Forms agora é compatível com a caixa de ferramentas ao usar o Xamarin.Forms versão 3.1.0.583944 ou superior. Os controles do Xamarin.Forms serão exibidos na caixa de ferramentas para que sejam mais detectáveis para os iniciantes no conjunto de ferramentas. Você também pode arrastar e soltar um controle no editor de código XAML para adicionar o controle à página. Agora, o Visualizador de Xamarin.Forms faz parte do editor XAML. Você pode abrir e fechá-lo com o ícone de expansão na borda do painel do editor.
Python
Essa versão adiciona as seguintes melhorias para desenvolvedores de Python:
- O Python IntelliSense agora usa definições typeshed para fornecer resultados mais completos para bibliotecas em que os preenchimentos automáticos não podem ser inferidos pela análise estática.
- O depurador experimental, anunciado pela primeira vez nas versões prévias 15.7, agora é o mecanismo de depuração padrão usado para o Python, fornecendo a depuração mais rápida e confiável para o código Python.
- Adicionamos suporte para Python 3.7, incluindo correções para habilitar os recursos de depuração de anexação de depuração, criação de perfil e modo misto (em qualquer linguagem).
- Para obter mais informações sobre as funcionalidades acima, veja nossa postagem no blog sobre o Python no Visual Studio 2017 versão 15.8.
Migrar as configurações do Azure Functions local
A caixa de diálogo "Configurações de Aplicativo Gerenciado" disponível na página de resumo de publicação agora exibe os valores do arquivo local.settings.json e permite que você migre valores para o aplicativo remoto do Azure Functions hospedado no Azure.
Serviços Conectados
Agora você pode configurar a entrega contínua para funções do Azure diretamente do Visual Studio 2017 para soluções com projetos do Azure Functions.
Melhoria do Gerenciador de Testes
Agora o Gerenciador de testes exibe um painel de resumo de status de teste mais informativo (painel inferior do gerenciador de testes) quando um dos agrupamentos na exibição da hierarquia é selecionado. Agora o painel exibe quantos testes falharam, passaram ou não foram executados naquele agrupamento.
Novos recursos de extensibilidade
Language Server Protocol
Agora o Visual Studio tem compatibilidade nativa para o Language Server Protocol. Os autores de extensão podem criar extensões que se comunicam com servidores de linguagem existentes para adicionar suporte a linguagens adicionais ao Visual Studio. Os usuários de extensão podem instalar essas extensões para começar a usar sua linguagem favorita dentro do Visual Studio, como Rust.
Modelo AsyncPackage
Os autores de extensão agora podem usar modelos de item para criar AsyncPackages para otimizar o desempenho da sua extensão. Leia mais sobre AsyncPackages.
Pacotes de extensão
Compartilhe com facilidade seu conjunto de extensões favorito ou configure uma nova instalação do Visual Studio com todas as suas extensões usando o pacote de extensões. Os pacotes de extensão permitem que você crie uma lista de extensões, empacote-as em uma extensão e as use rapidamente para instalar essas extensões em massa.
Publicação de extensão de linha de comando
Publique suas extensões no Visual Studio Marketplace usando a linha de comando.
SDK do .NET Core 2.1.400
O Visual Studio 2017 versão 15.8 inclui o SDK 2.1.400 do .NET Core. Os novos recursos de SDK incluem:
- Modelos do NUnit adicionados
- Adicionado suporte para ferramentas globais assinadas
- Texto de ajuda aprimorado para maior clareza
32 problemas foram encerrados na CLI do .NET Core.
20 problemas foram encerrados no SDK do .NET Core.
Controle do código-fonte
Para projetos do .NET Core, os arquivos adicionados diretamente ao projeto por meio do Explorador de Arquivos agora mostrarão os ícones de acompanhamento do Git e do TFS corretos no Gerenciador de Soluções em precisar recarregar a solução.
Extensão do Adaptador de Teste do .NET
O Adaptador de Teste do .NET tem a seguinte substituição e alteração da falha:
- Alteração da falha: todos os projetos de teste devem incluir a referência ao NuGet do adaptador de teste do .NET no csproj. Se não incluírem, a saída desse teste aparecerá no projeto se a descoberta por uma extensão do adaptador de teste for iniciada após um build ou se o usuário tentar executar os testes selecionados:
- O projeto de teste {<Caminho completo do projeto de teste>} não faz referência a nenhum adaptador NuGet do .NET. A execução ou a detecção de testes pode não funcionar para esse projeto. É recomendável referenciar os adaptadores de teste NuGet em cada projeto de teste na solução.
- As estruturas de teste do .NET têm lançado seus adaptadores em pacotes do NuGet e se distanciando de extensões do Visual Studio. O suporte para adaptadores de teste do .NET fornecidos por meio de extensões foi preterido, mas ainda é compatível. Isso significa que duas novas opções estão disponíveis em Ferramentas > Opções > Teste.
- A primeira opção permite que o Visual Studio use apenas os adaptadores de teste que encontra na pasta do assembly de teste (populada pela referência do NuGet do adaptador de teste) ou conforme especificado no arquivo runsettings.
- A segunda opção permite que o Visual Studio faça o "fallback" para o comportamento antigo e pesquise extensões de adaptador de teste para projetos que não têm uma referência do NuGet de adaptador de teste. As duas opções são selecionadas por padrão, portanto, nenhum comportamento padrão será alterado nesta versão.
- Observação: os adaptadores de teste não .NET não são afetados com essa alteração.
Suporte a segredos do .NET Framework do ASP.NET
Para projetos do .NET Framework no ASP.NET direcionados ao .NET Framework 4.7.1 ou superior, agora você pode abrir e armazenar os segredos que não deseja exibir no código-fonte em usersecrets.xml clicando com o botão direito do mouse no projeto e selecionando "Segredos de Usuário Gerenciados".
Melhorar o desempenho do .NET Framework do ASP.NET
Se o pacote referenciado do Compilador do .NET estiver desatualizado em um projeto do .NET Framework do ASP.NET, o Visual Studio solicitará que você atualize o pacote quando você abrir o projeto a fim de melhorar o desempenho de build.
.NET Framework 4.7.2
Agora o Visual Studio 2017 versão 15.8 oferece as ferramentas de desenvolvimento do .NET Framework 4.7.2 para todas as plataformas compatíveis com o runtime 4.7.2 incluído. O .NET Framework 4.7.2 oferece diversos novos recursos e melhorias, bem como várias correções de confiabilidade, estabilidade, segurança e desempenho.
Você pode encontrar mais detalhes sobre o .NET Framework 4.7.2 nesses artigos:
- Blog do .NET Framework 4.7.2 RTM
- Notas de versão do .NET Framework 4.7.2
- Problemas conhecidos no .NET Framework 4.7.2
- Compatibilidade do aplicativo no .NET Framework 4.7.2
- Alterações na API
Atrasar o carregamento de pacote
O Visual Studio agora atrasa o carregamento de pacotes assíncronos que estão configurados para carregamento automático até depois do IDE do Visual Studio ser totalmente iniciado e a solução ser carregada. Essa alteração não afeta pacotes carregados automaticamente de forma síncrona. Os usuários podem examinar a Central de Status de Tarefas no canto inferior esquerdo da barra de status para monitorar o progresso. Os autores de extensão que criam asyncpackages devem testar sua extensão. Para obter mais informações, consulte Melhorando a resposta de cenários críticos atualizando o comportamento de carregamento automático para extensões.
---
Avisos do Assistente de Segurança do Visual Studio 2017 versão 15.8
Versão de manutenção do Visual Studio 2017 versão 15.8.7 — lançada em 10 de outubro de 2018
CVE-2018-8292 Vulnerabilidade da divulgação de informações confidenciais do .NET Core
Existe uma vulnerabilidade de bypass de recurso de segurança no .NET Core quando as informações de autenticação HTTP são expostas acidentalmente em uma solicitação de saída que encontra um redirecionamento HTTP. Um invasor que explorasse com êxito essa vulnerabilidade poderia usar as informações para comprometer ainda mais o aplicativo Web. A atualização de segurança resolve a vulnerabilidade corrigindo como os aplicativos .NET Core manipulam os redirecionamentos de HTTP.
Versão de manutenção do Visual Studio 2017 versão 15.8.4 — lançada em 11 de setembro de 2018
CVE-2018-8409 Vulnerabilidade de Ataque de Negação de Serviço do .NET Core
Há uma vulnerabilidade de negação de serviço no .NET Core 2.1 quando System.IO.Pipelines manipula solicitações incorretamente. Um invasor que explorasse com êxito essa vulnerabilidade poderia causar uma negação de serviço em relação a um aplicativo que utiliza o System.IO.Pipelines. A vulnerabilidade pode ser explorada remotamente, sem autenticação. Um invasor não autenticado remoto pode explorar essa vulnerabilidade fornecendo solicitações especialmente criadas para o aplicativo.
CVE-2018-8409 Vulnerabilidade de Ataque de Negação de Serviço do ASP.NET Core
Há uma vulnerabilidade de negação de serviço no ASP.NET Core 2.1 que manipula solicitações Web incorretamente. Um invasor que explorasse com êxito essa vulnerabilidade poderia causar uma negação de serviço em relação a um aplicativo Web do ASP.NET Core. A vulnerabilidade pode ser explorada remotamente, sem autenticação. Um invasor não autenticado remoto pode explorar essa vulnerabilidade fornecendo solicitações especialmente criadas para o aplicativo do ASP.NET Core.
Visual Studio 2017 versão 15.8 — lançada em 14 de agosto de 2018
CVE-2018-0952 Vulnerabilidade de Elevação de Privilégio do Coletor Padrão do Hub de Diagnóstico
Há uma vulnerabilidade de elevação de privilégio em um serviço do Visual Studio que pode levar a privilégios do sistema por um usuário não administrador durante a gravação de arquivos. Um invasor que aproveitou essa vulnerabilidade pôde gravar arquivos como sistema tendo apenas o acesso no nível de usuário. Esta atualização de segurança resolve esse problema pela representação do usuário atual para validar o acesso ao local do arquivo.
Visual Studio 2017 versão 15.8 Versão prévia 4 -- lançado em 10 de julho de 2018
CVE-2018-8172 Vulnerabilidade de execução de código remoto do Visual Studio
Uma vulnerabilidade de execução de código remoto que pode levar à exploração do computador de um usuário, abrindo um arquivo de recurso ou projeto especialmente criado. A atualização de segurança resolve a vulnerabilidade corrigindo o modo como o Visual Studio verifica a marcação de origem de um arquivo.
CVE-2018-8260 Vulnerabilidade de execução de código remoto do .NET Framework
Há uma vulnerabilidade de execução de código remoto no software do .NET que pode levar à exploração do computador de um usuário, permitindo que os invasores executem um código arbitrário no contexto do usuário atual. A atualização de segurança resolve a vulnerabilidade corrigindo o modo como o .NET verifica a marcação de origem de um arquivo.
CVE-2018-8232 Vulnerabilidade de falsificação do .NET Microsoft Macro Assembler
Vulnerabilidade para falsificação relacionada a validação de código incorreta pelo Microsoft Macro Assembler. A atualização de segurança resolve a vulnerabilidade, garantindo que o Microsoft Macro Assembler valide a lógica de código adequadamente.
CVE-2018-8171 Vulnerabilidade de bypass da funcionalidade de segurança do ASP.NET Core
Uma vulnerabilidade de bypass de recurso de segurança do ASP.NET Core existe quando o número de tentativas de logon incorretas não é validado. Isso pode levar a um invasor a tentar um número infinito de tentativas de autenticação. A atualização resolve a vulnerabilidade, validando o número de tentativas de logon incorretas.
Visual Studio 2017 versão 15.8 Versão prévia 3 -- lançado em 26 de junho de 2018
CVE-2018-11235 Consultoria de Segurança da Microsoft para vulnerabilidade de segurança do Git
Corrigimos uma vulnerabilidade de segurança no Git que foi divulgada pela comunidade do Git. A vulnerabilidade pode levar à execução de código arbitrário quando um usuário clona um repositório mal-intencionado.
Visual Studio 2017 versão 15.8 Versão prévia 1 -- lançado em 8 de maio de 2018
CVE-2018-0765 Aviso de segurança da Microsoft sobre a vulnerabilidade de ataque de negação de serviço do .NET Core
- A Microsoft está publicando este comunicado de segurança para fornecer informações sobre uma vulnerabilidade no .NET Core na versão 2.0 do .NET nativo. Esse comunicado também fornece orientação sobre o que os desenvolvedores podem fazer para atualizar seus aplicativos para remover essa vulnerabilidade.
- A Microsoft está ciente de uma vulnerabilidade de negação de serviço que ocorre quando o .NET Framework e o .NET Core processam documentos XML incorretamente. Um invasor que explorasse com êxito essa vulnerabilidade poderia causar uma negação de serviço em relação a um aplicativo nativo do .NET, .NET Framework ou .NET Core.
- A atualização resolve a vulnerabilidade corrigindo como o .NET Framework, .NET Core e aplicativos nativos do .NET manipulam o processamento de documentos XML.
- É recomendável atualizar para o ASP.NET Core 2.0.8. se o aplicativo for do ASP.NET Core.
Visual Studio 2017 versão 15.8.1
lançado em 17 de agosto de 2018
Principais problemas corrigidos no 15.8.1
Estes são os problemas resolvidos no 15.8.1:
- Correção de um problema em que o Visual Studio fecha inesperadamente quando uma janela do navegador é fechada durante a depuração de um projeto Web.
Visual Studio 2017 versão 15.8.2
lançado em 28 de agosto de 2018
Principais problemas corrigidos no 15.8.2
Estes são os problemas relatados por clientes e solucionados na 15.8.2:
- Item de menu de contexto Publicar único arquivo não está presente.
- As operações de rede do Git não estão funcionando: não é possível gerar o git-askpass.exe.
- Falha de carregamento do "Pacote do Editor de Recursos do Visual C++".
- Visualização de Transformação mostra erro.
- Não é possível digitar a chave de fechamento.
- Referência de objeto não definida para uma instância de um objeto durante a implantação de projeto do Service Fabric após a atualização 15.8.0.
- Erro de instalação "O formato do caminho fornecido não é compatível".
- Falha na tarefa ExpandPriContent. O caminho contém caracteres inválidos.
- Erro do instalador "Não foi possível criar a instância do tipo System.Collections.Genertic.Iset'1[Signer]".
- Falha de implantação do Service fabric em 15.8.0.
- Não é possível criar o pacote do aplicativo para Windows Store.
- Geração de código incorreta para recursos fortemente tipados.
- Associação de teclado para layout italiano.
- IntelliSense inválido Nº 9999.
- Ao trabalhar em um projeto do Unity, e o Unity reescreve vários arquivos do projeto, as Ferramentas do Visual Studio para Unity recarregam automaticamente a solução.
- Agora, o cliente receberá uma caixa de diálogo para fechar os aplicativos do Office se eles estiverem bloqueando a instalação do Visual Studio e causando uma falha de 1303.
Visual Studio 2017 versão 15.8.3
lançado em 6 de setembro de 2018
Principais problemas corrigidos no 15.8.3
Estes são os problemas relatados por clientes e solucionados na 15.8.3:
- O Visual Studio 2017 versão 15.8.2 continha um build de pré-lançamento do SDK do .NET Core 2.1.401 que é incompatível com o Visual Studio. Nós corrigimos esse problema com o Visual Studio 2017 versão 15.8.3.
- Falha na criação de caso de teste do VSCppUnit.
- IntelliSense de Python que não está funcionando no Python 2.7.
- Designer XAML, fazendo com que o Visual Studio feche inesperadamente.
Visual Studio 2017 versão 15.8.4
lançado em 11 de setembro de 2018
Principais problemas corrigidos na versão 15.8.4
Estes são os problemas relatados por clientes e solucionados na versão 15.8.4:
- A função constexpr com o parâmetro (void) explícito causa falhas na versão MSVC 15.8.0.
- TypeScriptLspCodeActionProvider encontrou um erro e foi desabilitado.
- O pacote 'Componentes Compartilhados da Web' não foi carregado corretamente.
- Editar o CSS com o Link do Navegador habilitado poderá causar falhas no Visual Studio.
- Falha de implantação do Service Fabric na versão 15.8.0.
- Erro incorreto do ponteiro do constexpr para membros com o VS2017 15.8.
- Constexpr não oferece suporte a __declspec(dllimport) no VS2017 15.8.
- A diferença do C++ VS 2017 Atualização 8 no ponteiro da função de membros entre os modos C++14 e C++17 resulta em falhas.
- TestExplorer bloqueando a interface do usuário na compilação mais recente.
- [WebKit] "Símbolo já definido" para a definição de membro do modelo estático (regressão).
- Erro interno do compilador de VS 15.8.0.
- Erro interno do compilador na função constexpr.
- A janela Gerenciador de Testes permanece em branco com o Expresso.
- O Visual Studio 2017 falha ao abrir em um computador habilitado por FIPS.
- Erro interno do compilador de VS2017 15.8 'msc1.cpp', linha 1518 ao avaliar a função constexpr simples.
- Erro fatal C1001 após atualização do VS 15.8.0.
- Migração para o VS2017 15.8: erro interno do compilador ao usar funções constexpr como parâmetros de modelo.
- Erro interno do compilador ao compilar uma função de modelo com um constexpr em VC++ 15.8.0.
- Falha causada pelo código gerado pelo compilador do VC 15.8.1.
Avisos de Consultoria de Segurança
- CVE-2018-8409 Vulnerabilidade de Ataque de Negação de Serviço do .NET Core
- CVE-2018-8409 Vulnerabilidade de Ataque de Negação de Serviço do ASP.NET Core
Visual Studio 2017 versão 15.8.5
lançado em 20 de setembro de 2018
Resumo das Novidades na 15.8.5
- Agora as Ferramentas do Visual Studio para Xamarin dão suporte a Xcode 10.
Principais problemas corrigidos na versão 15.8.5
Estes são os problemas relatados por clientes e solucionados na versão 15.8.5:
- A dica de ferramenta do depurador não expande na sessão de depuração do Xamarin.iOS.
- O depurador não deixará que eu saia do ponto de execução (Android).
- Após atualizar para a versão 15.8.1, a dica de dados não é exibida ao depurar.
- A dica de dados do depurador não expande [Editor].
- Exceção:MSB0001: Erro interno do MSBuild: já registrado para tempo de build.
- Caminho incorreto para o recurso no manifesto de ClickOnce após atualizar para VS 15.8.1.
- Erro de manifesto do ClickOnce na versão 15.8.
- A publicação do ClickOnce não tem determinadas referências.
- ClickOnce: arquivo de linguagem copiado para o local errado.
- Referência ausente na pasta de publicação do ClickOnce.
- Compilar projetos F# de estilo de SDK que não seja .NET resulta em um erro interno do MSBuild, a menos que o paralelismo do MSBuild esteja definido como 1.
- A imagem nativa do F# não é gerada no Visual Studio.
- O F# implanta o binário FSharp.Core 4.5.0.0 no local 4.4.3.0.
Detalhes das novidades na versão 15.8.5
Ferramentas do Visual Studio para Xamarin
Agora as Ferramentas do Visual Studio para Xamarin dão suporte a Xcode 10, o que permite criar e depurar aplicativos para iOS 12, tvOS 12 e watchOS 5. Consulte como se preparar para o iOS 12 e nossa Introdução ao iOS 12 para obter mais detalhes sobre os novos recursos disponíveis.
Visual Studio 2017 versão 15.8.6
lançado em 02 de outubro de 2018
Resumo das Novidades na 15.8.6
- A versão mais recente do SDK do Windows 10 está disponível.
Principais problemas corrigidos na versão 15.8.6
Estes são os problemas relatados por clientes e solucionados na 15.8.6:
- Os pacotes do NuGet para o IntelliSense são desfeitos.
- O Visual Studio fecha depois de abrir o sln.
- O editor de XML de App.Config ainda trava em 15.8.4.
Detalhes das novidades na versão 15.8.6
O mais recente SDK do Windows 10 para desenvolvedores da Plataforma Universal do Windows
O SDK do Windows 10 (build 17763) mais recente está agora disponível como um componente opcional para a carga de trabalho de desenvolvimento da Plataforma Universal do Windows. Marque a caixa de seleção Windows 10 SDK (10.0.17763.0) para adicionar esse SDK à carga de trabalho.
Visual Studio 2017 versão 15.8.7
lançado em 10 de outubro de 2018
Novidades na 15.8.7
Azure DevOps
O Visual Studio Team Services agora é o Azure DevOps. Você verá essa nova identidade visual no Team Explorer e nas referências no Visual Studio.
Avisos de Consultoria de Segurança
CVE-2018-8292 Vulnerabilidade da divulgação de informações confidenciais do .NET Core
Visual Studio 2017 versão 15.8.8
lançado em 24 de outubro de 2018
Principais problemas corrigidos na versão 15.8.8
Estes são os problemas relatados por clientes solucionados na 15.8.8:
- /DEBUG:FASTLINK sem informações de depuração para tipos STL incluídos por PCH.
- Geração de código inválido no compilador RTW 15.8.
- Corrupção de heap no desenrolamento de pilha ao fazer o inlining da função.
- O vinculador consome 6 GB de memória para o caso de teste específico.
Visual Studio 2017 versão 15.8.9
lançado em 2 de novembro de 2018
Principais problemas corrigidos na versão 15.8.9
Estes são os problemas relatados por clientes solucionados na versão 15.8.9:
- Adicionado suporte ao Xcode 10.1 nas Ferramentas do Visual Studio para Xamarin.
- Atualizado o modelo do Xamarin.Forms para o Xamarin.Forms 3.3.0.
- A atualização 15.8.6 divide os projetos do instalador.
- Erro interno do compilador no VS15.8 msc1.cpp, linha 1518.
- Projetos do instalador do Microsoft Visual Studio 2017 0.8.8 e VS 15.8.6.
- SFINAE falha ao detectar função sobrecarregada correspondente na versão prévia do VS 3 15.9.0.
- Designer XAML falha ao fechar Visual Studio.
Problemas conhecidos
Veja todos os problemas atuais conhecidos e as soluções alternativas disponíveis no Visual Studio 2017 versão 15.8.
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 de versão do Visual Studio 2017
Para saber mais sobre as versões anteriores do Visual Studio 2017, confira a página Histórico de Notas de Versão do Visual Studio 2017.