Visual Studio Icon Notas de versão do Visual Studio 2017 versão 15.8Visual Studio 2017 version 15.8 Release Notes


| Comunidade de Desenvolvedores | Requisitos de Sistema | Compatibilidade | Código Distribuível | Termos de Licença | Blogs | Problemas Conhecidos || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


Observação

Se você estiver acessando esta página em uma versão de idioma que não seja o inglês e quiser ver o conteúdo mais atualizado, visite a página de Notas de Versão em inglês.If you are accessing this page from a non-English language version, and want to see the most up-to-date content, please visit this Release Notes page in English. Você pode alterar o idioma desta página clicando no ícone de globo no rodapé de página e selecionando o idioma desejado.You can change the language of this page by clicking the globe icon in the page footer and selecting your desired language.


Clique no botão para baixar a versão mais recente do Visual Studio 2017.Click a button to download the latest version of Visual Studio 2017. Para conferir instruções sobre a instalação e a atualização do Visual Studio 2017, consulte Atualizar o Visual Studio 2017 para a versão mais recente.For instructions on installing and updating Visual Studio 2017, see Update Visual Studio 2017 to the most recent release. Além disso, consulte as instruções em como instalar offline.Also, see instructions on how to install offline.

Visite a página visualstudio.com/downloads para baixar outros produtos do Visual Studio de 2017.Visit the visualstudio.com/downloads page to download other Visual Studio 2017 products.


Novidades na 15.8What's New in 15.8

O Blog do Visual Studio é a fonte oficial de insights do produto da equipe de engenharia do Visual Studio.The Visual Studio Blog is the official source of product insight from the Visual Studio Engineering Team. É possível encontrar informações detalhadas sobre as versões do Visual Studio 2017 15.8 nas seguintes postagens:You can find in-depth information about Visual Studio 2017 version 15.8 releases in the following posts:

Versões do Visual Studio 2017 15.8Visual Studio 2017 version 15.8 Releases

Importante

Avisos da Consultoria de Segurança do Visual Studio 2017 versão 15.8Visual Studio 2017 version 15.8 Security Advisory Notices

Resumo dos novos recursos importantes na 15.8Summary of Notable New Features in 15.8

Principais problemas corrigidos na 15.8Top Issues Fixed in 15.8

Estes são os problemas relatados por clientes e solucionados na 15.8:These are the customer-reported issues addressed in 15.8:

Confira todos os problemas relatados pelo cliente corrigidos no Visual Studio 2017 versão 15.8.See all customer-reported issues fixed in Visual Studio 2017 version 15.8.

The Developer Community Portal


Detalhes das novidades na 15.8Details of What's New in 15.8

Release Notes Icon Visual Studio 2017 versão 15.8.0Visual Studio 2017 version 15.8.0

lançado em 14 de agosto de 2018released on August 14, 2018

Novas funcionalidades na 15.8New Features in 15.8

InstalarInstall

Agora você tem a opção de baixar todos os arquivos de instalação antes de iniciar a instalação.You now have the option to download all installation files before starting your installation.

  • Para usar essa nova opção, selecione a opção "Baixar tudo, depois instalar" no instalador (Figura 1).To use this new option, select the "Download all, then install" option in the installer (Figure 1). Sugerimos esta opção caso você tenha uma conexão de Internet mais lenta.We suggest this option if you have a slower internet connection.
  • A opção padrão permanece "Instalar durante o download", que baixa e instala em paralelo.The default option remains "Install while downloading", which downloads and installs in parallel.
Download Otion
(Figura 1) Opção de download(Figure 1) Download Option

DesempenhoPerformance

Esta versão conta com as seguintes melhorias de desempenho:This release contains the following performance improvements:

  • 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.Branch switching for C#, VB, and C++ projects is much faster for large solutions since solution reload is no longer required.
  • 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.We reduced the time to unload and reload a small set of C# and VB projects in large solutions from minutes to several seconds.
  • 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.We added an option to disable reopening documents that were open in the previous session, as reopening certain types of files or designers can delay solution load.
    • Ative/desative essa opção em Ferramentas > Opções > Projetos > Soluções > Geral.Toggle this option in Tools > Options > Projects > Solutions > General.

Desempenho de TesteTest Performance

Melhoramos significativamente o desempenho ao executar alguns testes em uma solução grande com vários projetos de teste.We significantly improved performance when running a few tests in a large solution with multiple test projects. Em nossos laboratórios, uma solução com mais de 10.000 MSTests executou um teste único até 82% mais rápido.In our labs, a solution with over 10,000 MSTests executed a single test up to 82% faster!

Melhoria de desempenho do Visual BasicVisual Basic Performance Improvement

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.Visual Basic now provides a significant performance improvement when using the pattern CInt(Fix(number)) to convert from non-integer types to integers.

Criação de Perfil de DesempenhoPerformance Profiling

Esta versão conta com os seguintes aprimoramentos de criação de perfil de desempenho:This release contains the following performance profiling enhancements:

  • Adicionamos a capacidade de iniciar a criação de perfil em um estado em pausa:We added the capability to start profiling in a paused state:

    • A ferramenta Uso da CPU no Criador de Perfil de Desempenho (ALT-F2) agora pode ser iniciada em um estado em pausa (Figura 2).The CPU Usage tool in the Performance Profiler (ALT-F2) can now be started in a paused state (Figure 2). Isso pode ser útil durante a espera para que um cenário seja digno de uma investigação de Uso da CPU.This can be useful while waiting for a scenario worthy of a CPU Usage investigation. 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.If CPU usage collection is disabled at startup, the Performance Profiler will not collect any CPU usage sample stack data until it is specifically enabled. Isso resulta em uma quantidade menor de dados para ser coletada e analisada, tornando as investigações de desempenho mais eficientes.This results in a smaller amount of data to collect and analyze, thus making your performance investigations more efficient.

    • 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.To start a session with CPU Usage sample collection disabled, click the gear icon next to CPU Usage on the Performance Profiler launch page. 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.On the CPU Usage property page, uncheck Enable CPU Profiling (Sampling) and click OK to save the settings.

      CPU Usage Tool settings page
      (Figura 2) Configurações da ferramenta de Uso da CPU(Figure 2) CPU Usage Tool Settings
    • 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.Once you start the target application (click Start on the Performance Profiler launch page), you will see the CPU utilization graph (Figure 3) which allows you to control CPU profiling. 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.To enable CPU usage sample stack data collection, select Enable CPU profiling in the middle of the view, or click Record CPU Profile just below the CPU utilization graph. Clique em Gravar Perfil da CPU para habilitar/desabilitar a coleta de dados de exemplo quantas vezes desejar.You can click Record CPU Profile to enable/disable sample data collection as many times as you like. 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.The CPU utilization graph color changes to indicate whether sample collection is enabled/disabled at that point in time.

      CPU Usage Tool monitoring view
      (Figura 3) Grafo de Utilização da CPU(Figure 3) CPU Usage Utilization Graph
  • Adicionamos uma ferramenta de Rastreamento de Alocação de Objeto .NET:We added a .NET Object Allocation Tracking tool:

    • 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.The .NET Object Allocation Tracking Tool joins the family of tools available from the Performance Profiler. 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.Invoking this tool for a performance profiler session initiates the collection of a stack trace for every .NET object allocation that occurs in the target application. 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.This stack data is analyzed along with object type and size information to reveal details of the memory activity of your application. Você pode determinar rapidamente os padrões de alocação no código e identificar anomalias.You can quickly determine the allocation patterns in your code and identify anomalies. 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.In addition, for Garbage Collection (GC) events, you can easily determine which objects were collected and retained and quickly identify object types that dominate the memory usage of the application.
    • Isso é especialmente útil para gravadores de API para ajudar a minimizar as alocações.This is especially useful for API writers to help minimize allocations. 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.Many applications will overrun the buffer limits involved in the diagnostics data collection, but small test applications exercising an API's key scenarios can be diagnosed quite well. 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).While your test application is executing, the Performance Profiler displays a line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.
    • 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.To use the .NET Object Allocation Tracking Tool, display the Performance Profiler launch page (Figure 4), select a target to profile (the default target is the startup project in the solution), check .NET Object Allocation Tracking under Available Tools, then click Start.
    Performance Profiler launch page
    (Figura 4) Página de inicialização do Criador de Perfil de Desempenho(Figure 4) Performance Profiler Launch Page

