Visual Studio Icon Notas de la versión 15.8 de Visual Studio 2017Visual Studio 2017 version 15.8 Release Notes


| Comunidad de desarrolladores | Requisitos del sistema | Compatibilidad | Código distribuible | Términos de licencia | Blogs | Problemas conocidos || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


Nota

Si accede a esta página desde una versión de idioma distinta del inglés y quiere ver el contenido más actualizado, visite la página Notas de la versión en 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. Para cambiar el idioma de esta página, haga clic en el icono de globo del pie de página y seleccione el idioma que desee.You can change the language of this page by clicking the globe icon in the page footer and selecting your desired language.


Haga clic en un botón para descargar la última versión de Visual Studio 2017.Click a button to download the latest version of Visual Studio 2017. Para obtener instrucciones sobre cómo instalar y actualizar Visual Studio 2017, vea Actualizar Visual Studio 2017 a la versión más reciente.For instructions on installing and updating Visual Studio 2017, see the Update Visual Studio 2017 to the most recent release. Consulte también las instrucciones sobre cómo efectuar una instalación sin conexión.Also, see instructions on how to install offline.

Visite la página visualstudio.microsoft.com/downloads para descargar otros productos de Visual Studio 2017.Visit the visualstudio.microsoft.com/downloads page to download other Visual Studio 2017 products.


Novedades de la versión 15.8What's New in 15.8

El blog de Visual Studio es la fuente oficial de información sobre el producto de la mano del equipo de ingeniería de Visual Studio.The Visual Studio Blog is the official source of product insight from the Visual Studio Engineering Team. Encontrará información detallada sobre la versiones 15.8 de Visual Studio en estas publicaciones:You can find in-depth information about the Visual Studio 15.8 releases in the following posts:

Versiones de la versión 15.8 de Visual Studio 2017Visual Studio 2017 version 15.8 Releases

Anuncios sobre la versión 15.8 de Visual Studio 2017Visual Studio 2017 version 15.8 Announcements


Resumen de las nuevas características importantes de la versión 15.8Summary of Notable New Features in 15.8


Principales problemas corregidos en la versión 15.8Top Issues Fixed in 15.8

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8:These are the customer-reported issues addressed in 15.8:

Release Notes Icon Avisos de seguridad de Visual Studio 2017, versión 15.8 Preview 4Visual Studio 2017 version 15.8 Preview 4 Security Advisory Notices

Actualizado el 10 de julio de 2018updated July 10, 2018

CVE-2018-8172 Vulnerabilidad de ejecución remota de código de Visual StudioCVE-2018-8172 Visual Studio Remote Code Execution Vulnerability

  • Vulnerabilidad de ejecución remota de código que podía dar lugar a la explotación del equipo de un usuario al abrir un proyecto especialmente diseñado, o archivo de recursos.A remote code execution vulnerability that can lead to exploitation of a user's machine by opening a specially crafted project, or resource file. La actualización de seguridad soluciona la vulnerabilidad al corregir la forma en que Visual Studio comprueba el marcado de origen de un archivo.The security update addresses the vulnerability by correcting how Visual Studio checks the source markup of a file. Para obtener más información, vea el artículo del Centro de respuesta de seguridad de Microsoft (CVE-2018-8172).For more information, see Microsoft Security Response Center article (CVE-2018-8172).

CVE-2018-8260 Vulnerabilidad de ejecución remota de código de .NET FrameworkCVE-2018-8260 .NET Framework Remote Code Execution Vulnerability

  • Vulnerabilidad de ejecución remota de código en el software de .NET que podía dar lugar a la explotación del equipo de un usuario al permitir a los atacantes ejecutar código arbitrario en el contexto del usuario actual.A remote code execution vulnerability exists in .NET software which can lead to exploitation of a user's machine by allowing attackers to run arbitrary code in the context of the current user. La actualización de seguridad soluciona la vulnerabilidad al corregir la forma en que .NET comprueba el marcado de origen de un archivo.The security update addresses the vulnerability by correcting how .NET checks the source markup of a file. Para obtener más información, vea el artículo del Centro de respuesta de seguridad de Microsoft (CVE-2018-8260).For more information, see Microsoft Security Response Center article (CVE-2018-8260).

CVE-2018-8232 Vulnerabilidad de manipulación del macroensamblador de Microsoft de .NETCVE-2018-8232 .NET Microsoft Macro Assembler Tampering Vulnerability

  • Vulnerabilidad de manipulación relacionada con la validación incorrecta de código por parte del macroensamblador de Microsoft.Tampering vulnerability related to the Microsoft Macro Assembler improperly validating code. La actualización de seguridad soluciona la vulnerabilidad al garantizar que el macroensamblador de Microsoft valide correctamente la lógica del código.The security update addresses the vulnerability by ensuring that Microsoft Macro Assembler properly validates code logic. Para obtener más información, vea el artículo del Centro de respuesta de seguridad de Microsoft (CVE-2018-8232).For more information, see Microsoft Security Response Center article (CVE-2018-8232).

CVE-2018-8171 Vulnerabilidad de omisión de características de seguridad de ASP.NET CoreCVE-2018-8171 ASP.NET Core Security Feature Bypass Vulnerability

  • Vulnerabilidad de omisión de características de seguridad de ASP.NET Core que consistía en que no se validaba el número de intentos incorrectos de inicio de sesión, lo que podía dar lugar a que un atacante realizase infinitos intentos de autenticación.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. La actualización soluciona la vulnerabilidad al validar el número de intentos de inicio de sesión incorrectos.The update addresses the vulnerability by validating the number of incorrect login attempts. Para obtener más información, vea el Centro de respuesta de seguridad de Microsoft (CVE-2018-8171).For more information, see Microsoft Security Response Center (CVE-2018-8171).

Release Notes Icon Aviso de seguridad de Visual Studio 2017, versión 15.8 Preview 3Visual Studio 2017 version 15.8 Preview 3 Security Advisory Notice

Actualizado el 26 de junio de 2018updated June 26, 2018

CVE-2018-11235 Aviso de seguridad de Microsoft sobre vulnerabilidad de la seguridad de GitCVE-2018-11235 Microsoft Security Advisory for Git Security Vulnerability

Release Notes Icon Aviso de seguridad de Visual Studio 2017, versión 15.8 Preview 1Visual Studio 2017 version 15.8 Preview 1 Security Advisory Notice

Actualizado el 08 de mayo de 2018updated May 08, 2018

CVE-2018-0765 Aviso de seguridad de Microsoft sobre una vulnerabilidad de denegación de servicio de .NET CoreCVE-2018-0765 Microsoft Security Advisory for .NET Core Denial of Service Vulnerability

  • Microsoft publica este aviso de seguridad para proporcionar información sobre una vulnerabilidad de la versión nativa 2.0 de .NET Core y .NET.Microsoft is releasing this security advisory to provide information about a vulnerability in .NET Core and .NET native version 2.0. En este aviso también se proporcionan instrucciones sobre qué deben hacer los desarrolladores para eliminar esta vulnerabilidad.This advisory also provides guidance on what developers can do to update their applications to remove this vulnerability.
  • Microsoft es consciente de una vulnerabilidad de denegación de servicio que se produce cuando .NET Framework y .NET Core procesan documentos XML de forma incorrecta.Microsoft is aware of a denial of service vulnerability that exists when .NET Framework and .NET Core improperly process XML documents. Un atacante que aprovechase correctamente esta vulnerabilidad podría producir una denegación de servicio en una aplicación nativa de .NET Framework, .NET Core o .NET.An attacker who successfully exploited this vulnerability could cause a denial of service against a .NET Framework, .NET Core, or .NET native application.
  • En la actualización se elimina la vulnerabilidad corrigiendo la forma de controlar el procesamiento de documentos XML por parte de las aplicaciones nativas de .NET Framework, .NET Core y .NET.The update addresses the vulnerability by correcting how .NET Framework, .NET Core, and .NET native applications handle XML document processing.
  • En el caso de las aplicaciones de ASP.NET Core, también se aconseja a los desarrolladores que hagan la actualización a la versión 2.0.8 de 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.

Detalles de las novedades de la versión 15.8Details of What's New in 15.8

Release Notes Icon Versión 15.8.0 de Visual Studio 2017Visual Studio 2017 version 15.8.0

Publicada el 15 de agosto de 2018released on August 15, 2018

InstalaciónInstall

Ahora tiene la opción de descargar todos los archivos de instalación antes de iniciar la instalación.You now have the option to download all installation files before starting your installation.

  • Para usar esta nueva opción, seleccione la opción "Download all, then install" (Descargar todo e instalar después) en el instalador (figura 1).To use this new option, select the "Download all, then install" option in the installer (Figure 1). Se recomienda esta opción si tiene una conexión a Internet más lenta.We suggest this option if you have a slower internet connection.
  • La opción predeterminada sigue siendo "Install while downloading" (Instalar durante la descarga), que descarga e instala en paralelo.The default option remains "Install while downloading", which downloads and installs in parallel.