Criação de Perfil de Desempenho (Uso da CPU)Performance Profiling (CPU Usage)

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):This release contains the following improvements to the CPU Usage tool of the Performance Profiler (available through 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.The Call Tree view now displays asynchronous execution by logical call stack by default. 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.You can turn off this behavior by unchecking the option Stitch Async Code in the Filter dropdown of the CPU Usage main view.
  • 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.We added a Modules/Functions view that displays performance information by module (dll) and by function within a module. É 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.One can display the Modules/Functions view from the context menu available when selecting a function in the CPU Usage main view, or from the View dropdown in the Call Tree or Caller/Callee views.
  • A indicação de instância foi adicionada ao grafo Uso da CPU na exibição principal da ferramenta Uso da CPU.Instance indication has been added to the CPU Usage graph in the CPU Usage tool's main view. 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.You can view the instances when a function is executing (for instance, on the stack) by double-clicking a function listed in any of the CPU Usage views.

ProdutividadeProductivity

Esta versão conta com os seguintes aprimoramentos de produtividade:This release contains the following productivity enhancements:

  • Você pode executar a limpeza de código adicional com Formatar Documento (Ctrl+K, D ou Ctrl+E, D) para desenvolvimento em C#.You can perform additional code cleanup with Format Document (Ctrl + K, D or Ctrl + E, D) for C# development. Configure a limpeza acessando Ferramentas > Opções > Editor de Texto > C# > Estilo de Código > Formatação > Geral.Configure cleanup by going to Tools > Options > Text Editor > C# > Code Style > Formatting > General.
  • Adicionamos mais refatorações e ações rápidas usando Ctrl + .We added more refactorings and quick actions using Ctrl + . ou Alt + Enter:or Alt + Enter:
    • Inverter if permite que você inverta a lógica em instruções if-else.Invert If enables you to invert your logic in if-else statements. Coloque o cursor na palavra-chave if para disparar essa refatoração.Place your cursor in the if keyword to trigger this refactoring.
    • 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.Add parameter from method callsite allows you to add a parameter to a method by adding an argument to a method callsite and triggering Quick Actions and Refactorings.
    • 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.Remove unnecessary parentheses removes parentheses around binary operators that are not essential for compilation. Configure essa regra de estilo por meio de Ferramentas > Opções > Editor de Texto > C# > Estilo de Código > Geral ou .editorconfig:You can configure this style rule through Tools > Options > Text Editor > C# > Code Style > General or .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:Use ternary conditionals in assignments and return statements can also be configured as a style rule in Tools > Options > ... or through .editorconfig:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Adicionamos novos comandos e melhorias à janela Ir para Todos:We added new commands and improvements to the Go to All window:
    • 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.Go to Enclosing Block (Ctrl + Alt + UpArrow) allows you to quickly navigate up to the beginning of the enclosing code block.
    • Ir para o Problema Seguinte/Anterior (Alt + PgUp/PgDn) permite que você pule para o problema seguinte/anterior (erro, rabisco, lâmpada).Go to Next/Previous Issue (Alt + PgUp/PgDn) allows you to skip to the next/previous issue (error, squiggle, lightbulb).
    • Ir para Membro (Ctrl + T, M) agora tem escopo para o arquivo por padrão.Go to Member (Ctrl + T, M) is now scoped to the file by default. Você pode alterar o padrão para solução ativando/desativando o Escopo do Documento Atual (Ctrl + Alt + C).You can change the default back to solution by toggling the Scope to Current Document (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.You can now create insertion points and selections at multiple, arbitrary locations in a file with multiple caret support. Isso permite que você adicione, edite ou exclua o texto em vários locais simultaneamente.This allows you to add, edit, or delete text in multiple places simultaneously.
    • Insira sinais de interpolação com Ctrl + Alt + Clique com o botão esquerdo do mouse.Insert carets with Ctrl + Alt + LeftMouseClick.
    • Adicione uma seleção e sinal de interpolação no próximo local que corresponde à seleção atual com Shift + Alt + Ins.Add a selection and caret at next location that matches current selection with Shift + Alt + Ins.
    • Confira Editar > Vários Acentos Circunflexos para obter uma lista completa de ações.See Edit > Multiple Carets for full list of actions.
  • Acessar um menu de navegação contextual com Alt + `.Access a contextual navigation menu with Alt + `.
  • Mantenha suas associações de teclas consistentes com dois novos perfis de teclado: Visual Studio Code e ReSharper (Visual Studio).Keep your keybindings consistent with two new keyboard profiles: Visual Studio Code and ReSharper (Visual Studio). Encontre esses esquemas em Ferramentas > Opções > Ambiente > Teclado e no menu suspenso superior.You can find these schemes under Tools > Options > Environment > Keyboard and the top drop-down menu.

DepuraçãoDebugging

Esta versão conta com os seguintes aprimoramentos de depuração:This release contains the following debugging enhancements:

  • 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).When you have more than one instance of Visual Studio 2017 installed, you can now select which instance to deploy your extension to when debugging (Figure 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.That way you can, for example, develop in the Visual Studio release channel while debugging in the preview channel.

    Select your debug instance
    (Figura 5) Selecionar instância de depuração(Figure 5) Select Debug Instance
  • Agora você pode anexar o Depurador de Instantâneos diretamente por meio da página Publicar resumo (Figura 6).You can now attach the Snapshot Debugger directly from the Publish summary page (Figure 6).

    Attach Snapshot Debugger from Publish Summary page
    (Figura 6) Anexar Depurador de Instantâneos do Resumo de publicação(Figure 6) Attach Snapshot Debugger from Publish Summary
  • Agora, damos suporte à exibição de Tarefas Gerenciadas por meio da janela Tarefas durante a depuração de minidespejos com heap.We now support viewing Managed Tasks through the Tasks window while debugging minidumps with heap.

Ferramentas para Desenvolvedores da Plataforma Universal do WindowsTools for Universal Windows Platform Developers

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.We made many important improvements to the XAML designer for projects targeting the Universal Windows Platform with a target platform version of the Windows 10 Fall Creators Update (build 16299) or later. Essas melhorias incluem:These improvements include:

  • Agora você pode editar coleções na Inspeção de Propriedade.You can now edit collections in the Property Inspector.
  • O designer agora permite que Modelos e Estilos sejam editados, incluindo quando as definições para essas entidades são definidas em outros documentos.The designer now allows Templates and Styles to be edited, including when the definitions for those entities are defined in other documents.
  • 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.Properties of type IconElement (such as Icon in an AppBarButton) now have a custom editor in the Property Inspector making these properties easier to set.
  • O designer, o editor e a opção Editar e Continuar agora devem funcionar corretamente com x:DefaultBindMode.The designer, editor, and Edit and Continue should all now work correctly with x:DefaultBindMode.
  • A experiência do Gerenciador de Estado Visual no Blend agora é compatível com AdaptiveTrigger.The Visual State Manager experience in Blend now supports AdaptiveTrigger.

Ferramentas do F# 4.5 e F# para Visual StudioF# 4.5 and F# Tools for Visual Studio

Apresentamos a linguagem F# versão 4.5 com esta versão.We introduced the F# language version 4.5 with this release. Isso também corresponde à nova família de 4.5 do FSharp.Core (a biblioteca principal do F#).This also corresponds with the new 4.5.x family of FSharp.Core (the F# core library). Você pode ler as especificações para cada uma dessas alterações no Repositório RFC do F#.You can read the specs for each of these changes in the F# RFC repository. Também há muitas melhorias nas ferramentas do F# para Visual Studio com essa versão.There are also many improvements to F# tools for Visual Studio with this release.

F# 4.5F# 4.5

Aqui estão alguns dos destaques com a linguagem F# versão 4.5:Here are the some of the highlights with the F# language version 4.5:

Suporte para Span<'T>Span<'T> support

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#.We implemented Span<'T> and related features so that effective consumption and production of APIs using Span, Memory, and ref-like constructs are possible with F#. Os recursos para isso incluem:The features for this include:

  • Novo tipo voidptr.New voidptr type.
  • Novas funções NativePtr.ofVoidPtr e NativePtr.toVoidPtr no FSharp.Core.New NativePtr.ofVoidPtr and NativePtr.toVoidPtr functions in FSharp.Core.
  • Novos tipos inref<'T> e outref<'T>, que são byrefs somente leitura e byrefs somente gravação, respectivamente.New types inref<'T> and outref<'T>, which are read-only byrefs and write-only byrefs, respectively. Isso corresponde a in ref e out ref no C#.This correspond to in ref and out ref in C#.
  • A capacidade de produzir structs ByRefLike (como Span e ReadOnlySpan).The ability to produce ByRefLike structs (such as Span and ReadOnlySpan).
  • A capacidade de produzir structs IsReadOnly.The ability to produce IsReadOnly structs.
  • Desreferência implícita de retornos byref e inref de métodos.Implicit dereference of byref- and inref-returns from methods.
  • A capacidade de produzir membros de extensão em byref/inref/outref.The ability to produce extension members on 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 byrefs não estavam desreferenciando implicitamente o valor retornado.This feature set fixes a bug in the initial design of byref-returns in F# 4.1, where functions, methods, and properties returning byref's were not implicitly dereferencing the return value. Fizemos essa alteração para alinhar o recurso com como o C# lida com retornos ref.We make this change to bring the feature in-line with how C# handles ref-returns. Uma mensagem de erro é usada quando uma anotação de tipo indica que uma desreferência implícita de um retorno ref é usada agora.An error message is used when a type annotation indicates that an implicit dereference of a ref- return is now used.

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 por um diferente.Additionally, this feature set also fixes a bug in the F# compiler where "Evil struct replacement" was possible; i.e., calling a method on an F# struct could replace the actual struct that was called with a different one. 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.The this parameter on a struct is now considered an inref<MyStruct>, with an error that suggests you add a mutable field if you wish to modify the struct.

Você pode saber mais sobre os constructos semelhantes a span e ref no RFC desse conjunto de recursos.You can learn more about span and ref-like constructs in the RFC for this feature set.

Match! em expressões de computaçãoMatch! in computation expressions

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.F# 4.5 introduces match!, a new keyword for use within computation expressions, contributed entirely by John Wostenberg. Essa simplificação da sintaxe é equivalente a um let! seguido por um match no resultado.This syntactic sugar is equivalent to a let! followed by a match on the result. Você pode saber mais no RFC de match!.You can learn more in the RFC for match!.

Atenuar a necessidade de elevação com yield em sequência, lista e expressões de matrizRelaxing the need to upcast with yield in sequence, list, and array expressions

O F# 4.5 agora atenua alguns casos em que uma elevação ao usar yield era necessária para converter um subtipo em um supertipo.F# 4.5 now relaxes some cases where an upcast when using yield was required to convert a subtype into a supertype. 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.This restriction was already not necessary for these expressions since F# 3.1 when not using yield, so this makes things more consistent with existing behavior. Você pode saber mais no RFC desse recurso.You can learn more in the RFC for this feature.

Permitindo o recuo em colchetes de lista e matrizPermitting indentation on list and array brackets

O F# 4.5 agora atenua a regra de recuo para colchetes de lista e matriz que exigem que eles sejam recuados um escopo para a frente quando estiverem em sua própria linha.F# 4.5 now relaxes the indentation rule for list and array brackets that required them to be indented one scope forward when on their own line. Esse requisito anterior sempre foi bastante confuso, especialmente para iniciantes no F#.This previous requirement has always been quite confusing, especially for beginners to F#. Além disso, ele não é necessário para expressões de sequência do F#.Additionally, it is not required for F# sequence expressions. Isso agora traz expressões de lista e matriz para o mesmo estado consistente que as expressões de sequência.This now brings array and list expressions to the same consistent state as sequence expressions. Você pode saber mais no RFC desse recurso.You can learn more in the RFC for this feature.

Casos de enumeração emitidos como públicosEnum cases emitted as public

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.F# 4.5 now emits enumeration cases as public under all circumstances, to align with how C# emits enumeration cases. Isso também torna mais fácil 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 foi emitido.This also makes it easier for profiling tools to analyze logs from F# code, where the value rather than the label name was emitted. Você pode saber mais no RFC desse recurso.You can learn more in the RFC for this feature.

Melhorias do compilador do F#F# Compiler Improvements

As melhorias do compilador do F#, além dos recursos da linguagem mencionados anteriormente, estão no F# 4.5.Improvements to the F# compiler in addition to the previously-mentioned language features are in F# 4.5. Elas incluem:These include:

  • Melhoramos trabalho de desempenho do compilador removendo até 2,2% de todas as alocações no compilador do F# (em vários cenários).We improved compiler performance work by removing up to 2.2% of all allocations in the F# compiler (under various scenarios).
  • Corrigimos um bug que resulta em uma AccessViolatioNException ao usar yield! com enumeráveis baseados em struct.We fixed a bug that results in an AccessViolatioNException when using yield! with struct-based enumerables.
  • Agora é possível herdar de FSharpFunc novamente.It is now possible to inherit from FSharpFunc again.
  • Chamadas tail estão desabilitadas por padrão para builds de depuração do F# para .NET Core.Tail calls are disabled by default for debug builds of F# for .NET Core. Elas estão habilitadas para a versão, correspondendo assim ao compilador do F# de área de trabalho.They are enabled for release, thus matching the desktop F# compiler.
  • A normalização de referência de F# foi corrigida para permitir que você controle referências de assembly transitivas gravadas em um arquivo de saída.F# reference normalization has been fixed to allow you to control transitive assembly references written to an output file. Isso permite que você execute o equivalente ao redirecionamento de assembly no .NET Core.This allows you to perform the equivalent of assembly redirection on .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.We fixed a bug where the error message used when attempting to use dynamic invocation on inline functions was ignored. Agora a mensagem de erro é propagada.The error message now propagates.
  • O F# agora respeita o sinalizador WarningsNotAsErrors que pode ser definido em arquivos de projeto.F# now respects the WarningsNotAsErrors flag that you can set in project files.
  • 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.When branches of a pattern match do not return the same error message type condition, has been updated to be friendlier by 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.An internal error bug when a compiling interface implementation that lacks an overloaded method implementation has been fixed by Steffen Forkmann.
  • Algumas cópias de matriz desnecessárias na fase de léxico do compilador foram removidas por Gauthier Segay.Some unnecessary array copying in the lexing phase of the compiler has been removed by 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.Incomplete pattern matches on F# enumerations now produces a detailed warning that gives an example of a case not covered, contributed by John Wostenberg.
  • `#nowarn "2003" agora é respeitado, contribuição de Matthias Diitrich.`#nowarn "2003" is now respected, contributed by 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.A bug where consuming C# extensions methods could fail in F# overload resolution has been fixed by Steffen Forkmann.
  • Um bug de estrutura de dados QueueList foi corrigido por Steffen Forkmann.An internal QueueList data structure bug was fixed by 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.Various smaller optimizations and code cleanup efforts were contributed by Steffen Forkmann, Eugene Auduchinok, and ncave.

Biblioteca Principal do F# 4.5.xF# Core Library 4.5.x

As seguintes adições à Biblioteca Principal do F# estão disponíveis agora:The following additions to the F# Core Library are now available:

  • Um trabalho significativo foi feito para melhorar os rastreamentos de pilha para expressões de computação async { }.Significant work has been done to improve stack traces for async { } computation expressions. 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.You should now be able to see user code and user line numbers in stack traces. Você pode saber mais no RFC desse recurso.You can learn more in the RFC for this feature.
  • As APIs FuncConvert.FromFunc e FuncConvert.FromAction que o tipo System.Func e System.Action sobrecarrega, para ajudar na interoperação com C#.FuncConvert.FromFunc and FuncConvert.FromAction APIs that type System.Func and System.Action overloads, to help in interoperation with C#. Você pode saber mais no RFC desse recurso.You can learn more in the RFC for this feature.
  • ValueOption é um novo tipo disponível, que é o primeiro em um conjunto de recursos futuros basicamente destinado ao melhor desempenho de Padrões Ativos.ValueOption is a new type available, which is the first in a set of future features ultimately aimed at better performance for Active Patterns. Você pode saber mais no RFC desse recurso.You can learn more in the RFC for this feature.
  • TryGetValue agora é um novo membro do tipo de Mapa do F#.TryGetValue is now a new member on the F# Map type. Você pode saber mais no RFC desse recurso.You can learn more in the RFC for this feature.
  • Corrigimos o Alto uso da CPU na primeira invocação de MailboxProcessor.TryReceive.We fixed High CPU usage upon the first invocation of MailboxProcessor.TryReceive.
  • A comparação para bool agora usa a comparação genérica rápida, contribuição de Vasily Kirichenko.Comparison for bool now uses fast generic comparison, contributed by Vasily Kirichenko.
  • O texto de resumo para Array.allPairs foi atualizado para estar correto, contribuição de Patrick McDonaldThe summary text for Array.allPairs has been updated to be correct, contributed by Patrick McDonald

Aprimoramentos de ferramentas de F#F# Tooling Improvements

Melhorias significativas nas ferramentas F#, como melhorais de desempenho, e algumas novas funcionalidades de editor foram incluídas nesta versão.Significant improvements in the F# tools, such as performance enhancements and some new editor features are included this release. Como sempre, com um grande número de contribuições da comunidade de software livre do F#.As always, with a large number of contributions from the F# open source community. Aqui estão os destaques:Here are the highlights:

  • Melhoramos o desempenho do IntelliSense para projetos do estilo do SDK do .NET para todas as formas, incluindo as que usam vários destinos.We improved IntelliSense performance for .NET SDK-style projects of all forms, including those that use multi-targeting.
  • 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.A community-driven effort to analyze and improve IntelliSense performance for very large files was contributed by Vasily Kirichenko, Steffen Forkmann, and Gauthier Segay. O IntelliSense em arquivos muito grandes (mais de 10 mil linhas de código) está aproximadamente duas vezes mais rápido agora.IntelliSense in very large files (10k+ lines of code) is roughly twice as fast now.
  • 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.The warning for an outdated FSharp.Core (despite the package being installed) is no longer present in .NET SDK-style projects.
  • 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.The description tooltip that displays XML documentation for a member after . in IntelliSense no longer times out after 10 seconds.
  • Foi corrigido um bug em que não era possível definir pontos de interrupções em argumentos do construtor de objetos.A bug where you could not set breakpoints in object constructor arguments has been fixed.
  • Foi corrigido um bug em que um símbolo renomeado seria duplicado quando ele fosse um parâmetro genérico.A bug where a renamed symbol would be duplicated when it is a generic parameter has been fixed.
  • Os modelos do .NET Framework (modelos do F# clássicos) agora consumem o FSharp.Core de um pacote do NuGet, para se alinharem aos modelos do F# do SDK do .NET.Templates for .NET Framework (classic F# templates) now consume FSharp.Core from a NuGet package, to align with .NET SDK F# templates.
  • O preenchimento de chaves automático e transacional agora está disponível para os pares de chaves (), [], {}, [||] e [<>].Automatic, transactional brace completion is now available for (), [], {}, [||], and [<>] brace pairs. Realizamos esse trabalho em colaboração com Gibran Rosa.We did this work in collaboration with Gibran Rosa.
  • Agora você pode ir para definição com Ctrl + Clique em um símbolo do F#.You can now go to definition with Ctrl + Click on an F# symbol. As configurações para esse gesto também serão respeitadas na janela Ferramentas > Opções.The settings for this gesture are also respected in the Tools > Options window.
  • 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.The IntelliSense performance UI has been modified to allow configuration of stale typecheck information for various IDE features. As explicações sobre cada opção agora estão presentes nas dicas de ferramentas das configurações.Explanations for each option are now present in tooltips for the settings.
  • O realce de correspondência de chaves agora realça as chaves corretamente, concluído em colaboração com Vasily Kirichenko.Brace match highlighting now correctly highlights braces, completed in collaboration with Vasily Kirichenko.
  • Ir para definição agora navega corretamente quando um tipo é definido recursivamente, contribuição de Vasily Kirichenko.Go to definition now navigates correctly when a type is defined recursively, contributed by 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.A bug where an auto-imported namespace wasn't opened when the top of a file was empty has been fixed by Vasily Kirichenko.
  • Um bug em que os especificadores printf que continham pontos eram coloridos incorretamente foi corrigido por Vasily Kirichenko.A bug where printf specifiers that contained dots were miscolored has been fixed by 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.A bug where all opens were considered unused inside of a recursive module has been fixed by Vasily Kirichenko.
  • O desempenho do analisador de Aberturas Não Utilizadas foi melhorado significativamente por Vasily Kirichenko.The performance of the Unused Opens analyzer has been improved significantly by Vasily Kirichenko.
  • O preenchimento automático para atributos agora sugere apenas as opções que são realmente atributos, contribuição de Vasily Kirichenko.Autocompletion for attributes now only suggests options that are actually attributes, contributed by 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.Signature Help tooltips are now generated for Type Provider static parameters at the constructor call site, contributed by 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.A bug where value types used as units of measure were colored as reference types has been fixed by Vasily Kirichenko.
  • Um bug em que a colorização semântica poderia desaparecer para alguns arquivos durante a rolagem foi corrigido por Vasily Kirichenko.A bug where semantic colorization could disappear for some files while scrolling has been fixed by Vasily Kirichenko.
  • Agora há uma implementação de CodeLens experimental, contribuição de Victor Peter Rouven Müller.There is now an experimental CodeLens implementation, contributed by Victor Peter Rouven Müller. Você pode ativá-la em Opções > Editor de Texto > F# > CodeLens.You can turn it on in Options > Text Editor > F# > Code Lens.
  • Um bug em que o serviço de compilador do F# omitiria incorretamente os nomes de módulo na documentação XML foi corrigido por Sebastian Urban.A bug where the F# compiler service would incorrectly elide the module names in XML documentation has been fixed by Sebastian Urban.
  • O código que usa Dictionary com ContainsKey e as chamadas Item subsequentes foi alterado para usar TryGetValue, por Eugene Auduchinok.Code that uses Dictionary with ContainsKey and subsequent Item calls has been changed to use TryGetValue, by Eugene Auduchinok.
  • Jakob Majoka também contribuiu no processo de consumir uma API diferente para Dicas de Ferramentas.Jakob Majoka also contributed in the process of consuming a different API for Tooltips.

Melhorias de infraestrutura, empacotamento e software livreInfrastructure, Packaging, and Open Source Improvements

Fizemos os seguintes aprimoramentos para infraestrutura, empacotamento e nossa experiência de contribuição do software livre:We made the following enhancements to infrastructure, packaging, and our open source contribution experience:

  • 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#.The F# compiler distributed with Visual Studio no longer installs as a singleton in the F# Compiler SDK location. 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.It is now fully side-by-side with Visual Studio, meaning that side-by-side installations of Visual Studio will finally have truly side-by-side F# tooling and language experiences.
  • O pacote do NuGet do FSharp.Core agora está assinado.The FSharp.Core NuGet package is now signed.
  • O registro em log do ETW foi adicionado ao compilador e às ferramentas do F#.ETW logging has been added to the F# tools and compiler.
  • Os arquivos control.fs/control.fsi muito grandes no FSharp.Core foram divididos em async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi e observable.fs/observable.fsi.The very large control.fs/control.fsi files in FSharp.Core have been split into async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi, and observable.fs/observable.fsi.
  • Adicionamos versões de estilo do SDK do .NET dos nossos artefatos de teste de estresse de desempenho de projeto.We added .NET SDK-style versions of our project performance stress test artifacts.
  • Removemos o Newtonsoft.json de nossa base de códigos, e agora você tem um pacote a menos baixado para colaboradores de OSS.We removed Newtonsoft.json from our codebase, and you now have one less package downloaded for OSS contributors.
  • Agora usamos as versões mais recentes de System.Collections.Immutable e System.Reflection.Metadata.We now use the latest versions of System.Collections.Immutable and System.Reflection.Metadata.

Melhorias de conformidade e conjunto de ferramentas do C++C++ Conformance and Toolset Improvements

Esta versão conta com as seguintes melhorias de conformidade e conjunto de ferramentas do C++:This release contains the following C++ conformance and toolset improvements:

  • 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.A new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with the /experimental:preprocessor switch. 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.This is controlled with macro _MSVC_TRADITIONAL, which is defined 1 when using the traditional preprocessor and 0 when using the new experimental standards conformant preprocessor.
  • O Prompt de Comando do Desenvolvedor do Visual Studio é compatível com a habilitação de tempos de execução mitigados de variante 1 do Visual C++ Spectre (-vcvars_spectre_libs = spectre).The Visual Studio Developer Command Prompt supports enabling the Visual C++ Spectre variant 1 mitigated runtimes (-vcvars_spectre_libs = spectre). Mais informações sobre mitigações do Spectre estão disponíveis no Blog da Equipe do Visual C++.More information about Spectre mitigations is available on the Visual C++ Team Blog.
  • 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.Two new additions to the SSA Optimizer focused on modern C++ code generation: redundant store elimination and folding of redundant branches.
  • Desempenho de E/S mapeado de memória otimizada no vinculador para reduzir os tempos de vinculação.Optimized memory mapped I/O performance in the linker to reduce link times.

Desenvolvimento multiplataforma do C++C++ Cross-Platform Development

Adicionamos, melhoramos e adicionamos o seguinte ao desenvolvimento multiplataforma do C++ para essa versão:We added, improved, and added the following to C++ cross-platform development for this release:

  • 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.Added Add > New Item template for generating a .clang-format file following the coding convention specified for ClangFormat in Tools > Options. 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.If the Visual Studio convention is selected, the generated file tries to match the user's current Visual Studio formatting configuration from Tools > Options.
  • Atualizada a versão de clang-format.exe fornecido para 6.0.0.Updated the shipped clang-format.exe version to 6.0.0.
  • Modelos para simplificar a adição de configurações a CppProperties.json.Templates to simplify adding configurations to CppProperties.json.
  • Foram adicionados modelos para simplificar a adição de configurações para CMakeSettings.json (Figura 7).Added templates to simplify adding configurations to CMakeSettings.json (Figure 7).
Configuration templates for CMake
(Figura 7) Modelos de configuração para o CMake(Figure 7) Configuration Templates for CMake

Produtividade do C++C++ Productivity

Fizemos os seguintes aprimoramentos e melhorias na produtividade do C++:We made the following enhancements and improvements to C++ productivity:

  • 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.C++ Quick Info tooltips on macros now show what they expand to, rather than just their definition. Isso é particularmente útil para macros complexas que referenciam outras macros, pois isso esclarece pelo que o identificador de macro é substituído pelo pré-processador.This is particularly useful for complex macros that reference other macros as it clarifies what the macro identifier is replaced with by the preprocessor.
  • 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.Added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize code.
  • 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).IntelliSense for templates provide you more details about template arguments to take full advantage of IntelliSense within your template body (Figure 8).
Template IntelliSense
(Figura 8) IntelliSense de modelo(Figure 8) Template IntelliSense
  • Estamos trabalhando para atualizar nossa experiência de análise de código.We are working to refresh our code analysis experience. Agora você pode habilitar as novas funcionalidades em andamento em Ferramentas > Opções > Editor de Texto > C++ > Experimental > Análise de Código.You can now enable the new, in-progress features under Tools > Options > Text Editor > C++ > Experimental > Code Analysis. 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).Code analysis can run in the background when files are opened or saved, and results are displayed in the error list and as green squiggles in the editor (Figure 9).
In-editor code analysis
(Figura 9) Análise de código no editor(Figure 9) In-editor Code Analysis

Melhorias na depuração do C++C++ Debugging Improvements

Fizemos as seguintes melhorias de depuração:We made the following debugging improvements:

  • 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.Just My Code now enables you to step-over code from system or 3rd party C++ libraries in addition to collapsing those calls in the call-stack window. 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.You can control this behavior for any C++ libraries when your code is compiled with /JMC and the non-user libraries paths are specified in a .natjmc file. 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).If the system library calls into user-code, when you step in, the debugger skips all system code and stops on the first line of user-code callback (Figure 10).
Just My Code
(Figura 10) Apenas Meu Código(Figure 10) Just My Code
  • 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.Data breakpoints can now be set inside the Watch, Quickwatch, Autos, and Locals windows, allowing you to break when a value stored in memory changes in just a few, short clicks.
  • 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.Source Link lets you embed information about an executable or library's original source code into the PDB during compilation.
  • 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).When debugging, the console window now stays open by default when the program terminates execution (similar to running the program without the debugger). Esse comportamento pode ser alternado de volta para fechar o console automaticamente em Ferramentas > Opções > Depuração > Geral.This behavior can be toggled back to closing the console automatically in Tools > Options > Debugging > General.

Melhorias de JavaScript e TypeScriptJavaScript and TypeScript Improvements

TypeScript 3.0TypeScript 3.0

O Visual Studio 2017 versão 15.8 agora inclui o TypeScript 3.0 por padrão.Visual Studio 2017 version 15.8 now includes TypeScript 3.0 by default. Para obter mais detalhes sobre esta versão, confira o comunicado de versão do TypeScript 3.0.For more details on this release, see the TypeScript 3.0 release announcement.

Suporte aprimorado para o Vue.jsImproved Vue.js support

O suporte para a biblioteca Vue.js foi aprimorado e, especificamente, o suporte para arquivos .vue, também conhecidos como "componentes de arquivo único".Support for the Vue.js library has been improved, and in particular support for .vue files, also known as "single file components". 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.This provides enhancements when editing script blocks inside .vue files, including support for script blocks authored in TypeScript through the lang="ts" attribute on the script element. (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 tempo de execução.(Note: A build process using WebPack or similar must be used to convert the .vue files to the HTML and JS files needed at runtime. Confira a página Componentes de arquivo único para obter mais detalhes).See the Single File Components page for more details).

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.If the Node.js workload is installed, there will now be "Basic Vue.js Web Application" templates under the "JavaScript / Node.js" or "TypeScript / Node.js" paths in the New Project dialog. Veja a seguir um exemplo de edição de código TypeScript dentro de um bloco de script em um arquivo .vue (Figura 11).The below shows an example of editing TypeScript code inside a script block in a .vue file (Figure 11).