Download, then install option
(Figura 1) Opción Download, then install (Descargar todo e instalar después)(Figure 1) Download, then install option

RendimientoPerformance

Esta versión contiene las siguientes mejoras en el rendimiento:This release contains the following performance improvements:

  • La conmutación de rama para proyectos de C#, VB y C++ es mucho más rápida para las soluciones de gran tamaño, porque ya no se requiere recargar la solución.Branch switching for C#, VB, and C++ projects is much faster for large solutions since solution reload is no longer required.
  • El tiempo para descargar y recargar un pequeño conjunto de proyectos de C# y VB en soluciones de gran tamaño se redujo de minutos a varios 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.
  • Se agregó una opción para deshabilitar la reapertura de documentos que se abrieron en la sesión anterior, porque reabrir ciertos tipos de archivos o diseñadores puede retrasar la carga de la solución.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.
    • Puede alternar esta opción en Herramientas > Opciones > Proyectos > Soluciones > General.Toggle this option in Tools > Options > Projects > Solutions > General.

Rendimiento de las pruebasTest Performance

Se mejoró considerablemente el rendimiento al ejecutar algunas pruebas en una solución de gran tamaño con varios proyectos de prueba.We significantly improved performance when running a few tests in a large solution with multiple test projects. En nuestros laboratorios, una solución con más de 10 000 MSTests ejecutó una prueba única hasta más de un 82 % más rápido.In our labs, a solution with over 10,000 MSTests executed a single test up to 82% faster!

Mejora en el rendimiento de Visual BasicVisual Basic Performance Improvement

Visual Basic ahora proporciona una mejora importante en el rendimiento cuando se usa el patrón CInt(Fix(number)) para convertir desde tipos no enteros a enteros.Visual Basic now provides a significant performance improvement when using the pattern CInt(Fix(number)) to convert from non-integer types to integers.

Generación de perfiles de rendimientoPerformance Profiling

Esta versión contiene las siguientes mejoras en la generación de perfiles de rendimiento:This release contains the following performance profiling enhancements:

  • Se agregó la funcionalidad para iniciar la generación de perfiles en pausa:We added the capability to start profiling paused:

    • La herramienta de uso de la CPU del Generador de perfiles de rendimiento (ALT-F2) ahora se puede iniciar en pausa (figura 2).The CPU Usage tool in the Performance Profiler (ALT-F2) can now start paused (Figure 2). Esto puede ser útil cuando tarda un rato en recuperarlas a un escenario digno de una investigación del uso de la CPU.This can be useful when it takes a while to get to a scenario worthy of a CPU Usage investigation. Al iniciar la colección del uso de la CPU deshabilitada, el Generador de perfiles de rendimiento no recopilará datos de la pila de muestras de uso de la CPU hasta que se habilite específicamente.By starting the CPU usage collection disabled, the Performance Profiler will not collect any CPU usage sample stack data until it is specifically enabled. Esto hace que la cantidad de datos resultante que se va a recopilar y analizar sea mucho más pequeña, lo que hace que las investigaciones de rendimiento sean más eficaces.This makes the resultant amount of data much smaller to collect and analyze, thus making your performance investigations more efficient.
    • Para iniciar una sesión con la colección de muestras del uso de la CPU deshabilitada, haga clic en el icono de configuración (engranaje) junto a la herramienta de Uso de CPU en la página de inicio del Generador de perfiles de rendimiento para mostrar la página de propiedades de Uso de CPU y, luego, desactive la casilla de verificación etiquetada como Enable CPU Profiling (Sampling) (Habilitar la generación de perfiles de CPU [muestreo]).To start a session with CPU Usage sample collection disabled, click the settings (gear) icon next to the CPU Usage tool in the Performance Profiler launch page to display the CPU Usage property page, then uncheck the checkbox labeled Enable CPU Profiling (Sampling). Por último, presione Aceptar para guardar la configuración.Finally, press OK to save the settings.
    CPU Usage Tool settings page
    (Figura 2) Configuración de la herramienta Uso de CPU(Figure 2) CPU Usage Tool Settings
    \* Una vez que inicia la aplicación de destino (al presionar el botón Iniciar en la página de inicio del Generador de perfiles de rendimiento), verá una pantalla de supervisión en la que se muestra el gráfico de uso de la CPU \*(Figura 3)\* que permite controlar la generación de perfiles de la CPU. \* Once you start the target application (by pressing the Start button in the Performance Profiler launch page), you'll see a monitoring display showing the CPU utilization graph \*(Figure 3)\* that allows you to control the CPU profiling. Para habilitar la colección de datos de la pila de muestras de uso de CPU, presione el vínculo **Enable CPU profiling** (Habilitar la generación de perfiles de CPU) que aparece en la mitad de la vista, o bien haga clic en el botón **Record CPU Profile** (Registrar perfil CPU) justo debajo del gráfico de uso de CPU.To enable CPU usage sample stack data collection, press the **Enable CPU profiling** link in the middle of the view, or click the **Record CPU Profile** button just below the CPU utilization graph. Puede hacer clic en el botón **Record CPU Profile** (Registrar perfil CPU) para habilitar o deshabilitar la colección de datos de muestras tantas veces como quiera.You can click the **Record CPU Profile** button to enable/disable sample data collection as many times as you like. El color del gráfico de uso de la CPU cambia para indicar si la colección de muestras está habilitada o deshabilitada en ese momento determinado.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) Vista de supervisión de la herramienta Uso de CPU(Figure 3) CPU Usage Tool Monitoring View
  • Se agregó una herramienta para el seguimiento de asignación de objetos de .NET:We added a .NET Object Allocation Tracking tool:

    • La herramienta de seguimiento de asignación de objetos de .NET se une a la familia de herramientas disponibles en el Generador de perfiles de rendimiento.The .NET Object Allocation Tracking Tool joins the family of tools available from the Performance Profiler. Invocar esta herramienta para una sesión del generador de perfiles de rendimiento genera la colección de un seguimiento de la pila de cada asignación de objeto de .NET que se produce en la aplicación de destino.Invoking this tool for a performance profiler session causes the collection of a stack trace for every .NET object allocation that occurs in the target application. Estos datos de la pila se analizan junto con la información de tamaño y tipo de objeto para revelar detalles de la actividad de memoria de la aplicación.This stack data is analyzed along with object type and size information to reveal details of the memory activity of your application. Puede determinar rápidamente los patrones de asignación en el código y también identificar las anomalías.You can quickly determine the allocation patterns in your code and identify anomalies as well. Además, para los eventos de Recolección de elementos no utilizados (GC), un usuario puede determinar fácilmente los objetos que se recolectaron y conservaron, determinando con rapidez los tipos de objeto que dominan el uso de memoria por parte de la aplicación.In addition, for Garbage Collection (GC) events, one can easily determine which objects were collected and retained, quickly determining object types which dominate the memory usage of the application.
    • Esto resulta especialmente útil para los escritores de API con el fin de ayudar a minimizar las asignaciones.This is especially useful for API writers to help minimize allocations. Muchas aplicaciones saturarán los límites del búfer que participa en la colección de datos de diagnóstico, pero las aplicaciones de prueba pequeñas que ejercen escenarios clave de una API también se pueden diagnosticar.A lot of 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. Mientras la aplicación de prueba se ejecuta, el Generador de perfiles de rendimiento muestra una vista de supervisión con un gráfico de líneas de Objetos activos (recuento), así como un gráfico de barras de Diferencias de objetos (% de cambio).While your test application is executing, the Performance Profiler displays a monitoring view with a line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.
    • Para usar la herramienta Seguimiento de asignación de objetos de .NET, muestre la página de inicio del Generador de perfiles de rendimiento (figura 4), abra un destino para el perfil (el destino predeterminado es el proyecto de inicio de la solución), active Seguimiento de asignación de objetos de .NET en la lista de herramientas disponibles y presione el botón 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 from the list of available tools, then press the Start button.
    Performance Profiler launch page
    (Figura 4) Página de inicio del Generador de perfiles de rendimiento(Figure 4) Performance Profiler Launch Page

Generación de perfiles de rendimiento (Uso de CPU)Performance Profiling (CPU Usage)

Esta versión contiene las siguientes mejoras en la herramienta Uso de CPU del Generador de perfiles de rendimiento (disponible a través de ALT-F2):This release contains the following improvements to the CPU Usage tool of the Performance Profiler (available through ALT-F2):

  • La vista Árbol de llamadas ahora muestra la ejecución asincrónica por pila de llamadas lógicas de manera predeterminada.The Call Tree view now displays asynchronous execution by logical call stack by default. Para desactivar este comportamiento, desactive la opción "Stitch Async Code" (Unir el código asincrónico) en el menú desplegable Filtro de la vista principal de Uso de CPU.You can turn off this behavior by unchecking the option "Stitch Async Code" in the Filter dropdown of the CPU Usage main view.
  • Se agregó una vista Módulos/funciones que muestra la información de rendimiento por módulo (dll) y por función dentro de un módulo.Added a Modules/Functions view which displays performance information by module (dll) and by function within a module. El usuario puede mostrar la vista Módulos/funciones desde el menú contextual disponible cuando se selecciona una función en la vista principal de Uso de CPU o desde el menú desplegable Ver en las vistas Árbol de llamadas o Llamador y destinatario.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.
  • Se agregó la "indicación de instancia" al gráfico Uso de CPU en la vista principal de la herramienta Uso de CPU.Added 'instance indication' to the CPU Usage graph in the CPU Usage tool's main view. Puede ver las instancias cuando se ejecuta una función (por ejemplo, en la pila) si hace doble clic en una función que aparece en cualquiera de las vistas de Uso de 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.