Editing a .vue file
(Figura 11) Editando arquivos .vue(Figure 11) Editing .vue Files

Melhorias no ESLintESLint Improvements

Reimplementamos o suporte para o ESLint nesta versão.We reimplemented ESLint support for this release. O ESLint traz os seguintes aprimoramentos:ESLint has the following improvements and enhancements:

  • 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.Rather than only linting saved files, Visual Studio will now lint JavaScript files as you edit, as well.
  • 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.Results can be reported for all JS files in your project, not just open files; if there are parts of your project you do not want to be linted, an .eslintignore file can now be used to specify directories and files that should be ignored.
  • 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.ESLint was updated to use ESLint 4 by default, but if your project has a local installation of ESLint, it will use that version instead.

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).ESLint may be disabled globally in Visual Studio by unchecking the Enable ESLint setting in the **Tools > Options > Text Editor > Javascript/Typescript > Linting ** (Figure 12).

ESLint Options
(Figura 12) Opções do ESLint(Figure 12) ESLint Options

Melhorias na opção Abrir Pasta para o Node.jsOpen Folder Improvements for 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.There are numerous improvements working with JavaScript and TypeScript in the Open Folder scenario when the "Node.js workload" is installed. 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.For example, managing NPM packages, building TypeScript, launching and debugging with Node.exe, executing NPM scripts, and running unit tests.

Confira Desenvolver código JavaScript e TypeScript no Visual Studio sem soluções nem projetos para obter mais informações.See Develop JavaScript and TypeScript code in Visual Studio without solutions or projects} for more information.

Melhorias de desempenho do editorEditor Performance Improvements

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.In previous releases, all JavaScript and TypeScript language service operations were serviced by a single Node.js process. 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).This could cause editor delays if commands that impact user typing (such as automatic formatting after a newline) were sent while a potentially lengthy operation was already in process (such as analyzing code for errors). Para atenuar isso, um processo separado agora é usado para as operações que mais afetam a edição.To mitigate this, a separate process is now used for the operations that impact editing the most. Esse processo é significativamente mais leve em recursos do sistema do que no processo de serviço de linguagem existente.This process is significantly lighter on system resources than the existing language service process. 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.However, if you wish to disable the new process, check the Disable dedicated syntax process box in Tools > Options > Text Editor > JavaScript/TypeScript > Language Service.

Ferramentas da Web do Visual StudioVisual Studio Web Tools

O Gerenciador de Bibliotecas é um novo recurso incluído no Visual Studio 2017.Library Manager is a new feature included in Visual Studio 2017. Ele ajuda a gerenciar bibliotecas do lado do cliente em seus projetos da Web.It helps you manage client-side libraries in your web projects.

Ferramentas de contêinerContainer Tools

Adicionamos uma nova experiência de contêiner do Docker de projeto único para projetos Web do ASP.NET Core.We added a new single project Docker container experience for ASP.NET Core web projects. 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.This supplements the existing Docker Compose-based container tooling and provides a simpler, easier way to create, debug, and build Docker containers right from Visual Studio.

Você pode adicionar o suporte ao Docker ao criar o projeto (Figura 13):You can add Docker support when creating the project (Figure 13):

Enable Docker Support
(Figura 13) Habilitar suporte ao Docker(Figure 13) Enable Docker Support

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).Or, you can enable Docker support to an existing project through the project's context menu in Solution Explorer (Figure 14). Depois de fazer isso, o Visual Studio cria um único Dockerfile no projeto.Once you do this, Visual Studio creates a single Dockerfile in the project. Você tem a opção de escolher Windows ou Linux.You have the option to choose either Windows or Linux.

Add Docker Support
(Figura 14) Adicionar suporte ao Docker(Figure 14) Add Docker Support

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.Visual Studio also adds a debugger launch profile (Figure 15) for Docker so that the project can be debugged while running within a container.