ProductividadProductivity

Esta versión contiene las siguientes mejoras en la productividad:This release contains the following productivity enhancements:

  • Puede realizar una limpieza de código adicional con Dar formato al documento (Ctrl + K, D o Ctrl + E, D) para el desarrollo de C#.You can perform additional code cleanup with Format Document (Ctrl + K, D or Ctrl + E, D) for C# development. Para configurar la limpieza, vaya a Herramientas > Opciones > Editor de texto > C# > Estilo de código > Formato > General.Configure cleanup by going to Tools > Options > Text Editor > C# > Code Style > Formatting > General.
  • Se agregaron más acciones rápidas y refactorizaciones mediante Ctrl + .We added more refactorings and quick actions using Ctrl + . o Alt + ENTRAR:or Alt + Enter:
    • Invert If le permite invertir la lógica en las instrucciones if-else.Invert If enables you to invert your logic in if-else statements. Coloque el cursor en la palabra clave if para desencadenar esta refactorización.Place your cursor in the if keyword to trigger this refactoring.
    • Add parameter from method callsite (Agregar parámetro desde el sitio de la llamada del método) permite agregar un parámetro a un método si agrega un argumento a un sitio de la llamada del método y desencadena Acciones rápidas y refactorizaciones.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.
    • Remove unnecessary parentheses (Quitar los paréntesis no necesarios) quita los paréntesis alrededor de los operadores binarios que no son fundamentales para la compilación.Remove unnecessary parentheses removes parentheses around binary operators that are not essential for compilation. Puede configurar esta regla de estilo a través de Herramientas > Opciones > Editor de texto > C# > Estilo de código > General o en .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
    • Use ternary conditionals in assignments and return statements (Uso de condicionales ternarias en asignaciones e instrucciones de devolución) también se puede configurar como una regla de estilo en Herramientas > Opciones > ... o a través 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
  • Se agregaron nuevos comandos y mejoras a la ventana Ir a todo:We added new commands and improvements to the Go To All window:
    • Go to Enclosing Block (Ir a bloque de inclusión) (Ctrl + Alt + FlechaArriba) permite navegar rápidamente hasta el inicio del bloque de código de inclusión.Go to Enclosing Block (Ctrl + Alt + UpArrow) allows you to quickly navigate up to the beginning of the enclosing code block.
    • Go to Next/Previous Issue (Ir al problema siguiente/anterior) (Alt + RePág/AvPág) permite pasar al problema siguiente o al anterior (error, subrayado ondulado, bombilla).Go to Next/Previous Issue (Alt + PgUp/PgDn) allows you to skip to the next/previous issue (error, squiggle, lightbulb).
    • Go to Member (Ir a miembro) (Ctrl + T, M) ahora tiene como ámbito el archivo de manera predeterminada.Go to Member (Ctrl + T, M) is now scoped to the file by default. Puede cambiar el valor predeterminado de vuelta a la solución si cambia el ámbito a Documento actual (Ctrl + Alt + C).You can change the default back to solution by toggling the Scope to Current Document (Ctrl + Alt + C).
  • Ahora puede crear puntos de inserción y selecciones en varias ubicaciones arbitrarias de un archivo con compatibilidad para varios símbolos de inserción.You can now create insertion points and selections at multiple, arbitrary locations in a file with multiple caret support. Esto permite agregar, editar o eliminar texto de manera simultánea en varios lugares.This allows you to add, edit, or delete text in multiple places simultaneously.
    • Inserte símbolos de inserción con Ctrl + Alt + clic con el botón izquierdo.Insert carets with Ctrl + Alt + LeftMouseClick.
    • Agregue una selección y un símbolo de inserción en la ubicación siguiente que coincida con la selección actual con Mayús + Alt + Ins.Add a selection and caret at next location that matches current selection with Shift + Alt + Ins.
    • Consulte Editar > Varios símbolos de inserción para ver una lista completa de las acciones.See Edit > Multiple Carets for full list of actions.
  • Acceso al menú de navegación contextual con Alt + `.Access a contextual navigation menu with Alt + `.
  • Los enlaces de teclado deben ser coherentes con dos perfiles de teclado nuevos: Visual Studio Code y ReSharper (Visual Studio).Keep your keybindings consistent with two new keyboard profiles: Visual Studio Code and ReSharper (Visual Studio). Estos esquemas puede encontrarlos en Herramientas > Opciones > General > Teclado y con el menú desplegable superior.You can find these schemes under Tools > Options > General > Keyboard and using the top drop-down menu.

DepuraciónDebugging

Esta versión contiene las siguientes mejoras en la depuración:This release contains the following debugging enhancements:

  • Cuando hay más de una instancia de Visual Studio 2017 instalada, ahora se puede seleccionar en qué instancia implementar la extensión cuando realice la depuración (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). Así, puede desarrollar en el canal de la versión de Visual Studio, por ejemplo, mientras depura en el canal de la versión preliminar.That way you can develop in the e.g. the Visual Studio release channel while debugging in the preview channel.
Select your debug instance
(Figura 5) Selección de la instancia de depuración(Figure 5) Select debug instance
\* Ahora puede adjuntar Snapshot Debugger directamente desde la página Resumen de publicación _(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) Snapshot Debugger adjunto desde Resumen de publicación(Figure 6) Attach Snapshot Debugger from Publish Summary

Herramientas para desarrolladores de Plataforma universal de WindowsTools for Universal Windows Platform Developers

Realizamos muchas mejoras importantes en el Diseñador de XAML para los proyectos destinados a la Plataforma universal de Windows con una versión de plataforma de destino de Windows 10 Fall Creators Update (compilación 16299) o 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.

  • Las colecciones ahora se pueden editar en el inspector de propiedad.Collections can now be edited in the Property Inspector.
  • El diseñador ahora permite editar plantillas y estilos, incluso cuando las definiciones de esas entidades se definen en otros documentos.The designer now allows Templates and Styles to be edited, including when the definitions for those entities are defined in other documents.
  • Las propiedades de tipo IconElement (como un icono en un elemento AppBarButton) ahora tienen un editor personalizado en el inspector de propiedad para que sea más sencillo establecer estas propiedades.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.
  • El diseñador, el editor y Editar y continuar ahora deberían funcionar correctamente con x:DefaultBindMode.The designer, editor and Edit and Continue should all now work correctly with x:DefaultBindMode.
  • La experiencia de Visual State Manager en Blend ahora admite AdaptiveTrigger.The Visual State Manager experience in Blend now supports AdaptiveTrigger.

Herramientas de F# 4.5 y F# para Visual Studio F# 4.5 and F# Tools for Visual Studio

En este lanzamiento se presenta la versión 4.5 del lenguaje F#.We introduced the F# language version 4.5 with this release. Esto también se corresponde con la nueva familia 4.5.x de FSharp.Core (la biblioteca principal de F#).This also corresponds with the new 4.5.x family of FSharp.Core (the F# core library). Puede leer las especificaciones de cada uno de estos cambios en el repositorio RFC de F#.You can read the specs for each of these changes in the F# RFC repository. Con esta versión, también hay muchas mejoras en las herramientas de F# para Visual Studio.There are also many improvements to F# tools for Visual Studio with this release.

F# 4.5F# 4.5

Estos son algunos de los aspectos destacados de la versión 4.5 del lenguaje F#:Here are the some of the highlights with the F# language version 4.5:

Compatibilidad con Span<'T>Span<'T> support

Se implementó Span<'T> y características relacionadas para que el consumo eficaz y la producción de API con construcciones similares a Span, Memory y ref sean posibles con 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#. Entre las características de esto se incluyen:The features for this include:

  • Nuevo tipo voidptr.New voidptr type.
  • Nuevas funciones NativePtr.ofVoidPtr y NativePtr.toVoidPtr en FSharp.Core.New NativePtr.ofVoidPtr and NativePtr.toVoidPtr functions in FSharp.Core.
  • Nuevos tipos inref<'T> y outref<'T>, que son byrefs de solo lectura y byrefs de solo escritura, respectivamente.New types inref<'T> and outref<'T>, which are readonly byrefs and write-only byrefs, respectively. Se corresponde con in ref y out ref en C#.This correspond to in ref and out ref in C#.
  • La capacidad de generar estructuras ByRefLike (como Span y ReadOnlySpan).The ability to produce ByRefLike structs (such as Span and ReadOnlySpan).
  • La capacidad de generar estructuras IsReadOnly.The ability to produce IsReadOnly structs.
  • La desreferencia implícita de devoluciones de byref y inref desde los métodos.Implicit dereference of byref- and inref-returns from methods.
  • La capacidad de generar miembros de extensión en byref/inref/outref.The ability to produce extension members on byref/inref/outref.