Docker Launch Profile
(Figura 15) Perfil de inicialização do Docker(Figure 15) Docker Launch Profile

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.If you have a solution with multiple Docker projects, by default, only one container runs when you choose to start the solution. 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.If you wish to run multiple containers simultaneously, you can right-click on the solution in Solution Explorer and select Set Startup Projects and then Multiple startup projects, and then set the Action drop-down to Start or Start without debugging for all projects that you want to run.

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.Once you have your containerized project running the way you want, you can right-click on the project and select Build Docker Image to build an image locally, when ready to push to Azure Container Registry or 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).You can also add the existing Docker Compose-based functionality to an ASP.NET Core web project through the new Container Orchestrator Support option (Figure 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.Right-click on the ASP.NET Core web project in Solution Explorer, select Add > Container Orchestrator Support, and then select Docker Compose from the drop-down menu.

Add Container Orchestrator Support
(Figura 16) Adicionar suporte de orquestração(Figure 16) Add Orchestration Support

Melhorias de publicaçãoPublish Improvements

Esta versão conta com as seguintes melhorias de publicação:This release contains the following publish improvements:

  • Ao publicar um contêiner do Docker em um Registro de contêiner, agora você pode personalizar a marca para a imagem.When publishing a Docker container to a container registry, you can now customize the tag for the image. Você pode adicionar manualmente uma marca (o padrão é "mais recente") ou usar uma marca gerada automaticamente para garantir que cada marca seja exclusiva.You can either manually add a tag (default is "latest") or use an auto-generated tag to make sure each tag is unique.
  • Ao criar um Serviço de Aplicativo do Azure, configure também o Application Insights para coletar a telemetria automaticamente.When creating a new Azure App Service, you can also configure Application Insights to collect telemetry automatically. Se você escolher uma região que também tem o Application Insights, ele será habilitado por padrão.If you choose a region that also has Application Insights, it is enabled by default. 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.If you choose a region that does not yet contain Application Insights, you can manually specify a different region for your Application Insights resource from the dropdown.
  • Ao publicar projetos do Azure Functions você pode optar por publicar usando o novo recurso Run-From-Zip.When publishing Azure Functions projects you can choose to publish using the new Run-From-Zip feature.

Ferramentas do Visual Studio para XamarinVisual Studio Tools for Xamarin

Esta versão contém as seguintes atualizações para Xamarin:This release contains the following updates for Xamarin:

  • Adicionamos o suporte para Xcode 9.4.We added support for 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.When you create a new Xamarin.Forms project, the default code sharing option is now .NET Standard. A opção de projeto compartilhado ainda está disponível.The shared project option is still available.
  • Adicionamos melhorias de build incrementais do Android.We added Android incremental build improvements. 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.Xamarin.Android uses files generated in the intermediate output directory to achieve incremental builds that are faster than full builds. 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.Previously, if you changed your project's target framework it would invalidate the files and result in a full build on the next run. 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.In this release we now preserve the files in per-framework folders so you can switch between different target frameworks and still benefit from incremental builds. A limpeza do projeto permite que você recupere o espaço em disco usado pelos arquivos preservados.Cleaning the project allows you to reclaim the disk space used by the preserved files.
  • Adicionamos suporte mínimo para projetos de associação do Xamarin.Mac no Visual Studio 2017.We have added minimum support for Xamarin.Mac binding projects in Visual Studio 2017. Isso permite que o Visual Studio carregue e reconheça os projetos de associação do Xamarin.Mac como compatíveis.This enables Visual Studio to load and recognize Xamarin.Mac binding projects as supported. Você também pode criar projetos de associação do Xamarin.Mac.You can also build Xamarin.Mac binding projects. 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.However, the build process is performed locally without using the native Mac tool chain, so the generated IL assemblies cannot be used for running or debugging in apps.

Suporte ao Android Emulator do Hyper-VHyper-V Android Emulator Support

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).This release adds support for the Google Android emulator that is compatible with Hyper-V when running on the Windows 10 April 2018 Update (Figure 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.This enables you to use Google's Android emulator side-by-side with other Hyper-V based technologies, including Hyper-V virtual machines, Docker tooling, the HoloLens emulator, and more. 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.Mobile app developers who use Hyper-V now have access to a fast Android emulator that always supports the latest Android APIs, works with Google Play Services out of the box, and supports all features of the Android emulator, including camera, geolocation, and Quick Boot.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(Figure 17) Google Android Emulator e HoloLens Emulator
(Figure 17) Google Android Emulator and HoloLens Emulator

Designer do Xamarin.AndroidXamarin.Android Designer

Fizemos melhorias significativas na experiência do designer para Xamarin.Android.We made significant improvements to the designer experience for Xamarin.Android. Os destaques incluem:Highlights include:

  • Foi incluído um editor de modo divisão que permite que você crie, edite e visualize seus layouts ao mesmo tempo (Figura 18).A split-view editor was introduced which allows you to create, edit, and preview your layouts at the same time (Figure 18).
Screenshot of the Xamarin.Android split-view editor.
(Figura 18) Editor de modo divisão do Xamarin.Android
(Figure 18) Xamarin.Android Split-view Editor
  • Experiência do IntelliSense e confiabilidade dos controles personalizados melhoradas.Improved IntelliSense experience and reliability of custom controls.
  • Suporte a dados de amostra de valores fornecidos pelo sistema.Sample data support for system provided values.

Pré-visualizador do Xamarin.FormsXamarin.Forms Previewer

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.The Xamarin.Forms Previewer now has toolbox support when using Xamarin.Forms version 3.1.0.583944 or higher. 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.Xamarin.Forms controls will appear in the toolbox so they are more discoverable for those new to the toolkit. Você também pode arrastar e soltar um controle no editor de código XAML para adicionar o controle à página.You can also drag and drop a control onto the XAML code editor to add the control to the page. Agora, o Visualizador de Xamarin.Forms faz parte do editor XAML.The Xamarin.Forms Previewer is now part of the XAML editor. Você pode abrir e fechá-lo com o ícone de expansão na borda do painel do editor.You can open and close it with the expand icon on the edge of the editor pane.

PythonPython

Essa versão adiciona as seguintes melhorias para desenvolvedores de Python:This release adds the following improvements for Python developers:

  • 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.Python IntelliSense now uses typeshed definitions to provide richer results for libraries where auto-completions cannot be inferred by static analysis.
  • 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.The experimental debugger, first announced in the 15.7 preview releases, is now the default debug engine used for Python, providing faster and more reliable debugging for Python code.
  • 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).We have added support for Python 3.7, including fixes to enable debug attach, profiling, and mixed-mode (cross-language) debugging features.
  • 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.For more information about the above features, be sure to check out our Python in Visual Studio 2017 version 15.8 blog post.

Migrar as configurações do Azure Functions localMigrate Local Azure Function Settings

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.The "Managed Application Settings" dialog available from the publish summary page now displays values from your local.settings.json file and enables you to migrate values to your remote Azure Function app hosted in Azure.

Serviços conectadosConnected Services

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.You can now configure continuous delivery for Azure functions directly from Visual Studio 2017 for solutions with Azure Function Projects.

Melhoria do Gerenciador de TestesTest Explorer Improvement

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.Test Explorer now displays a more informative test status summary pane (lower pane of test explorer) when one of the groupings in the hierarchy view is selected. Agora o painel exibe quantos testes falharam, passaram ou não foram executados naquele agrupamento.The pane now displays how many tests failed, passed, or not run in that grouping.

Novos recursos de extensibilidadeNew Extensibility Features

Language Server ProtocolLanguage Server Protocol

Agora o Visual Studio tem compatibilidade nativa para o Language Server Protocol.Visual Studio now has native support for the 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.Extension authors can create extensions that communicate with existing language servers to add additional language support to 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.Extension users can install these extensions to start using their favorite language inside Visual Studio like Rust.

Modelo AsyncPackageAsyncPackage Template

Os autores de extensão agora podem usar modelos de item para criar AsyncPackages para otimizar o desempenho da sua extensão.Extension authors can now use item templates to create AsyncPackages to optimize their extension's performance. Leia mais sobre AsyncPackages.Read more about AsyncPackages.

Pacotes de extensãoExtension Packs

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.Easily share your favorite set of extensions or set up a new install of Visual Studio with all your extensions by using an extension pack. 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.Extension packs allow you to create a list of extensions, package them in an extension, and use it quickly to install those extensions in bulk.

Publicação de extensão de linha de comandoCommand Line Extension Publishing

Publique suas extensões no Visual Studio Marketplace usando a linha de comando.Publish your extensions to the Visual Studio Marketplace using the command line.

SDK do .NET Core 2.1.400.NET Core SDK 2.1.400

O Visual Studio 2017 versão 15.8 inclui o SDK 2.1.400 do .NET Core.Visual Studio 2017 version 15.8 includes .NET Core SDK 2.1.400. Os novos recursos de SDK incluem:New SDK features include:

  • Modelos do NUnit adicionadosAdded NUnit templates
  • Adicionado suporte para ferramentas globais assinadasAdded support for signed global tools
  • Texto de ajuda aprimorado para maior clarezaImproved help text for better clarity

32 problemas foram encerrados na CLI do .NET Core.32 issues were closed on the .NET Core CLI.
20 problemas foram encerrados no SDK do .NET Core.20 issues were closed on the .NET Core SDK.