Este conjunto de características corrige un error en el diseño inicial de las devoluciones de byref en F# 4.1, donde las funciones, los métodos y las propiedades que devuelven byrefs no desreferenciaban implícitamente el valor devuelto.This feature set fixes a bug in the initial design of byref-returns in F# 4.1, where functions, methods, and properties returning byrefs were not implicitly dereferencing the return value. Este cambio se hizo para que la característica esté alineada con la manera en que C# controla las devoluciones de ref.We make this change to bring the feature in-line with how C# handles ref-returns. Se usa un mensaje de error cuando una anotación de tipo indica que ahora se usa una desreferencia implícita de una devolución de ref.An error message is used when a type annotation indicates that an implicit dereference of a ref-return is now used.

Además, este conjunto de características también corrige un error en el compilador de F# donde era posible el "reemplazo de una estructura peligrosa", es decir, llamar a un método en una estructura de F# podía reemplazar la estructura real a la que se llamaba por una distinta.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 being called with a different one. El parámetro this de una estructura ahora se considera inref<MyStruct>, con un error que sugiere agregar un campo mutable si desea modificar la estructura.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.

Puede obtener más información sobre las construcciones similares a span y ref en RFC para este conjunto de características.You can learn more about span and ref-like constructs in the RFC for this feature set.

Match! en expresiones de cálculoMatch! in computation expressions

F# 4.5 presenta match!, una palabra clave nueva para usarla dentro de expresiones de cálculo, una contribución completa de John Wostenberg.F# 4.5 introduces match!, a new keyword for use within computation expressions, contributed entirely by John Wostenberg. Esta simplificación sintáctica equivale a let! seguido de match en el resultado.This syntactic sugar is equivalent to a let! followed by a match on the result. Puede obtener más información en RFC para match!.You can learn more in the RFC for match!.

Relajo en la necesidad de conversión a tipo básico con yield en expresiones de secuencia, lista y matrizRelaxing the need to upcast with yield in sequence, list, and array expressions

F# 4.5 ahora relaja algunos casos en los que la conversión a tipo básico cuando se usaba yield era necesaria para convertir un subtipo en un supertipo.F# 4.5 now relaxes some cases where an upcast when using yield was required to convert a subtype into a supertype. Esta restricción había dejado de ser necesaria para estas expresiones desde F# 3.1 cuando no se usaba yield, por lo que esta mejora es más coherente con el comportamiento que ya existe.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. Puede obtener más información sobre esta característica en RFC.You can learn more in the RFC for this feature.

Sangría permitida en corchetes de matriz y listaPermitting undentation on list and array brackets

F# 4.5 ahora relaja la regla de sangría para corchetes de matriz y lista que requerían la aplicación de sangría un ámbito hacia adelante cuando estaban en su propia línea.F# 4.5 now relaxes the indentation rule for list and array brackets that required then to be indented one scope forward when on their own line. Este requisito anterior siempre ha sido muy confuso, particularmente para usuarios principiantes de F#.This previous requirement has always been quite confusing, especially for beginners to F#. Además, no se requiere para las expresiones de secuencia de F#.Additionally, it is not required for F# sequence expressions. Este cambio hace que las expresiones de lista y matriz tengan el mismo estado coherente que las expresiones de secuencia.This now brings array and list expressions to the same consistent state as sequence expressions. Puede obtener más información sobre esta característica en RFC.You can learn more in the RFC for this feature.

Casos de enumeración emitidos como públicosEnum cases emitted as public

F# 4.5 ahora emite casos de enumeración como públicos en todas circunstancias, para alinearlos con cómo C# emite los casos de enumeración.F# 4.5 now emits enumeration cases as public under all circumstances, to align with how C# emits enumeration cases. Esto también facilita que las herramientas de generación de perfiles analicen los registros de código F#, donde se emitió el valor en lugar del nombre de la etiqueta.This also makes it easier for profiling tools to analyze logs from F# code, where the value rather than the label name was emitted. Puede obtener más información sobre esta característica en RFC.You can learn more in the RFC for this feature.

Mejoras del compilador de F#F# Compiler Improvements

Las mejoras del compilador de F# además de las características de lenguaje anteriormente mencionadas están en F# 4.5.Improvements to the F# compiler in addition to the previously-mentioned language features are in F# 4.5. Se incluyen los siguientes:These include:

  • Se mejoró el trabajo de rendimiento del compilador al quitar hasta un 2,2 % de todas las asignaciones del compilador de F# (en diversos escenarios).We improved compiler performance work by removing up to 2.2% of all allocations in the F# compiler (under various scenarios).
  • Se corrigió un error que resultaba en AccessViolatioNException cuando se usaba yield! con enumerables basados en estructura.A bug resulting in an AccessViolatioNException when using yield! with struct-based enumerables has been fixed.
  • Ahora es posible volver a heredar de FSharpFunc.It is now possible to inherit from FSharpFunc again.
  • Las llamadas de cola están deshabilitadas de manera predeterminada para las compilaciones de depuración de F# para .NET Core.Tail calls are disabled by default for debug builds of F# for .NET Core. Están habilitadas para la versión, con lo que coinciden con el compilador de F# de escritorio.They are enabled for release, thus matching the desktop F# compiler.
  • Se corrigió la normalización de la referencia de F# para permitirle controlar las referencias de ensamblado transitivas escritas en un archivo de salida.F# reference normalization has been fixed to allow you to control transitive assembly references written to an output file. Esto le permite realizar el equivalente del redireccionamiento de ensamblado de .NET Core.This allows you to perform the equivalent of assembly redirection on .NET Core.
  • Se corrigió un error donde se omitía el mensaje de error usado al intentar usar la invocación dinámica en las funciones insertadas.A bug has been fixed where the error message used when attempting to use dynamic invocation on inline functions was ignored. El mensaje de error ahora se propaga.The error message now propagates.
  • F# ahora respeta la marca WarningsNotAsErrors que puede establecer en los archivos del proyecto.F# now respects the WarningsNotAsErrors flag that you can set in project files.
  • Isaac Abraham actualizó el mensaje de error que aparece cuando las ramas de una coincidencia de patrón no devuelven el mismo tipo para que sea más fácil de usar.The error message when branches of a pattern match do not return the same type has been updated to be friendlier by Isaac Abraham.
  • Steffen Forkmann corrigió un error interno al compilar la implementación de interfaz que carece de una implementación de método sobrecargado.A bug where an internal error when compiling interface implementation that lacks an overloaded method implementation has been fixed by Steffen Forkmann.
  • Gauthier Segay quitó las copias de matriz innecesarias en la fase de léxico del compilador.Some unnecessary array copying in the lexing phase of the compiler has been removed by Gauthier Segay.
  • Las coincidencias de patrón incompletas en las enumeraciones de F# ahora generar una advertencia detallada que brinda un ejemplo de un caso no cubierto. Colaboración 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.
  • Ahora se respeta `#nowarn "2003". Colaboración de Matthias Diitrich.`#nowarn "2003" is now respected, contributed by Matthias Diitrich.
  • Steffen Forkmann corrigió un error donde el consumo de los métodos de extensión de C# podía generar un error en la resolución de sobrecarga de F#.A bug where consuming C# extensions methods could fail in F# overload resolution has been fixed by Steffen Forkmann.
  • Steffen Forkmann corrigió un error interno de la estructura de datos de QueueList.An internal QueueList data structure bug was fixed by Steffen Forkmann.
  • Steffen Forkmann, Eugene Auduchinok y ncave colaboraron con varias optimizaciones pequeñas y esfuerzos de limpieza de código.Various smaller optimizations and code cleanup efforts were contributed by Steffen Forkmann, Eugene Auduchinok, and ncave.

Biblioteca principal de F# 4.5.xF# Core Library 4.5.x

Ahora están disponibles las siguientes incorporaciones a la Biblioteca principal de F#:The following additions to the F# Core Library are now available:

  • Se realizó un importante trabajo para mejorar los seguimientos de la pila para las expresiones de cálculo de async { }.Significant work has been done to improve stack traces for async { } computation expressions. Ahora debería poder ver el código de usuario y los números de línea de usuario en los seguimientos de la pila.You should now be able to see user code and user line numbers in stack traces. Puede obtener más información sobre esta característica en RFC.You can learn more in the RFC for this feature.
  • API FuncConvert.FromFunc y FuncConvert.FromAction que escriben sobrecargas de System.Func y System.Action para ayudar en la interoperación con C#.FuncConvert.FromFunc and FuncConvert.FromAction APIs that type System.Func and System.Action overloads, to help in interoperation with C#. Puede obtener más información sobre esta característica en RFC.You can learn more in the RFC for this feature.
  • ValueOption es un tipo nuevo disponible, el primero de un conjunto de futuras características destinadas en última instancia a mejorar el rendimiento de los modelos activos.ValueOption is a new type available, which is the first in a set of future features ultimately aimed at better performance for Active Patterns. Puede obtener más información sobre esta característica en RFC.You can learn more in the RFC for this feature.
  • TryGetValue ahora es un nuevo miembro del tipo de asignación de F#.TryGetValue is now a new member on the F# Map type. Puede obtener más información sobre esta característica en RFC.You can learn more in the RFC for this feature.
  • Se corrigió el uso elevado de la CPU después de la primera invocación de MailboxProcessor.TryReceive.We fixed High CPU usage upon the first invocation of MailboxProcessor.TryReceive.
  • La comparación de bool ahora usa la comparación genérica rápida (colaboración de Vasily Kirichenko).Comparison for bool now uses fast generic comparison, contributed by Vasily Kirichenko.
  • Se actualizó y mejoró el texto de resumen de Array.allPairs (colaboración de Patrick McDonald).The summary text for Array.allPairs has been updated to be correct, contributed by Patrick McDonald

Mejoras en las herramientas de F#F# Tooling Improvements

En esta versión hay mejoras significativas en las herramientas de F#, como mejoras en el rendimiento y algunas características nuevas del editor.Significant improvements in the F# tools, such as performance improvements and some new editor features are in this release. Como siempre, con una gran cantidad de contribuciones de la comunidad de código abierto de F#.As always, with a large number of contributions from the F# open source community. Estos son los aspectos destacados:Here are the highlights:

  • Se mejoró el rendimiento de IntelliSense para los proyectos con el estilo del SDK de .NET de todas las formas, incluidas las que usan varios destinos.We improved IntelliSense performance for .NET SDK-style projects of all forms, including those that use multi-targeting.
  • Vasily Kirichenko, Steffen Forkmann y Gauthier Segay colaboraron con un esfuerzo impulsado por la comunidad para analizar y mejorar el rendimiento de IntelliSense de archivos de gran tamaño.A community-driven effort to analyze and improve IntelliSense performance for very large files was contributed by Vasily Kirichenko, Steffen Forkmann, and Gauthier Segay. IntelliSense en archivos de gran tamaño (más de 10 000 líneas de código) es aproximadamente el doble de rápido ahora.IntelliSense in very large files (10k+ lines of code) is roughly twice as fast now.
  • La advertencia de FSharp.Core obsoleto (a pesar del paquete que se está instalando) ya no existe en los proyectos con el estilo del SDK de .NET.The warning for an outdated FSharp.Core (despite the package being installed) is no longer present in .NET SDK-style projects.
  • La información sobre herramientas de la descripción que muestra la documentación de XML para un miembro después de . en IntelliSense ya no desaparece después de 10 segundos.The description tooltip that displays XML documentation for a member after . in IntelliSense no longer times out after 10 seconds.
  • Se corrigió un error en el que no podía establecer puntos de interrupción en los argumentos del constructor de objetos.A bug where you could not set breakpoints in object constructor arguments has been fixed.
  • Se corrigió un error en el que el símbolo renombrado se podría duplicar cuando se tratara de un parámetro genérico.A bug where a renamed symbol would be duplicated when it is a generic parameter has been fixed.
  • Las plantillas para .NET Framework (plantillas de F# clásicas) ahora consumen FSharp.Core desde un paquete NuGet para alinearse con las plantillas de F# del SDK de .NET.Templates for .NET Framework (classic F# templates) now consume FSharp.Core from a NuGet package, to align with .NET SDK F# templates.
  • La finalización de llave transaccional automática ahora está disponible para los pares de llaves (), [], {}, [||] y [<>].Automatic, transactional brace completion is now available for (), [], {}, [||], and [<>] brace pairs. Este trabajo lo hicimos en colaboración con Gibran Rosa.We did this work in collaboration with Gibran Rosa.
  • Ahora puede ir a la definición con Ctrl + clic en un símbolo de F#.You can now go to definition with Ctrl + Click on an F# symbol. La configuración de este gesto también se respeta en la ventana Herramientas > Opciones.The settings for this gesture are also respected in the Tools > Options window.
  • La interfaz de usuario de rendimiento de IntelliSense se modificó para permitir la configuración de la información de una comprobación de tipos obsoleta para distintas características de IDE.The IntelliSense performance UI has been modified to allow configuration of stale typecheck information for various IDE features. Las explicaciones de cada opción ahora están en la información sobre herramientas correspondiente a la configuración.Explanations for each option are now present in tooltips for the settings.
  • El resaltado de coincidencia de llaves ahora resalta correctamente las llaves, algo que se completó en colaboración con Vasily Kirichenko.Brace match highlighting now correctly highlights braces, completed in collaboration with Vasily Kirichenko.
  • La función Ir a definición ahora se desplaza correctamente cuando un tipo se define de manera recursiva, una colaboración deVasily Kirichenko.Go to definition now navigates correctly when a type is defined recursively, contributed by Vasily Kirichenko.
  • Vasily Kirichenko corrigió un error en el que un espacio de nombres importado automáticamente no se abría cuando la parte superior de un archivo estaba vacía.A bug where an auto-imported namespace wasn't opened when the top of a file was empty has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko corrigió un error en el que los especificadores printf que contenían puntos estaban indicados con los colores incorrectos.A bug where printf specifiers that contained dots were miscolored has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko corrigió un error en el que todas las aperturas se consideraban no utilizadas dentro de un módulo recursivo.A bug where all opens were considered unused inside of a recursive module has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko mejoró considerablemente el rendimiento del analizador de aperturas no utilizadas.The performance of the Unused Opens analyzer has been improved significantly by Vasily Kirichenko.
  • La característica autocompletar de atributos ahora solo sugiere opciones que son realmente atributos, una colaboración de Vasily Kirichenko.Autocompletion for attributes now only suggests options that are actually attributes, contributed by Vasily Kirichenko.
  • La información sobre herramientas de Ayuda para la firma ahora se genera para los parámetros estáticos de proveedor de tipos en el sitio de la llamada del constructor, una colaboración de Vasily Kirichenko.Signature Help tooltips are now generated for Type Provider static parameters at the constructor call site, contributed by Vasily Kirichenko.
  • Vasily Kirichenko corrigió un error en el que los tipos de valores usados como unidades de medida se coloreaban como tipos de referencia.A bug where value types used as units of measure were colored as reference types has been fixed by Vasily Kirichenko.
  • Vasily Kirichenko corrigió un error en el que la coloración semántica podía desaparecer para algunos archivos en el desplazamiento.A bug where semantic colorization could disappear for some files while scrolling has been fixed by Vasily Kirichenko.
  • Ahora hay una implementación de CodeLens experimental, una colaboración de Victor Peter Rouven Müller.There is now an experimental CodeLens implementation, contributed by Victor Peter Rouven Müller. Puede activarla en Opciones > Editor de texto > F# > CodeLens.You can turn it on in Options > Text Editor > F# > Code Lens.
  • Sebastian Urban corrigió un error donde el servicio del compilador de F# evitaría incorrectamente los nombres de módulo en la documentación de XML.A bug where the F# compiler service would incorrectly elide the module names in XML documentation has been fixed by Sebastian Urban.
  • El código que usa Dictionary con ContainsKey y las llamadas de Item subsiguientes se modificó para usarTryGetValue, de Eugene Auduchinok.Code that uses Dictionary with ContainsKey and subsequent Item calls has been changed to use TryGetValue, by Eugene Auduchinok.
  • Jakob Majoka también colaboró en el proceso de consumir una API distinta para la información sobre herramientas.Jakob Majoka also contributed in the process of consuming a different API for Tooltips.

Mejoras en infraestructura, empaquetado y código abiertoInfrastructure, Packaging, and Open Source Improvements

Realizamos las mejoras siguientes en la infraestructura, el empaquetado y en nuestra experiencia de colaboración de código abierto:We made the following enhancements to infrastructure, packaging, and our open source contribution experience:

  • El compilador de F# distribuido con Visual Studio ya no se instala como base de datos única en la ubicación del SDK del compilador de F#.The F# compiler distributed with Visual Studio no longer installs as a singleton in the F# Compiler SDK location. Ahora está completamente en paralelo con Visual Studio, lo que significa que las instalaciones en paralelo de Visual Studio finalmente tendrá experiencias de lenguaje y herramientas de F# en paralelo.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.
  • El paquete FSharp.Core de NuGet ahora está firmado.The FSharp.Core NuGet package is now signed.
  • El registro de ETW se agregó al compilador y las herramientas de F#.ETW logging has been added to the F# tools and compiler.
  • Los archivos control.fs/contro.fsi de gran tamaño en FSharp.Core se dividieron en async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi y observable.fs/observable.fsi.The very large control.fs/contro.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.
  • Se agregaron versiones con el estilo del SDK de .NET de los artefactos de prueba de esfuerzo del rendimiento de proyectos.We added .NET SDK-style versions of our project performance stress test artifacts.
  • Quitamos Newtonsoft.Json de la base de código y ahora los colaboradores de OOS tienen un paquete menos para descargar.We removed Newtonsoft.Json from our codebase, and you now have one less package downloaded for OSS contributors.
  • Ahora se usan las versiones más recientes de System.Collections.Immutable y System.Reflection.Metadata.We now use the latest versions of System.Collections.Immutable and System.Reflection.Metadata.

Mejoras en el conjunto de herramientas y la conformidad de C++C++ conformance and toolset improvements

Esta versión contiene las siguientes mejoras del conjunto de herramientas y la conformidad de C++:This release contains the following C++ conformance and toolset improvements:

  • Un preprocesador nuevo, experimental y basado en token que cumple con los estándares de C++11 (incluidas las características de preprocesador de C99), habilitado con el conmutador /experimental:preprocessor.A new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with the /experimental:preprocessor switch. Se controla con la macro _MSVC_TRADITIONAL, que se define como 1 cuando se usa el preprocesador tradicional y como 0 cuando se usa el preprocesador experimental conforme con los estándares.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.
  • El Símbolo del sistema para desarrolladores de Visual Studio permite habilitar los entornos de ejecución de mitigación de la variante 1 de Spectre para Visual C++ (-vcvars_spectre_libs = spectre).The Visual Studio Developer Command Prompt supports enabling the Visual C++ Spectre variant 1 mitigated runtimes (-vcvars_spectre_libs = spectre). En el blog del equipo de Visual C++ encontrará más información sobre las mitigaciones de Spectre.More information about Spectre mitigations is available on the Visual C++ Team Blog.
  • Dos adiciones nuevas al Optimizador SSA centradas en la generación de código de C++ moderno: eliminación de almacenes redundantes y plegado de ramas redundantes.Two new additions to the SSA Optimizer focused on modern C++ code generation: redundant store elimination and folding of redundant branches.
  • Se optimizó el rendimiento de E/S asignado en memoria en el vinculador para disminuir los tiempos de vínculo.Optimized memory mapped I/O performance in the linker to reduce link times.

Desarrollo multiplataforma de C++C++ cross-platform development

Se agrego y mejoró el siguiente desarrollo multiplataforma de C++ para esta versión:We added, improved, and added the following to C++ cross-platform development for this release:

  • Se agregó la plantilla Agregar > Elemento nuevo para generar un archivo con formato .clang siguiendo la convención de codificación especificada para ClangFormat en Herramientas > Opciones.Added Add > New Item template for generating a .clang-format file following the coding convention specified for ClangFormat in Tools > Options. Si se selecciona la convención de Visual Studio, el archivo generado intenta coincidir con la configuración de formato de Visual Studio actual del usuario de Herramientas > Opciones.If the Visual Studio convention is selected, the generated file tries to match the user's current Visual Studio formatting configuration from Tools > Options.
  • La versión enviada de clang-format.exe se actualizó a 6.0.0.Updated the shipped clang-format.exe version to 6.0.0.
  • Plantillas para simplificar la incorporación de configuraciones a CppProperties.json.Templates to simplify adding configurations to CppProperties.json.
  • Se agregaron plantillas para simplificar la incorporación de configuraciones a CMakeSettings.json (figura 7).Added templates to simplify adding configurations to CMakeSettings.json (Figure 7).
Configuration templates for CMake
(Figura 7) Plantillas de configuración para CMake(Figure 7) Configuration templates for CMake

Productividad de C++C++ productivity

Se hicieron las siguientes mejoras en la productividad de C++:We made the following enhancements and improvements to C++ productivity:

  • Las informaciones rápidas de C++ en macros ahora muestran lo que se expande y no solo su definición.C++ Quick Info tooltips on macros now show what they expand to, rather than just their definition. Esto resulta especialmente útil para las macros complejas que hacen referencia a otras macros, porque aclara con qué el preprocesador reemplaza el identificador de la macro.This is particularly useful for complex macros that reference other macros as it clarifies what the macro identifier is replaced with by the preprocessor.
  • Se agregó un icono de bombilla de corrección rápida para convertir macros básicas en constexpr como una herramienta nueva para modernizar código.Added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize code.
  • IntelliSense para plantillas proporciona más detalles sobre los argumentos de plantilla para aprovechar al máximo IntelliSense dentro del cuerpo de la plantilla (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 para plantilla(Figure 8) Template IntelliSense
  • Estamos trabajando para actualizar la experiencia de análisis de código.We are working to refresh our code analysis experience. Ahora puede habilitar las nuevas características en curso en Herramientas > Opciones > Editor de texto > C++ > Experimental > Análisis de código.You can now enable the new, in-progress features under Tools > Options > Text Editor > C++ > Experimental > Code Analysis. El análisis de código se puede ejecutar en segundo plano cuando se abren o guardan los archivos y los resultados se muestran en la lista de errores con subrayados ondulados de color verde en el 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álisis de código en el editor(Figure 9) In-editor code analysis

Mejoras en la depuración de C++C++ debugging improvements

Se hicieron las siguientes mejoras en la depuración:We made the following debugging improvements:

  • Solo mi código ahora permite pasar por alto el código de las bibliotecas de C++ del sistema o de terceros, además de contraer esas llamadas en la ventana de la pila de llamadas.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. Puede controlar este comportamiento en cualquier biblioteca de C++ cuando el código se complica con /JMC y las rutas de acceso a las bibliotecas que no son de usuario se especifican en un archivo .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. Si la biblioteca del sistema llama al código de usuario, cuando el usuario entra, el depurador omite todo el código del sistema y se detiene en la primera línea de la devolución de llamada del código de usuario (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) Solo mi código(Figure 10) Just My Code
  • Los puntos de interrupción de datos ahora se pueden establecer dentro de las ventanas Inspección, Inspección rápida, Variables automáticas y Variables locales, lo que le permite desglosar cuándo un valor almacenado en memoria cambia con solo unos pocos clics.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.
  • El vínculo de origen permite insertar información sobre un archivo ejecutable o el código fuente original de una biblioteca en el archivo PDB durante la compilación.Source Link lets you embed information about an executable or library's original source code into the PDB during compilation.
  • Al depurar, la ventana de la consola ahora se mantienen abierta de manera predeterminada cuando el programa finaliza su ejecución (de manera similar a la ejecución del programa sin el depurador).When debugging, the console window now stays open by default when the program terminates execution (similarly to running the program without the debugger). Este comportamiento se puede revertir para cerrar automáticamente la consola en Herramientas > Opciones > Depuración > General.This behavior can be toggled back to closing the console automatically in Tools > Options > Debugging > General.

Herramientas web de Visual StudioVisual Studio Web Tools

Administrador de bibliotecas es una característica nueva incluida en Visual Studio 2017.Library Manager is a new feature included in Visual Studio 2017. Ayuda a administrar bibliotecas de cliente en los proyectos web.It helps you manage client-side libraries in your web projects.

Herramientas de contenedorContainer Tools

Se agregó una nueva experiencia de contenedor Docker de proyecto único para los proyectos web de ASP.NET Core.We added a new single project Docker container experience for ASP.NET Core web projects. Esto complementa las herramientas de contenedores basados en Docker Compose existentes y proporciona una manera más simple y sencilla para crear, depurar y compilar los contenedores Docker directamente desde 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.

Puede agregar compatibilidad con Docker cuando crea el proyecto (figura 11):You can add Docker support when creating the project (Figure 11):

Enable Docker Support
(Figura 11) Habilitación de la compatibilidad de Docker(Figure 11) Enable Docker Support

O bien puede habilitar la compatibilidad de Docker para un proyecto existente a través del menú contextual del proyecto en el Explorador de soluciones (figura 12).Or, you can enable Docker support to an existing project through the project's context menu in Solution Explorer (Figure 12). Una vez que lo haga, Visual Studio crea un solo archivo Dockerfile en el proyecto.Once you do this, Visual Studio creates a single Dockerfile in the project. Tiene la opción de elegir Windows o Linux.You have the option to choose either Windows or Linux.

Add Docker Support
(Figura 12) Incorporación de la compatibilidad de Docker(Figure 12) Add Docker Support

Visual Studio también agrega un perfil de inicio del depurador (figura 13) para Docker con el fin de depurar el proyecto mientras se ejecuta dentro de un contenedor.Visual Studio also adds a debugger launch profile (Figure 13) for Docker so that the project can be debugged while running within a container.

Docker Launch Profile
(Figura 13) Perfil de inicio de Docker(Figure 13) Docker Launch Profile

Si tiene una solución con varios proyectos de Docker, de manera predeterminada, solo un contenedor se ejecuta cuando elige iniciar la solución.If you have a solution with multiple Docker projects, by default, only one container runs when you choose to start the solution. Si desea ejecutar varios contenedores de manera simultánea, puede hacer clic con el botón derecho en la solución en el Explorador de soluciones y seleccionar Establecer proyectos de inicio, luego Varios proyectos de inicio y establecer el menú desplegable Acción en Iniciar o Iniciar sin depuración para todos los proyectos que quiere ejecutar.If you wish to run multiple containers simultaneously, you can right-click on the solution in Solution Explorer and select Set Startup Projects, 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.

Una vez que el proyecto en contenedores se ejecuta como el usuario quiere, puede hacer clic con el botón derecho en el proyecto y seleccionar Build Docker Image (Compilar imagen de Docker) para compilar una imagen de manera local, cuando esté listo para insertarla en Azure Container Registry o en 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.

También puede agregar la funcionalidad basada en Docker Compose existente a un proyecto web de ASP.NET Core a través de la nueva opción Container Orchestrator Support (Compatibilidad con el orquestador de contenedores) (figura 14).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 14). Haga doble clic en el proyecto web de ASP.NET Core en el Explorador de soluciones, seleccione Agregar > Container Orchestrator Support (Compatibilidad con el orquestador de contenedores) y seleccione Docker Compose en el menú desplegable.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 14) Incorporación de compatibilidad con la orquestación(Figure 14) Add Orchestration Support