Controle do código-fonteSource Control

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.For .NET Core projects, files added directly to the project through File Explorer will now show the correct Git and TFS tracking icons in the Solution Explorer without needing to reload the solution.

Extensão do Adaptador de Teste do .NET.NET Test Adapter Extension

O Adaptador de Teste do .NET tem a seguinte substituição e alteração da falha:The .NET Test Adapter has the following breaking change and deprecation:

  • Alteração da falha: todos os projetos de teste devem incluir a referência ao NuGet do adaptador de teste do .NET no csproj.Breaking Change: All test projects must include their .NET test adapter NuGet reference in their 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:If they do not, this test output will appear on the project if discovery by a test adapter extension is kicked off after a build or if the user tries to run the selected tests:
    • O projeto de teste {} não faz referência a qualquer adaptador do NuGet do .NET.Test project {} does not reference any .NET NuGet adapter. A execução ou a detecção de testes pode não funcionar para esse projeto.Test discovery or execution might not work for this project. É recomendável referenciar os adaptadores de teste NuGet em cada projeto de teste na solução.It is recommended to reference NuGet test adapters in each test project in the solution.
  • 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..NET test frameworks have been releasing their adapters in NuGet packages and moving away from Visual Studio extensions. O suporte para adaptadores de teste do .NET fornecidos por meio de extensões foi preterido, mas ainda é compatível.The support for .NET test adapters delivered through extensions is deprecated, but still supported. Isso significa que duas novas opções estão disponíveis em Ferramentas > Opções > Teste.This means that two new options are available in Tools > Options > Test.
    • 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.The first option allows Visual Studio to only use the test adapters it finds in the test assembly folder (populated by the test adapter NuGet reference) or as specified in the runsettings file.
    • 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.The second option allows Visual Studio to "fallback" to the old behavior and search for test adapter extensions for projects that do not have a test adapter NuGet reference. As duas opções são selecionadas por padrão, portanto, nenhum comportamento padrão será alterado nesta versão.Both options are checked by default, so no default behavior will change in this release.
  • Observação: os adaptadores de teste não .NET não são afetados com essa alteração.Note: Non-.NET test adapters are not affected with this change.

Suporte de segredos .NET Framework do ASP.NETASP.NET .NET Framework Secrets Support

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".For ASP.NET, .NET Framework projects that target .NET Framework 4.7.1 or higher, you can now open and store secrets you do not want in your source code in usersecrets.xml by right-clicking on the project and selecting "Managed User Secrets".

.NET Framework 4.7.2.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 tempo de execução 4.7.2 incluído.Visual Studio 2017 version 15.8 now offers the .NET Framework 4.7.2 development tools to all supported platforms with the 4.7.2 runtime included. 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.The .NET Framework 4.7.2 offers several new features and improvements as well as numerous reliability, stability, security, and performance fixes.

Você pode encontrar mais detalhes sobre o .NET Framework 4.7.2 nesses artigos:You can find more details about the .NET Framework 4.7.2 in these articles:

Atrasar o carregamento de pacoteDelay Package Load

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.Visual Studio now delays the loading of asynchronous packages that are configured to autoload until after the Visual Studio IDE has fully started and the solution has loaded. Essa alteração não afeta pacotes carregados automaticamente de forma síncrona.This change does not affect synchronously autoloaded packages. Os usuários podem examinar a Central de Status de Tarefas no canto inferior esquerdo da barra de status para monitorar o progresso.Users can look at the Task Status Center in the lower left corner of the status bar to monitor progress. Os autores de extensão que criam asyncpackages devem testar sua extensão.Extension authors that create asyncpackages should test their extension. Para obter mais informações, consulte Melhorando a resposta de cenários críticos atualizando o comportamento de carregamento automático para extensões.For more information, see Improving the responsiveness of critical scenarios by updating auto load behavior for extensions.


Release Notes Icon Avisos da Consultoria de Segurança do Visual Studio 2017 versão 15.8Visual Studio 2017 version 15.8 Security Advisory Notices

Versão de Manutenção do Visual Studio 2017 versão 15.8.7 – lançada em 10 de outubro de 2018Visual Studio 2017 version 15.8.7 Service Release -- released on October 10, 2018 New Release icon

CVE-2018-8292 Vulnerabilidade da divulgação de informações confidenciais do .NET CoreCVE-2018-8292 .NET Core Information Disclosure Vulnerability

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.A security feature bypass vulnerability exists in .NET Core when HTTP authentication information is inadvertently exposed in an outbound request that encounters an HTTP redirect. Um invasor que explorasse com êxito essa vulnerabilidade poderia usar as informações para comprometer ainda mais o aplicativo Web.An attacker who successfully exploited this vulnerability could use the information to further compromise the web application. A atualização de segurança resolve a vulnerabilidade corrigindo como os aplicativos .NET Core manipulam os redirecionamentos de HTTP.The security update addresses the vulnerability by correcting how .NET Core applications handles HTTP redirects.

Versão de Manutenção do Visual Studio 2017 versão 15.8.4 -- lançado em 11 de setembro de 2018Visual Studio 2017 version 15.8.4 Service Release -- released on September 11, 2018

CVE-2018-8409 Vulnerabilidade de Ataque de Negação de Serviço do .NET CoreCVE-2018-8409 .NET Core Denial Of Service Vulnerability

Há uma vulnerabilidade de negação de serviço no .NET Core 2.1 quando System.IO.Pipelines manipula solicitações incorretamente.A denial of service vulnerability exists in .NET Core 2.1 when System.IO.Pipelines improperly handles requests. 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.An attacker who successfully exploited this vulnerability could cause a denial of service against an application that is leveraging System.IO.Pipelines. A vulnerabilidade pode ser explorada remotamente, sem autenticação.The vulnerability can be exploited remotely, without authentication. Um invasor não autenticado remoto pode explorar essa vulnerabilidade fornecendo solicitações especialmente criadas para o aplicativo.A remote unauthenticated attacker could exploit this vulnerability by providing specially crafted requests to the application.

CVE-2018-8409 Vulnerabilidade de Ataque de Negação de Serviço do ASP.NET CoreCVE-2018-8409 ASP.NET Core Denial Of Service Vulnerability

Há uma vulnerabilidade de negação de serviço no ASP.NET Core 2.1 que manipula solicitações Web incorretamente.A denial of service vulnerability exists in ASP.NET Core 2.1 that improperly handles web requests. 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.An attacker who successfully exploited this vulnerability could cause a denial of service against an ASP.NET Core web application. A vulnerabilidade pode ser explorada remotamente, sem autenticação.The vulnerability can be exploited remotely, without authentication. Um invasor não autenticado remoto pode explorar essa vulnerabilidade fornecendo solicitações especialmente criadas para o aplicativo do ASP.NET Core.A remote unauthenticated attacker could exploit this vulnerability by providing a specially crafted web requests to the ASP.NET Core application.

Visual Studio 2017 versão 15.8 – lançado em 14 de agosto de 2018Visual Studio 2017 version 15.8 -- released on August 14, 2018

CVE-2018-0952 Vulnerabilidade de Elevação de Privilégio do Coletor Padrão do Hub de DiagnósticoCVE-2018-0952 Diagnostic Hub Standard Collector Elevation of Privilege Vulnerability

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.An elevation of privilege vulnerability exists in a visual studio service, which can lead to system privileges by a non-admin user when writing files. Um invasor que aproveitou essa vulnerabilidade pôde gravar arquivos como sistema tendo apenas o acesso no nível de usuário.An attacker who took advantage of this could write files as system while only having user level access. Esta atualização de segurança resolve esse problema pela representação do usuário atual para validar o acesso ao local do arquivo.This security update addresses this issue by impersonating the current user to validate access to the file location.

Visual Studio 2017 versão 15.8 Versão prévia 4 – lançada em 10 de julho de 2018Visual Studio 2017 version 15.8 Preview 4 -- released on July 10, 2018

CVE-2018-8172 Vulnerabilidade de execução de código remoto do Visual StudioCVE-2018-8172 Visual Studio Remote Code Execution Vulnerability

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 remote code execution vulnerability that can lead to exploitation of a user's machine by opening a specially crafted project, or resource file. 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.The security update addresses the vulnerability by correcting how Visual Studio checks the source markup of a file.

CVE-2018-8260 Vulnerabilidade de execução de código remoto do .NET Framework CVE-2018-8260 .NET Framework Remote Code Execution Vulnerability

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 remote code execution vulnerability exists in .NET software that can lead to exploitation of a user's machine by allowing attackers to run arbitrary code in the context of the current user. A atualização de segurança resolve a vulnerabilidade corrigindo o modo como o .NET verifica a marcação de origem de um arquivo.The security update addresses the vulnerability by correcting how .NET checks the source markup of a file.