Mejoras en la publicaciónPublish Improvements

Esta versión contiene las siguientes mejoras en la publicación:This release contains the following publish improvements:

  • Cuando se publica un contenedor Docker en un registro de contenedor, ahora puede personalizar la etiqueta de la imagen.When publishing a Docker container to a container registry, you can now customize the tag for the image. También puede agregar manualmente una etiqueta (el valor predeterminado es "latest") o usar una etiqueta generada automáticamente para asegurarse de que cada etiqueta sea única.You can either manually add a tag (default is "latest") or use an auto-generated tag to make sure each tag is unique.
  • Al crear un nuevo Azure App Service, también puede configurar Application Insights para recopilar telemetría de manera automática.When creating a new Azure App Service, you can also configure Application Insights to automatically collect telemetry. Si elige una región que también tiene Application Insights, se define en habilitado de manera predeterminada.If you choose a region that also has Application Insights, it defaults to enabled. Si elige una región que todavía no contiene Application Insights, puede especificar manualmente otra región para el recurso de Application Insights en el menú desplegable.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.
  • Al publicar proyectos de Azure Functions, puede elegir publicar mediante la característica Run-From-Zip.When publishing Azure Functions projects you can choose to publish using the new Run-From-Zip feature.

Visual Studio Tools para XamarinVisual Studio Tools for Xamarin

Esta versión incluye las actualizaciones siguientes para Xamarin:This release contains the following updates for Xamarin:

  • Se agregó compatibilidad con Xcode 9.4.We added support for Xcode 9.4.
  • Cuando se crea un nuevo proyecto de Xamarin.Forms, la opción de uso compartido del código predeterminado opción ahora es .NET Standard.When you create a new Xamarin.Forms project, the default code sharing option is now .NET Standard. La opción de proyecto compartido sigue estando disponible.The shared project option is still available.
  • Se agregaron mejoras en la compilación incremental de Android.We added Android incremental build improvements. Xamarin.Android usa los archivos generados en el directorio de salida intermedio para lograr compilaciones incrementales más rápidas que las compilaciones completas.Xamarin.Android uses files generated in the intermediate output directory to achieve incremental builds that are faster than full builds. Anteriormente, si cambiaba la plataforma de destino del proyecto, los archivos se invalidarían y se generaría una compilación completa en la próxima ejecución.Previously, if you changed your project's target framework it would invalidate the files and result in a full build on the next run. En esta versión, ahora se conservan los archivos en carpetas por plataforma para que pueda cambiar entre las diferentes plataformas de destino y continuar beneficiándose de las compilaciones incrementales.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. Limpiar el proyecto permite reclamar el espacio en disco que usan los archivos conservados.Cleaning the project allows you to reclaim the disk space used by the preserved files.
  • Se agregó una compatibilidad mínima para proyectos de enlace de Xamarin.Mac en Visual Studio 2017.We have added minimum support for Xamarin.Mac binding projects in Visual Studio 2017. Esto permite que Visual Studio cargue y reconozca proyectos de enlace de Xamarin.Mac como compatibles.This enables Visual Studio to load and recognize Xamarin.Mac binding projects as supported. También puede compilar proyectos de enlace de Xamarin.Mac, pero el proceso de compilación se realiza localmente sin usar la cadena de herramientas nativa de Mac para que los ensamblados de lenguaje intermedio generados no se puedan usar para ejecución ni depuración en las aplicaciones.You can also build Xamarin.Mac binding projects, 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.

Compatibilidad con el emulador Android para Hyper-VHyper-V Android emulator support

Esta versión agrega compatibilidad para el emulador Android para Google que es compatible con Hyper-V cuando se ejecuta en la actualización de abril de 2018 de Windows 10 (figura 15).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 15). Esto le permite usar el emulador Android de Google en paralelo con otras tecnologías basadas en Hyper-V, incluidas las máquinas virtuales de Hyper-V, las herramientas de Docker, el emulador de HoloLens, etc.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. Los desarrolladores de aplicaciones móviles que usan Hyper-V ahora tienen acceso a un emulador Android rápido que siempre admite las API de Android más recientes, que trabaja con Google Play Services de manera inmediata y es compatible con todas las características del emulador de Android, incluida la cámara, la geolocalización y Arranque rápido.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.
(Figura 15) Emulador Android para Google y emulador de HoloLens
(Figure 15) Google Android Emulator and HoloLens emulator

Diseñador de Xamarin.AndroidXamarin.Android Designer

Se hicieron mejoras considerables para la experiencia del diseñador de Xamarin.Android.We made significant improvements to the designer experience for Xamarin.Android. Entre los aspectos destacados se incluyen los siguientes:Highlights include:

  • Se introdujo un editor de vistas en dos paneles que le permite crear, editar y obtener una vista previa de los diseños al mismo tiempo (figura 16).A split-view editor was introduced which allows you to create, edit, and preview your layouts at the same time (Figure 16).
Screenshot of the Xamarin.Android split-view editor.
(Figura 16) Editor de vistas en dos paneles para Xamarin.Android
(Figure 16) Xamarin.Android split-view editor
  • Se mejoró la experiencia de IntelliSense y la confiabilidad de los controles personalizados.Improved Intellisense experience and reliability of custom controls.
  • Compatibilidad de los datos de ejemplo con los valores proporcionados por el sistema.Sample data support for system provided values.

Controlador de vista previa de Xamarin.FormsXamarin.Forms Previewer

El controlador de vista previa de Xamarin.Forms ahora tiene compatibilidad con el cuadro de herramientas cuando se usa Xamarin.Forms, versión 3.1.0.583944 o superior.The Xamarin.Forms Previewer now has toolbox support when using Xamarin.Forms version 3.1.0.583944 or higher. Los controles de Xamarin.Forms aparecerán en el cuadro de herramientas para que quienes no estén familiarizados con este puedan encontrarlos fácilmente.Xamarin.Forms controls will appear in the toolbox so they are more discoverable for those new to the toolkit. También puede arrastrar y colocar un control en el editor de código de XAML para agregar el control a la página.You can also drag and drop a control onto the XAML code editor to add the control to the page.

PythonPython

Esta versión agrega las siguientes mejoras para desarrolladores de Python:This release adds the following improvements for Python developers:

  • IntelliSense para Python ahora usa definiciones de Typeshed para brindar resultados más completos para las bibliotecas donde las finalizaciones automáticas no se pueden inferir a partir del análisis estático.Python IntelliSense now uses typeshed definitions to provide richer results for libraries where auto-completions cannot be inferred by static analysis.
  • El depurador experimental, que se anunció por primera vez en las versiones preliminares 15.7, ahora es el motor de depuración predeterminado que se usa para Python, el que proporciona una depuración más rápida y confiable para el código de 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.
  • Se agregó compatibilidad con Python 3.7, incluidas correcciones para habilitar la asociación de depuración, la generación de perfiles y características de depuración de modo combinado (entre lenguajes).We have added support for Python 3.7, including fixes to enable debug attach, profiling, and mixed-mode (cross-language) debugging features.
  • Para más información sobre las características mencionadas, no olvide consultar la entrada de blog sobre Python en Visual Studio 15.8.For more information about the above features, be sure to check out our Python in Visual Studio 15.8 blog post.

Migración de la configuración de Azure Functions localMigrate Local Azure Function Settings

El cuadro de diálogo "Managed Application Settings" (Configuración de la aplicación administrada) disponible en la página de resumen de publicación ahora muestra valores del archivo local.settings.json y permite migrar valores a la aplicación de Azure Functions remota hospedada en 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.

Servicios conectadosConnected Services

Ahora puede configurar la entrega continua de Azure Funtions directamente desde Visual Studio 2017 para soluciones con proyectos de Azure Functions.You can now configure continuous delivery for Azure functions directly from Visual Studio 2017 for solutions with Azure Function Projects.

Mejora del Explorador de pruebasTest Explorer Improvement

El Explorador de pruebas ahora muestra un panel de resumen de estado de prueba más informativo (el panel inferior del Explorador de pruebas) cuando se selecciona una de las agrupaciones de la vista de jerarquía.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. El panel ahora muestra cuántas pruebas no se completaron correctamente, cuántas sí se completaron correctamente o cuántos no se ejecutaron de esa agrupación.The pane now displays how many tests failed, passed, or not run in that grouping.