CVE-2018-8232 Vulnerabilidade de falsificação do .NET Microsoft Macro AssemblerCVE-2018-8232 .NET Microsoft Macro Assembler Tampering Vulnerability

Vulnerabilidade para falsificação relacionada a validação de código incorreta pelo Microsoft Macro Assembler.Tampering vulnerability related to the Microsoft Macro Assembler improperly validating code. A atualização de segurança resolve a vulnerabilidade, garantindo que o Microsoft Macro Assembler valide a lógica de código adequadamente.The security update addresses the vulnerability by ensuring that Microsoft Macro Assembler properly validates code logic.

CVE-2018-8171 Vulnerabilidade de bypass da funcionalidade de segurança do ASP.NET CoreCVE-2018-8171 ASP.NET Core Security Feature Bypass Vulnerability

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.An ASP.NET Core Security Feature Bypass Vulnerability exists when the number of incorrect login attempts is not validated that can lead to an attacker trying infinite authentication attempts. A atualização resolve a vulnerabilidade, validando o número de tentativas de logon incorretas.The update addresses the vulnerability by validating the number of incorrect login attempts.

Visual Studio 2017 versão 15.8 Versão prévia 3 – lançada em 26 de junho de 2018Visual Studio 2017 version 15.8 Preview 3 -- released on June 26, 2018

CVE-2018-11235 Consultoria de Segurança da Microsoft para vulnerabilidade de segurança do GitCVE-2018-11235 Microsoft Security Advisory for Git Security Vulnerability

Corrigimos uma vulnerabilidade de segurança no Git que foi divulgada pela comunidade do Git.We fixed a security vulnerability in Git that was disclosed by the Git community. A vulnerabilidade pode levar à execução de código arbitrário quando um usuário clona um repositório mal-intencionado.The vulnerability can lead to arbitrary code execution when a user clones a malicious repository.

Visual Studio 2017 versão 15.8 Versão prévia 1 – lançada em 8 de maio de 2018Visual Studio 2017 version 15.8 Preview 1 -- released on May 08, 2018

CVE-2018-0765 Aviso de segurança da Microsoft sobre a vulnerabilidade de ataque de negação de serviço do .NET CoreCVE-2018-0765 Microsoft Security Advisory for .NET Core Denial of Service Vulnerability

  • 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.Microsoft is releasing this security advisory to provide information about a vulnerability in .NET Core and .NET native version 2.0. Esse comunicado também fornece orientação sobre o que os desenvolvedores podem fazer para atualizar seus aplicativos para remover essa vulnerabilidade.This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.
  • 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.Microsoft is aware of a denial of service vulnerability that exists when .NET Framework and .NET Core improperly process XML documents. 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.An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Framework, .NET Core, or .NET native application.
  • A atualização resolve a vulnerabilidade corrigindo como o .NET Framework, .NET Core e aplicativos nativos do .NET manipulam o processamento de documentos XML.The update addresses the vulnerability by correcting how .NET Framework, .NET Core, and .NET native applications handle XML document processing.
  • É recomendável atualizar para o ASP.NET Core 2.0.8. se o aplicativo for do ASP.NET Core.If your application is an ASP.NET Core application, developers are also advised to update to ASP.NET Core 2.0.8.

Release Notes Icon Visual Studio 2017 versão 15.8.1Visual Studio 2017 version 15.8.1

lançado em 17 de agosto de 2018released on August 17, 2018

Principais problemas corrigidos no 15.8.1Top Issues Fixed in 15.8.1

Estes são os problemas resolvidos no 15.8.1:These are the issues addressed in 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.Fixed an issue where Visual Studio would close unexpectedly when a browser window was closed while debugging a Web project.

Release Notes Icon Visual Studio 2017 versão 15.8.2Visual Studio 2017 version 15.8.2

lançado em 28 de agosto de 2018released on August 28, 2018

Principais problemas corrigidos no 15.8.2Top Issues Fixed in 15.8.2

Estes são os problemas relatados por clientes e solucionados na 15.8.2:These are the customer-reported issues addressed in 15.8.2:


Release Notes Icon Visual Studio 2017 versão 15.8.3Visual Studio 2017 version 15.8.3

lançado em 6 de setembro de 2018released on September 6, 2018

Principais problemas corrigidos no 15.8.3Top Issues Fixed in 15.8.3

Estes são os problemas relatados por clientes e solucionados na 15.8.3:These are the customer-reported issues addressed in 15.8.3:


Release Notes Icon Visual Studio 2017 versão 15.8.4Visual Studio 2017 version 15.8.4

lançado em 11 de setembro de 2018released on September 11, 2018

Principais problemas corrigidos na versão 15.8.4Top Issues Fixed in 15.8.4

Estes são os problemas relatados por clientes e solucionados na versão 15.8.4:These are the customer-reported issues addressed in 15.8.4:


Release Notes Icon Visual Studio 2017 versão 15.8.5Visual Studio 2017 version 15.8.5

lançado em 20 de setembro de 2018released on September 20, 2018

Resumo das Novidades na 15.8.5Summary of What's New in 15.8.5

  • Agora as Ferramentas do Visual Studio para Xamarin dão suporte a Xcode 10.Visual Studio Tools for Xamarin now supports Xcode 10.

Principais problemas corrigidos na versão 15.8.5Top Issues Fixed in 15.8.5

Estes são os problemas relatados por clientes e solucionados na versão 15.8.5:These are the customer-reported issues addressed in 15.8.5:

Detalhes das novidades na versão 15.8.5Details of What's New in 15.8.5

Ferramentas do Visual Studio para XamarinVisual Studio Tools for 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.Visual Studio Tools for Xamarin now supports Xcode 10 that allows you to build and debug apps for iOS 12, tvOS 12, and 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.See how to get ready for iOS 12 and our introduction to iOS 12 for more details on the new features available.


Release Notes Icon Versão do Visual Studio 2017 versão 15.8.6Visual Studio 2017 version 15.8.6

lançado em 02 de outubro de 2018released on October 02, 2018

Resumo das Novidades na 15.8.6Summary of What's New in 15.8.6

Principais problemas corrigidos na versão 15.8.6Top Issues Fixed in 15.8.6

Estes são os problemas relatados por clientes e solucionados na 15.8.6:These are the customer-reported issues addressed in 15.8.6:

Detalhes das novidades na versão 15.8.6Details of What's New in 15.8.6

O mais recente SDK do Windows 10 para desenvolvedores da Plataforma Universal do WindowsLatest Windows 10 SDK for Universal Windows Platform developers

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.The latest Windows 10 SDK (build 17763) is now available as an optional component for the Universal Windows Platform development workload. Marque a caixa de seleção Windows 10 SDK (10.0.17763.0) para adicionar esse SDK à carga de trabalho.You can add this SDK to the workload by selecting the Windows 10 SDK (10.0.17763.0) checkbox.


Release Notes Icon Visual Studio 2017 versão 15.8.7Visual Studio 2017 version 15.8.7 New Release icon

lançado em 10 de outubro de 2018released on October 10, 2018

Novidades na 15.8.7What's New in 15.8.7

Azure DevOpsAzure DevOps

O Visual Studio Team Services agora é o Azure DevOps.Visual Studio Team Services is now Azure DevOps! Você verá essa nova identidade visual no Team Explorer e nas referências no Visual Studio.You will see this new branding in Team Explorer and in references across Visual Studio.


Problemas conhecidosKnown Issues

Veja todos os problemas atuais conhecidos e as soluções alternativas disponíveis no Visual Studio 2017 versão 15.8.See all existing known issues and available workarounds in Visual Studio 2017 version 15.8.

Visual Studio 2017 Known Issues


ComentáriosFeedback

Adoraríamos ouvir sua opinião!We would love to hear from you! 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.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. OThe Feedback Icon está localizado no canto superior direito.icon is located in the upper right-hand corner. Você pode acompanhar os problemas na Comunidade de Desenvolvedores do Visual Studio, em que você pode fazer perguntas e encontrar respostas.You can track your issues in the Visual Studio Developer Community, where you can ask questions and find answers. Você também pode fazer uma sugestão de produto por meio de UserVoice ou obter ajuda de instalação gratuita por meio de nosso suporte via chat ao vivo.You can also make a product suggestion through UserVoice or get free installation help through our Live Chat support.


BlogsBlogs

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.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.

Developer Tools Blogs


Histórico de Notas de Versão do Visual Studio 2017Visual Studio 2017 Release Notes History

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.For more information relating to past versions of Visual Studio 2017, see the Visual Studio 2017 Release Notes History page.


Início da página
Top of Page