Nuevas características de extensibilidadNew Extensibility Features

Protocolo de servidor de lenguajeLanguage Server Protocol

Visual Studio ahora ofrece compatibilidad nativa para el Protocolo de servidor de lenguaje.Visual Studio now has native support for the Language Server Protocol. Los creadores de extensiones pueden crear extensiones que se comuniquen con los servidores de lenguaje existentes para agregar compatibilidad de lenguaje adicional a Visual Studio.Extension authors can create extensions that communicate with existing language servers to add additional language support to Visual Studio. Los usuarios de las extensiones pueden instalar estas extensiones para empezar a usar el lenguaje de su preferencia dentro de Visual Studio, como Rust.Extension users can install these extensions to start using their favorite language inside Visual Studio like Rust.

Plantilla de AsyncPackageAsyncPackage Template

Los autores de extensiones ahora pueden usar plantillas de elemento para crear AsyncPackages para optimizar el rendimiento de su extensión.Extension authors can now use item templates to create AsyncPackages to optimize their extension's performance. Lea los documentos para más información sobre cómo usar AsyncPackages.Read our docs to learn more about how to use AsyncPackages.

Paquetes de extensiónExtension Packs

Comparta con facilidad el conjunto de extensiones de su preferencia o configure una instalación nueva de Visual Studio con todas las extensiones mediante el uso del paquete de instalación.Easily share your favorite set of extensions or set up a new install of Visual Studio with all your extensions by using extension pack. Los paquetes de extensión permiten crear una lista de extensiones, empaquetarlos en una extensión y usarla rápidamente para instalar esas extensiones de manera masiva.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.

Publicación de la extensión de línea de comandosCommand Line Extension Publishing

Publique las extensiones en Visual Studio Marketplace a través de la línea de comandos.Publish your extensions to the Visual Studio Marketplace using the command line.

SDK de .NET Core 2.1.400.NET Core SDK 2.1.400

Visual Studio 15.8 incluye el SDK de .NET Core 2.1.400.Visual Studio 15.8 includes .NET Core SDK 2.1.400. Las nuevas características del SDK incluyen las siguientes:New SDK features include:

  • Se agregaron plantillas NUnitAdded NUnit templates
  • Se agregó compatibilidad con herramientas globales firmadasAdded support for signed global tools
  • Se mejoró el texto de ayuda para mayor claridadImproved help text for better clarity

Se cerraron 32 problemas en la CLI de .NET Core.32 issues were closed on the .NET Core CLI. Se cerraron 20 problemas en el SDK de .NET Core.20 issues were closed on the .NET Core SDK.

Control de código fuenteSource Control

En los proyectos de .NET Core, los archivos agregados directamente al proyecto a través del Explorador de archivos ahora mostrarán los iconos de seguimiento de TFS y Git correctos en el Explorador de soluciones sin tener que recargar la solución.For .NET Core projects, files added directly to the project via File Explorer will now show the correct Git and TFS tracking icons in the Solution Explorer without having to reload the solution.

Extensión del adaptador de prueba de .NET: cambio importante y desuso.NET Test Adapter Extension: breaking change and deprecation

El adaptador de prueba de .NET incluye el siguiente cambio importante y desuso:The .Net Test Adapter has the following breaking change and deprecation:

  • Cambio importante: Todos los proyectos de prueba deben incluir la referencia de NuGet del adaptador de prueba de .NET en su propio csproj.Breaking Change: All test projects must include their .NET test adapter NuGet reference in their csproj. Si no lo hacen, el resultado de esta prueba aparecerá en el proyecto si la detección de una extensión de adaptador de prueba se inicia después de una compilación o si el usuario intenta ejecutar las pruebas seleccionadas: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:
    • El proyecto de prueba {} no hace referencia a ningún adaptador NuGet de .NET.Test project {} does not reference any .NET NuGet adapter. La detección o ejecución de pruebas podría no funcionar para este proyecto.Test discovery or execution might not work for this project. Se recomienda hacer referencia a los adaptadores de prueba de NuGet en cada proyecto de prueba de la solución.It is recommended to reference NuGet test adapters in each test project in the solution.
  • Las plataformas de prueba de .NET han lanzado sus adaptadores en paquetes NuGet y se han apartado de las extensiones de Visual Studio..NET test frameworks have been releasing their adapters in NuGet packages and moving away from Visual Studio extensions. La compatibilidad de los adaptadores de prueba de .NET ofrecidas a través de la extensión está en desuso, pero todavía se admite.The support for .NET test adapters delivered through extension is deprecated, but still supported. Esto significa que habrá dos opciones nuevas en Herramientas > Opciones > Prueba.This means two new options will be available in Tools > Options > Test.
    • La primera opción permite que Visual Studio solo use los adaptadores de prueba que encuentra en la carpeta de ensamblado de prueba (completado por la referencia de NuGet del adaptador de prueba) o como se especifica en el archivo 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.
    • La segunda opción permite que Visual Studio "se revierta" al comportamiento anterior y busque las extensiones de adaptador de prueba para los proyectos que no tienen una referencia de NuGet del adaptador de prueba.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. Ambas opciones están activadas de manera predeterminada, por lo que no habrá ningún cambio en el comportamiento predeterminado en esta versión.Both options are checked by default so no default behavior will change in this release.
  • Observe que este cambio no afectará a los adaptadores de prueba que no son de .NET.Note, non-.NET test adapters are not affected with this change.

Compatibilidad de los secretos de .NET Framework para ASP.NETASP.NET .NET Framework Secrets Support

En el caso de los proyectos de .NET Framework para ASP.NET que tienen como destino .NET Framework 4.7.1 o una versión superior, ahora puede abrir y almacenar los secretos que no quiere tener en el código fuente en usersecrets.xml si hace clic con el botón derecho en el proyecto y selecciona "Managed User Secrets" (Secretos de usuarios administrados).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

Ahora la versión 15.8 de Visual Studio 2017 ofrece las herramientas de desarrollo de .NET Framework 4.7.2 en todas las plataformas compatibles con el entorno de ejecución de 4.7.2 incluido.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. .NET Framework 4.7.2 ofrece diversas mejoras y características nuevas, así como numerosas correcciones de fiabilidad, estabilidad, seguridad y rendimiento.The .NET Framework 4.7.2 offers several new features and improvements as well as numerous reliability, stability, security, and performance fixes.

Puede encontrar más detalles sobre .NET Framework 4.7.2 en estos artículos:You can find more details about the .NET Framework 4.7.2 in these articles:

Retraso de la carga de paquetes que se cargan automáticamente de manera asincrónicaDelay loading of packages that autoload asynchronously

Visual Studio ahora retrasa la carga de paquetes asincrónicos que están configurados para cargarse automáticamente después de que el IDE de Visual Studio se inició completamente y se cargó la solución.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. Este cambio no afecta a los paquetes cargados automáticamente de manera sincrónica.This change does not affect synchronously autoloaded packages. Los usuarios pueden observar el Centro de estado de tareas en la esquina inferior izquierda de la barra de estado para supervisar el progreso.Users can look at the Task Status Center in the lower left corner of the status bar to monitor progress. Los creadores de extensiones que crean paquetes asincrónicos deben probar su extensión.Extension authors that create asyncpackages should test their extension. Para más información, consulte Improving the responsiveness of critical scenarios by updating auto load behavior for extensions (Mejora de la capacidad de respuesta de escenarios críticos mediante la actualización del comportamiento de carga automática de las extensiones).For more information, see Improving the responsiveness of critical scenarios by updating auto load behavior for extensions.


ComentariosFeedback

Nos encantaría que nos diera su opinión.We would love to hear from you! Puede informarnos de un problema mediante la opción Notificar un problema de la esquina superior derecha del instalador o del propio IDE de 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. A la claseThe Feedback Icon icono se encuentra en la esquina superior derecha.icon is located in the upper right-hand corner. Realice un seguimiento de los problemas en la comunidad de desarrolladores de Visual Studio, donde podrá hacer preguntas y encontrar respuestas.You can track your issues in the Visual Studio Developer Community, where you can ask questions and find answers. También puede hacer una sugerencia relacionada con un producto mediante UserVoice u obtener ayuda gratuita para la instalación a través del chat de soporte técnico en directo.You can also make a product suggestion through UserVoice or get free installation help through our Live Chat support.


BlogsBlogs

Saque partido de la información y de las recomendaciones disponibles en los blogs de Developer Tools que le mantendrán al día sobre las nuevas versiones y con publicaciones con mucha información sobre una gran variedad de características.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


Historial de notas de la versión de Visual Studio de 2017Visual Studio 2017 Release Notes History

Para obtener más información relacionada con las versiones anteriores de Visual Studio 2017, consulte la página Historial de notas de la versión de Visual Studio 2017.For more information relating to past versions of Visual Studio 2017, see the Visual Studio 2017 Release Notes History page.


Principio de página

Top of Page