Visual Studio IconNotas de la versión 15.8 de Visual Studio 2017


Comunidad de desarrolladores | Requisitos del sistema | Compatibilidad | Código distribuible | Términos de licencia | Blogs | Problemas conocidos



Nota:

Esta no es la versión más reciente de Visual Studio. Para descargar la versión más reciente, visite el sitio de Visual Studio.


Período de tiempo de soporte técnico

Esta versión ya no es compatible. Para obtener más información sobre la compatibilidad con Visual Studio, revise la directiva de compatibilidad para Visual Studio 2017.

Consulte la versión más reciente de las notas de la versión o visite el sitio de Visual Studio para descargar la versión más reciente compatible de Visual Studio 2017.

Blog de Visual Studio

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. Encontrará información detallada sobre las versiones 15.8 de Visual Studio 2017 en las entradas siguientes:

Versiones de la versión 15.8 de Visual Studio 2017

Importante

Avisos de seguridad de Visual Studio 2017, versión 15.8

Resumen de las nuevas características importantes de la versión 15.8

Principales problemas corregidos en la versión 15.8

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8:

Vea todos los problemas detectados por los clientes que se han solucionado en Visual Studio 2017, versión 15.8.

The Developer Community Portal


Detalles de las novedades de la versión 15.8

Release Notes IconVersión 15.8.0 de Visual Studio 2017

publicado el 14 de agosto de 2018

Nuevas características de la versión 15.8

Instalar

Ahora tiene la opción de descargar todos los archivos de instalación antes de iniciar la instalación.

  • 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). Se recomienda esta opción si tiene una conexión a Internet más lenta.
  • La opción predeterminada sigue siendo "Install while downloading" (Instalar durante la descarga), que descarga e instala en paralelo.
Download Otion
(Figura 1) Opción Descargar

Rendimiento

Esta versión contiene las siguientes mejoras en el rendimiento:

  • 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.
  • 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.
  • 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.
    • Alterne esta opción en Herramientas > Opciones > Proyectos > Soluciones > General.

Rendimiento de las pruebas

Se mejoró considerablemente el rendimiento al ejecutar algunas pruebas en una solución de gran tamaño con varios proyectos de prueba. 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.

Mejora en el rendimiento de Visual Basic

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.

Generación de perfiles de rendimiento

Esta versión contiene las siguientes mejoras en la generación de perfiles de rendimiento:

  • Se ha agregado la funcionalidad para iniciar la generación de perfiles en un estado pausado:

    • La herramienta Uso de CPU del generador de perfiles de rendimiento (ALT-F2) ahora se puede iniciar en un estado pausado (figura 2). Esto puede ser útil mientras se espera un escenario que merece una investigación de Uso de CPU. Si la recopilación de Uso de CPU está deshabilitada al iniciar, el generador de perfiles de rendimiento no recopila datos de la pila de muestras de Uso de CPU hasta que se habilita específicamente. Esto da lugar a una cantidad de datos para recopilar y analizar mucho más pequeña, lo que hace que las investigaciones de rendimiento sean más eficaces.

    • Para iniciar una sesión con la recopilación de muestras de Uso de CPU deshabilitada, haga clic en el icono de engranaje situado junto a Uso de CPU en la página de inicio del generador de perfiles de rendimiento. En la página de propiedades de Uso de CPU, desactive Habilitar generación de perfiles de CPU (muestreo) y haga clic en Aceptar para guardar la configuración.

      CPU Usage Tool settings page
      (Figura 2) Configuración de la herramienta Uso de CPU
    • Una vez que se inicia la aplicación de destino, al hacer clic en Iniciar en la página de inicio del generador de perfiles de rendimiento, se ve un gráfico de uso de la CPU (figura 3) que permite controlar la generación de perfiles de la CPU. Para habilitar la recopilación de datos de la pila de muestras de Uso de CPU, seleccione Habilitar generación de perfiles de CPU en el centro de la vista, o bien haga clic en Registrar perfil CPU, justo debajo del gráfico de uso de la CPU. Puede hacer clic en Registrar perfil CPU para habilitar o deshabilitar la recopilación de datos de muestras tantas veces como quiera. 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.

      CPU Usage Tool monitoring view
      (Figura 3) Gráfico de uso de la CPU
  • Se agregó una herramienta para el seguimiento de asignación de objetos de .NET:

    • 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. La invocación de esta herramienta para una sesión del generador de perfiles de rendimiento inicia la recopilación de un seguimiento de la pila de cada asignación de objetos de .NET que se produce en la aplicación de destino. 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. Puede determinar rápidamente los patrones de asignación del código e identificar las anomalías. Además, en los eventos de recolección de elementos no utilizados (GC), puede determinar fácilmente los objetos que se han recopilado y conservado, e identificar con rapidez los tipos de objetos que dominan el uso de memoria de la aplicación.
    • Esto resulta especialmente útil para los escritores de API con el fin de ayudar a minimizar las asignaciones. Muchas aplicaciones saturan los límites del búfer que participa en la recopilación de datos de diagnóstico, pero las aplicaciones de prueba pequeñas que prueban escenarios clave de una API se pueden diagnosticar bastante bien. Mientras la aplicación de prueba se ejecuta, el generador de perfiles de rendimiento muestra un gráfico de líneas de Objetos activos (recuento), así como un gráfico de barras de Diferencias de objetos (% de cambio).
    • Para usar la herramienta Seguimiento de asignación de objetos de .NET, abra la página de inicio del generador de perfiles de rendimiento (figura 4), seleccione 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, luego, haga clic en Iniciar.
    Performance Profiler launch page
    (Figura 4) Página de inicio del Generador de perfiles de rendimiento

Generación de perfiles de rendimiento (Uso de CPU)

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):

  • La vista Árbol de llamadas ahora muestra la ejecución asincrónica por pila de llamadas lógicas de manera predeterminada. 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.
  • Se ha agregado 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. 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.
  • Se ha agregado la indicación de instancia al gráfico Uso de CPU en la vista principal de la herramienta Uso de CPU. Puede ver las instancias cuando se ejecuta una función (por ejemplo, en la pila) si hace doble clic en una función que aparezca en cualquiera de las vistas de Uso de CPU.

Productividad

Esta versión contiene las siguientes mejoras en la productividad:

  • 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#. Para configurar la limpieza, vaya a Herramientas>Opciones>Editor de texto>C#>Estilo de código>Formato>General.
  • Se agregaron más acciones rápidas y refactorizaciones mediante Ctrl + . o Alt + Entrar:
    • Invert If le permite invertir la lógica en las instrucciones if-else. Coloque el cursor en la palabra clave if para desencadenar esta refactorización.
    • 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.
    • 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. Puede configurar esta regla de estilo mediante Herramientas>Opciones>Editor de texto>C#>Estilo de código>General o .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 mediante .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:
    • 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 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 Member (Ir a miembro) (Ctrl + T, M) ahora tiene como ámbito el archivo de manera predeterminada. Puede cambiar el valor predeterminado de vuelta a la solución si cambia el ámbito a Documento actual (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. Esto permite agregar, editar o eliminar texto de manera simultánea en varios lugares.
    • Inserte símbolos de inserción con Ctrl + Alt + clic con el botón izquierdo.
    • 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.
    • Vea Editar > Varios símbolos de inserción para obtener una lista completa de las acciones.
  • Acceso al menú de navegación contextual con Alt + `.
  • Los enlaces de teclado deben ser coherentes con dos perfiles de teclado nuevos: Visual Studio Code y ReSharper (Visual Studio). Puede encontrar estos esquemas en Herramientas > Opciones > Entorno > Teclado y el menú desplegable superior.

Depuración

Esta versión contiene las siguientes mejoras en la depuración:

  • 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). De este modo puede, por ejemplo, desarrollar en el canal de versión de Visual Studio mientras depura en el canal de versión preliminar.

    Select your debug instance
    (Figura 5) Selección de la instancia de depuración
  • Ahora puede asociar Snapshot Debugger directamente desde la página Resumen de publicación (figura 6).

    Attach Snapshot Debugger from Publish Summary page
    (Figura 6) Snapshot Debugger adjunto desde Resumen de publicación
  • Ahora se permite ver Tareas administradas a través de la ventana Tareas durante la depuración de minivolcados con montón.

Herramientas para desarrolladores de Plataforma universal de Windows

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. Estas mejoras incluyen:

  • Las colecciones ahora se pueden editar en el inspector de propiedad.
  • El diseñador ahora permite editar plantillas y estilos, incluso cuando las definiciones de esas entidades se definen en otros documentos.
  • 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.
  • El diseñador, el editor y la característica Editar y continuar ahora deben funcionar correctamente con x:DefaultBindMode.
  • La experiencia de Visual State Manager en Blend ahora admite AdaptiveTrigger.

Herramientas de F# 4.5 y F# para Visual Studio

En este lanzamiento se presenta la versión 4.5 del lenguaje F#. Esto también se corresponde con la nueva familia 4.5.x de FSharp.Core (la biblioteca principal de F#). Puede leer las especificaciones de cada uno de estos cambios en el repositorio RFC de F#. Con esta versión, también hay muchas mejoras en las herramientas de F# para Visual Studio.

F# 4.5

Estos son algunos de los aspectos destacados de la versión 4.5 del lenguaje F#:

Compatibilidad con Span<'T>

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#. Entre las características de esto se incluyen:

  • Nuevo tipo voidptr.
  • Nuevas funciones NativePtr.ofVoidPtr y NativePtr.toVoidPtr en FSharp.Core.
  • Se han agregado los uevos tipos inref<'T> y outref<'T>, que son byrefs de solo lectura y byrefs de solo escritura, respectivamente. Se corresponde con in ref y out ref en C#.
  • La capacidad de generar estructuras ByRefLike (como Span y ReadOnlySpan).
  • La capacidad de generar estructuras IsReadOnly.
  • La desreferencia implícita de devoluciones de byref y inref desde los métodos.
  • La capacidad de generar miembros de extensión en 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 byref no desreferenciaban implícitamente el valor devuelto. Este cambio se hizo para que la característica esté alineada con la manera en que C# controla las devoluciones de ref. 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.

Además, este conjunto de características también corrige un error en el compilador de F# que consistía en que era posible el "reemplazo de una estructura peligrosa", es decir, la llamada a un método en una estructura de F# podía reemplazar la estructura real a la que se llamaba por una distinta. 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.

Puede obtener más información sobre las construcciones similares a span y ref en RFC para este conjunto de características.

Match! en expresiones de cálculo

F# 4.5 presenta match!, una palabra clave nueva para usarla dentro de expresiones de cálculo, una contribución completa de John Wostenberg. Esta simplificación sintáctica equivale a let! seguido de match en el resultado. Puede obtener más información en RFC para match!.

Relajo en la necesidad de conversión a tipo básico con yield en expresiones de secuencia, lista y matriz

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. 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. Puede obtener más información sobre esta característica en RFC.

Sangría permitida en corchetes de matriz y lista

F# 4.5 ahora relaja la regla de sangría para corchetes de matriz y lista que exigía la aplicación de sangría un ámbito hacia adelante cuando estaban en su propia línea. Este requisito anterior siempre ha sido muy confuso, particularmente para usuarios principiantes de F#. Además, no se requiere para las expresiones de secuencia de F#. Este cambio hace que las expresiones de lista y matriz tengan el mismo estado coherente que las expresiones de secuencia. Puede obtener más información sobre esta característica en RFC.

Casos de enumeración emitidos como públicos

F# 4.5 ahora emite casos de enumeración como públicos en todas las circunstancias, para alinearlos con cómo C# emite los casos de enumeración. 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. Puede obtener más información sobre esta característica en RFC.

Mejoras del compilador de F#

Las mejoras del compilador de F# además de las características de lenguaje anteriormente mencionadas están en F# 4.5. Entre ellas se incluyen las siguientes:

  • 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).
  • Se ha corregido un error que resultaba en AccessViolatioNException cuando se usaba yield! con enumerables basados en estructura.
  • Ahora es posible volver a heredar de FSharpFunc.
  • Las llamadas de cola están deshabilitadas de manera predeterminada para las compilaciones de depuración de F# para .NET Core. Están habilitadas para la versión, con lo que coinciden con el compilador de F# de escritorio.
  • Se corrigió la normalización de la referencia de F# para permitirle controlar las referencias de ensamblado transitivas escritas en un archivo de salida. Esto le permite realizar el equivalente del redireccionamiento de ensamblado de .NET Core.
  • Se ha corregido un error que consistía en la omisión del mensaje de error usado al intentar emplear la invocación dinámica en las funciones insertadas. El mensaje de error ahora se propaga.
  • F# ahora respeta la marca WarningsNotAsErrors que puede establecer en los archivos del proyecto.
  • Isaac Abraham ha actualizado el mensaje de error que aparece cuando las ramas de una coincidencia de patrón no devuelven la misma condición de tipo para que sea más fácil de usar.
  • Steffen Forkmann ha corregido un error interno al compilar una implementación de interfaz que carece de una implementación de método sobrecargado.
  • Gauthier Segay quitó las copias de matriz innecesarias en la fase de léxico del compilador.
  • Las coincidencias de patrón incompletas en las enumeraciones de F# ahora generan una advertencia detallada que brinda un ejemplo de un caso no cubierto. Colaboración de John Wostenberg.
  • Ahora se respeta `#nowarn "2003". Colaboración de 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#.
  • Steffen Forkmann corrigió un error interno de la estructura de datos de QueueList.
  • Steffen Forkmann, Eugene Auduchinok y ncave colaboraron con varias optimizaciones pequeñas y esfuerzos de limpieza de código.

Biblioteca principal de F# 4.5.x

Ahora están disponibles las siguientes incorporaciones a la Biblioteca principal de F#:

  • Se realizó un importante trabajo para mejorar los seguimientos de la pila para las expresiones de cálculo de async { }. 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. Puede obtener más información sobre esta característica en RFC.
  • API FuncConvert.FromFunc y FuncConvert.FromAction que escriben sobrecargas de System.Func y System.Action para ayudar en la interoperación con C#. Puede obtener más información sobre esta característica en RFC.
  • 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. Puede obtener más información sobre esta característica en RFC.
  • TryGetValue ahora es un nuevo miembro del tipo de asignación de F#. Puede obtener más información sobre esta característica en RFC.
  • Se corrigió el uso elevado de la CPU después de la primera invocación de MailboxProcessor.TryReceive.
  • La comparación de bool ahora usa la comparación genérica rápida (colaboración de Vasily Kirichenko).
  • Se actualizó y mejoró el texto de resumen de Array.allPairs (colaboración de Patrick McDonald).

Mejoras en las herramientas de F#

En esta versión hay mejoras considerables en las herramientas de F#, como mejoras en el rendimiento y algunas características nuevas del editor. Como siempre, con una gran cantidad de contribuciones de la comunidad de código abierto de F#. Estos son los aspectos destacados:

  • 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.
  • 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. 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.
  • 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.
  • 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.
  • Se corrigió un error en el que no podía establecer puntos de interrupción en los argumentos del constructor de objetos.
  • Se corrigió un error en el que el símbolo renombrado se podría duplicar cuando se tratara de un parámetro genérico.
  • 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.
  • La finalización de llave transaccional automática ahora está disponible para los pares de llaves (), [], {}, [||] y [<>]. Este trabajo lo hicimos en colaboración con Gibran Rosa.
  • Ahora puede ir a la definición con Ctrl + clic en un símbolo de F#. La configuración de este gesto también se respeta en la ventana Herramientas > Opciones.
  • 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. Las explicaciones de cada opción ahora están en la información sobre herramientas correspondiente a la configuración.
  • El resaltado de coincidencia de llaves ahora resalta correctamente las llaves, algo que se completó en colaboración con 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.
  • 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.
  • Vasily Kirichenko corrigió un error en el que los especificadores printf que contenían puntos estaban indicados con los colores incorrectos.
  • Vasily Kirichenko corrigió un error en el que todas las aperturas se consideraban no utilizadas dentro de un módulo recursivo.
  • Vasily Kirichenko mejoró considerablemente el rendimiento del analizador de aperturas no utilizadas.
  • La característica autocompletar de atributos ahora solo sugiere opciones que son realmente atributos, una colaboración de 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.
  • Vasily Kirichenko corrigió un error en el que los tipos de valores usados como unidades de medida se coloreaban como tipos de referencia.
  • Vasily Kirichenko corrigió un error en el que la coloración semántica podía desaparecer para algunos archivos en el desplazamiento.
  • Ahora hay una implementación de CodeLens experimental, una colaboración de Victor Peter Rouven Müller. Puede activarla en Opciones > Editor de texto > F# > CodeLens.
  • 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.
  • El código que usa Dictionary con ContainsKey y las llamadas de Item subsiguientes se modificó para usarTryGetValue, de Eugene Auduchinok.
  • Jakob Majoka también colaboró en el proceso de consumir una API distinta para la información sobre herramientas.

Mejoras en infraestructura, empaquetado y código abierto

Realizamos las mejoras siguientes en la infraestructura, el empaquetado y en nuestra experiencia de colaboración de código abierto:

  • El compilador de F# distribuido con Visual Studio ya no se instala como singleton en la ubicación del SDK del compilador de F#. Ahora está completamente en paralelo con Visual Studio, lo que significa que las instalaciones en paralelo de Visual Studio finalmente tendrán experiencias de lenguaje y herramientas de F# en paralelo.
  • El paquete FSharp.Core de NuGet ahora está firmado.
  • El registro de ETW se agregó al compilador y las herramientas de F#.
  • Los archivos control.fs/control.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.
  • Se agregaron versiones con el estilo del SDK de .NET de los artefactos de prueba de esfuerzo del rendimiento de proyectos.
  • Quitamos Newtonsoft.Json de la base de código y ahora los colaboradores de OSS tienen un paquete menos para descargar.
  • Ahora se usan las versiones más recientes de System.Collections.Immutable y System.Reflection.Metadata.

Mejoras en el conjunto de herramientas y la conformidad de C++

Esta versión contiene las siguientes mejoras del conjunto de herramientas y la conformidad de C++:

  • 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. 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.
  • 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). En el blog del equipo de Visual C++ encontrará más información sobre las mitigaciones de Spectre.
  • 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.
  • Se optimizó el rendimiento de E/S asignado en memoria en el vinculador para disminuir los tiempos de vínculo.

Desarrollo multiplataforma de C++

Se agrego y mejoró el siguiente desarrollo multiplataforma de C++ para esta versión:

  • Se ha agregado la plantilla Agregar>Nuevo elemento para generar un archivo con formato .clang conforme a la convención de codificación especificada para ClangFormat en Herramientas>Opciones. 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.
  • La versión enviada de clang-format.exe se actualizó a 6.0.0.
  • Plantillas para simplificar la incorporación de configuraciones a CppProperties.json.
  • Se agregaron plantillas para simplificar la incorporación de configuraciones a CMakeSettings.json(figura 7).
Configuration templates for CMake
(Figura 7) Plantillas de configuración para CMake

Productividad de C++

Se hicieron las siguientes mejoras en la productividad de C++:

  • Las informaciones rápidas de C++ en macros ahora muestran lo que se expande y no solo su definición. 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.
  • 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.
  • 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).
Template IntelliSense
(Figura 8) IntelliSense para plantilla
  • Estamos trabajando para actualizar la experiencia de análisis de código. Ahora puede habilitar las nuevas características en curso en Herramientas>Opciones>Editor de texto>C++>Experimental>Análisis de código. 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).
In-editor code analysis
(Figura 9) Análisis de código en el editor

Mejoras en la depuración de C++

Se hicieron las siguientes mejoras en la depuración:

  • 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. 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. 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).
Just My Code
(Figura 10) Solo mi código
  • 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.
  • 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.
  • Al depurar, la ventana de la consola ahora se mantiene abierta de manera predeterminada cuando el programa finaliza su ejecución (de manera similar a la ejecución del programa sin el depurador). Este comportamiento se puede revertir para cerrar automáticamente la consola en Herramientas > Opciones >Depuración > General.

Mejoras en JavaScript y TypeScript

TypeScript 3.0

Visual Studio 2017, versión 15.8, ahora incluye TypeScript 3.0 de forma predeterminada. Para obtener más detalles sobre esta versión, vea el Anuncio de versión de TypeScript 3.0.

Compatibilidad mejorada con Vue.js

Se ha mejorado la compatibilidad con la biblioteca Vue.js, en particular con los archivos .vue, también conocidos como "componentes de único archivo". Esto ofrece mejoras al editar bloques de script dentro de archivos .vue, incluida la compatibilidad con bloques de script creados en TypeScript mediante el atributo lang="ts" del elemento de script. (Nota: Se debe usar un proceso de compilación mediante WebPack o similar para convertir los archivos .vue en los archivos HTML y JS necesarios en tiempo de ejecución. Consulte la página Componentes de archivo único para obtener más detalles).

Si la carga de trabajo Node.js está instalada, ahora hay plantillas "Aplicación web de Vue.js básico" en las rutas de acceso "JavaScript / Node.js" o "TypeScript / Node.js" del cuadro de diálogo Nuevo proyecto. A continuación se ofrece un ejemplo de edición de código de TypeScript dentro de un bloque de script de un archivo .vue (figura 11).

Editing a .vue file
(Figura 11) Edición de archivos .vue

Mejoras en ESLint

Se ha vuelto a implementar la compatibilidad de ESLint con esta versión. ESLint presenta las siguientes mejoras:

  • En lugar de simplemente mejorar los archivos guardados, Visual Studio ahora también mejora los archivos de JavaScript a medida que se editan.
  • Se pueden notificar resultados de todos los archivos JS del proyecto, no solo de los abiertos; si hay partes del proyecto que no quiera mejorar, puede usar un archivo .eslintignore para especificar los directorios y los archivos que deban omitirse.
  • ESLint se ha actualizado para usar ESLint 4 de forma predeterminada, pero si el proyecto tiene una instalación local de ESLint, se usará esa versión en su lugar.

ESLint se puede deshabilitar globalmente en Visual Studio desactivando el valor Habilitar ESLint en **Herramientas > Opciones > Editor de texto > Javascript/Typescript > Linting ** (figura 12).

ESLint Options
(Figura 12) Opciones de ESLint

Mejoras en Abrir carpeta para Node.js

Hay bastantes mejoras en el trabajo con JavaScript y TypeScript en el escenario Abrir carpeta cuando la "carga de trabajo de Node.js" está instalada. Por ejemplo, la administración de paquetes NPM, la compilación de TypeScript, el inicio y la depuración con Node.exe, la ejecución de scripts NPM y la ejecución de pruebas unitarias.

Vea Desarrollo de código en Visual Studio sin proyectos o soluciones para obtener más información.

Mejoras en el rendimiento del editor

En versiones anteriores, todas las operaciones del servicio de lenguaje de JavaScript y TypeScript se realizaban mediante un solo proceso de Node.js. Esto podía provocar retrasos del editor si los comandos que afectaban al usuario que escribía (por ejemplo, el formato automático después de una nueva línea) se enviaban mientras había una operación potencialmente larga en curso, como el análisis de errores de código. Para mitigar esto, ahora se usa un proceso independiente para las operaciones que afectan a la edición en mayor medida. Este proceso es mucho más ligero para los recursos del sistema que el proceso del servicio de lenguaje existente. Sin embargo, si quiere deshabilitar el nuevo proceso, active la casilla Deshabilite el proceso de sintaxis dedicado en Herramientas > Opciones > Editor de texto > JavaScript/TypeScript > Servicio de lenguaje.

Herramientas web de Visual Studio

Administrador de bibliotecas es una característica nueva incluida en Visual Studio 2017. Ayuda a administrar bibliotecas de cliente en los proyectos web.

Herramientas de contenedor

Se agregó una nueva experiencia de contenedor Docker de proyecto único para los proyectos web de ASP.NET Core. 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.

Puede agregar compatibilidad con Docker al crear el proyecto (figura 13):

Enable Docker Support
(Figura 13) Habilitación de la compatibilidad con Docker

O bien, puede habilitar la compatibilidad con Docker para un proyecto existente a través del menú contextual del proyecto en el Explorador de soluciones (figura 14). Una vez que lo haga, Visual Studio crea un solo archivo Dockerfile en el proyecto. Tiene la opción de elegir Windows o Linux.

Add Docker Support
(Figura 14) Incorporación de compatibilidad con Docker

Visual Studio también agrega un perfil de inicio del depurador (figura 15) para Docker de modo que el proyecto se pueda depurar mientras se ejecuta dentro de un contenedor.

Docker Launch Profile
(Figura 15) Perfil de inicio de Docker

Si tiene una solución con varios proyectos de Docker, de manera predeterminada, solo un contenedor se ejecuta cuando elige iniciar la solución. Si quiere 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 y, luego, en Varios proyectos de inicio y, entonces, establecer el menú desplegable Acción en Iniciar o Iniciar sin depuración para todos los proyectos que quiera ejecutar.

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.

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 16). Haga clic con el botón derecho 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, luego, Docker Compose en el menú desplegable.

Add Container Orchestrator Support
(Figura 16) Incorporación de compatibilidad con la orquestación

Mejoras en la publicación

Esta versión contiene las siguientes mejoras en la publicación:

  • Cuando se publica un contenedor Docker en un registro de contenedor, ahora puede personalizar la etiqueta de la imagen. 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.
  • Al crear un nuevo Azure App Service, también puede configurar Application Insights para recopilar telemetría de manera automática. Si elige una región que también tenga Application Insights, se habilitará de manera predeterminada. 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.
  • Al publicar proyectos de Azure Functions, puede elegir publicar mediante la característica Run-From-Zip.

Visual Studio Tools para Xamarin

Esta versión incluye las actualizaciones siguientes para Xamarin:

  • Se agregó compatibilidad con 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. La opción de proyecto compartido sigue estando disponible.
  • Se agregaron mejoras en la compilación incremental de Android. Xamarin.Android usa los archivos generados en el directorio de salida intermedio para lograr compilaciones incrementales más rápidas que las compilaciones completas. 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. 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. Limpiar el proyecto permite reclamar el espacio en disco que usan los archivos conservados.
  • Se agregó una compatibilidad mínima para proyectos de enlace de Xamarin.Mac en Visual Studio 2017. Esto permite que Visual Studio cargue y reconozca proyectos de enlace de Xamarin.Mac como compatibles. También puede compilar proyectos de enlace de Xamarin.Mac. Sin embargo, el proceso de compilación se realiza de forma local 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.

Compatibilidad con Android Emulator para Hyper-V

Esta versión agrega compatibilidad con Google Android Emulator, compatible con Hyper-V, cuando se ejecuta en la actualización de abril de 2018 de Windows 10 (figura 17). 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. 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.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(Figura 17) Emulador de Android de Google y emulador de HoloLens

Xamarin.Android Designer

Se hicieron mejoras considerables para la experiencia del diseñador de Xamarin.Android. Algunas funciones destacadas:

  • Se ha incorporado 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 18).
Screenshot of the Xamarin.Android split-view editor.
(Figura 18) Editor de vistas en dos paneles para Xamarin.Android
  • Se mejoró la experiencia de IntelliSense y la confiabilidad de los controles personalizados.
  • Compatibilidad de los datos de ejemplo con los valores proporcionados por el sistema.

Controlador de vista previa de Xamarin.Forms

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. 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. También puede arrastrar y colocar un control en el editor de código de XAML para agregar el control a la página. El Controlador de vista previa de Xamarin.Forms ahora forma parte del editor XAML. Puede abrirlo y cerrarlo con el icono Expandir situado en el borde del panel Editor.

Python

Esta versión agrega las siguientes mejoras para desarrolladores de Python:

  • 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.
  • 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.
  • 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).
  • Para obtener más información sobre las características anteriores, vea la entrada de blog sobre Python en Visual Studio 2017 versión 15.8.

Migración de la configuración de Azure Functions local

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.

Servicios conectados

Ahora puede configurar la entrega continua de Azure Funtions directamente desde Visual Studio 2017 para soluciones con proyectos de Azure Functions.

Mejora del Explorador de pruebas

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. 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.

Nuevas características de extensibilidad

Protocolo de servidor de lenguaje

Visual Studio ahora ofrece compatibilidad nativa para el Protocolo de servidor de lenguaje. 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. Los usuarios de las extensiones pueden instalar estas extensiones para empezar a usar el lenguaje de su preferencia dentro de Visual Studio, como Rust.

Plantilla de AsyncPackage

Los autores de extensiones ahora pueden usar plantillas de elemento para crear AsyncPackages para optimizar el rendimiento de su extensión. Obtenga más información sobre AsyncPackages.

Paquetes de extensión

Comparta con facilidad el conjunto de extensiones de su preferencia o configure una instalación nueva de Visual Studio con todas las extensiones mediante un paquete de extensión. 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.

Publicación de la extensión de línea de comandos

Publique las extensiones en Visual Studio Marketplace a través de la línea de comandos.

SDK de .NET Core 2.1.400

Visual Studio 2017, versión 15.8, incluye el SDK de .NET Core 2.1.400. Las nuevas características del SDK incluyen las siguientes:

  • Se agregaron plantillas NUnit
  • Se agregó compatibilidad con herramientas globales firmadas
  • Se mejoró el texto de ayuda para mayor claridad

Se cerraron 32 problemas en la CLI de .NET Core.
Se cerraron 20 problemas en el SDK de .NET Core.

Control de código fuente

En los proyectos de .NET Core, los archivos agregados directamente al proyecto a través del Explorador de archivos ahora muestran los iconos de seguimiento de TFS y Git correctos en el Explorador de soluciones sin tener que volver a cargar la solución.

Extensión del adaptador de prueba de .NET

El adaptador de prueba de .NET incluye el siguiente cambio importante. Ciertas características también han entrado en desuso:

  • Cambio importante: Todos los proyectos de prueba deben incluir la referencia de NuGet del adaptador de prueba de .NET en su propio 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:
    • El proyecto de prueba {<Ruta de acceso completa del proyecto de prueba>} no hace referencia a ningún adaptador NuGet de .NET. La detección o ejecución de pruebas podría no funcionar para este proyecto. Se recomienda hacer referencia a los adaptadores de prueba de NuGet en cada proyecto de prueba de la solución.
  • Las plataformas de prueba de .NET han lanzado sus adaptadores en paquetes NuGet y se han apartado de las extensiones de Visual Studio. La compatibilidad con los adaptadores de prueba de .NET ofrecidos a través de extensiones está en desuso, pero todavía se admite. Esto significa que hay dos opciones nuevas en Herramientas > Opciones > Prueba.
    • 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.
    • 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. Ambas opciones están activadas de manera predeterminada, por lo que no habrá ningún cambio en el comportamiento predeterminado en esta versión.
  • Nota: Este cambio no afecta a los adaptadores de prueba que no sean de .NET.

Compatibilidad de los secretos de .NET Framework para ASP.NET

En el caso de ASP.NET, los proyectos de .NET Framework para .NET Framework 4.7.1 o posterior, ahora puede abrir y almacenar los secretos que no quiera en el código fuente en usersecrets.xml haciendo con el botón derecho en el proyecto y seleccionando "Managed User Secrets" (Secretos de usuarios administrados).

Mejora del rendimiento de .NET Framework de ASP.NET

Si el paquete del compilador de .NET al que se hace referencia no está actualizado en un proyecto de .NET Framework de ASP.NET, Visual Studio le pedirá que actualice el paquete cuando abra el proyecto para mejorar el rendimiento de compilación.

.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. .NET Framework 4.7.2 ofrece diversas mejoras y características nuevas, así como numerosas correcciones de fiabilidad, estabilidad, seguridad y rendimiento.

Puede encontrar más detalles sobre .NET Framework 4.7.2 en estos artículos:

Retraso en la carga de paquetes

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. Este cambio no afecta a los paquetes cargados automáticamente de manera sincrónica. Los usuarios pueden observar el Centro de estado de tareas en la esquina inferior izquierda de la barra de estado para supervisar el progreso. Los creadores de extensiones que crean paquetes asincrónicos deben probar su extensión. 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).


---

Release Notes Icon Avisos de seguridad de Visual Studio 2017, versión 15.8

Liberación de servicio de Visual Studio 2017, versión 15.8.7: publicada el 10 de octubre de 2018

CVE-2018-8292 vulnerabilidad de divulgación de información de .NET Core

Hay una vulnerabilidad de omisión de característica de seguridad en .NET Core que expone información de autenticación HTTP accidentalmente en una solicitud saliente que se encuentra una redirección HTTP. Un atacante que haya aprovechado correctamente esta vulnerabilidad puede usar la información para poner en peligro la aplicación web. La actualización de seguridad corrige la vulnerabilidad mediante la corrección de cómo controla la aplicación .NET Core las redirecciones HTTP.

Liberación de servicio de Visual Studio 2017, versión 15.8.4: publicada el 11 de septiembre de 2018

CVE-2018-8409 Vulnerabilidad de denegación de servicio de .NET Core

Una vulnerabilidad de denegación de servicio existe en .NET Core 2.1 cuando System.IO.Pipelines gestiona solicitudes de forma incorrecta. Un atacante que aprovechase correctamente esta vulnerabilidad podría producir una denegación de servicio en una aplicación que aprovecha System.IO.Pipelines. La vulnerabilidad se puede aprovechar de forma remota, sin autenticación. Un atacante remoto no autenticado podría aprovechar esta vulnerabilidad si proporciona solicitudes creadas especialmente a la aplicación .

CVE-2018-8409 Vulnerabilidad de denegación de servicio de ASP.NET Core

Existe una vulnerabilidad de denegación de servicio en ASP.NET Core 2.1 que gestiona solicitudes web de forma incorrecta. Un atacante que aprovechase correctamente esta vulnerabilidad podría producir una denegación de servicio en una aplicación web ASP.NET Core. La vulnerabilidad se puede aprovechar de forma remota, sin autenticación. Un atacante remoto no autenticado podría aprovechar esta vulnerabilidad si proporciona solicitudes web creadas especialmente a la aplicación ASP.NET Core.

Visual Studio 2017, versión 15.8: publicado el 14 de agosto de 2018

CVE-2018-0952 Vulnerabilidad de elevación de privilegios del recopilador estándar del concentrador de diagnósticos

Existe una vulnerabilidad de elevación de privilegios en un servicio de Visual Studio que puede dar lugar a la concesión de privilegios del sistema a un usuario no administrativo al escribir archivos. Un atacante que quisiera aprovecharse podría escribir archivos como si fueran del sistema solo con acceso de nivel de usuario. Esta actualización de seguridad soluciona este problema al suplantar al usuario actual para validar el acceso a la ubicación de archivos.

Visual Studio 2017, versión 15.8 Preview 4: publicado el 10 de julio de 2018

CVE-2018-8172 Vulnerabilidad de ejecución remota de código de Visual Studio

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. La actualización de seguridad soluciona la vulnerabilidad al corregir la forma en que Visual Studio comprueba el marcado de origen de un archivo.

CVE-2018-8260 Vulnerabilidad de ejecución remota de código de .NET Framework

Existe una vulnerabilidad de ejecución remota de código en el software de .NET que puede 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. La actualización de seguridad soluciona la vulnerabilidad al corregir la forma en que .NET comprueba el marcado de origen de un archivo.

CVE-2018-8232 Vulnerabilidad de manipulación del macroensamblador de Microsoft de .NET

Vulnerabilidad de manipulación relacionada con la validación incorrecta de código por parte del macroensamblador de Microsoft. La actualización de seguridad soluciona la vulnerabilidad al garantizar que el macroensamblador de Microsoft valide correctamente la lógica del código.

CVE-2018-8171 Vulnerabilidad de omisión de características de seguridad de ASP.NET Core

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. La actualización soluciona la vulnerabilidad al validar el número de intentos de inicio de sesión incorrectos.

Visual Studio 2017, versión 15.8 Preview 3: publicado el 26 de junio de 2018

CVE-2018-11235 Aviso de seguridad de Microsoft sobre vulnerabilidad de la seguridad de Git

Se ha corregido una vulnerabilidad de seguridad en Git que se detectó por la comunidad de Git. La vulnerabilidad puede permitir la ejecución de código arbitrario cuando un usuario clona un repositorio malintencionado.

Visual Studio 2017, versión 15.8 Preview 1: publicado el 8 de mayo de 2018

CVE-2018-0765 Aviso de seguridad de Microsoft sobre una vulnerabilidad de denegación de servicio de .NET Core

  • 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. En este aviso también se proporcionan instrucciones sobre qué deben hacer los desarrolladores para eliminar esta vulnerabilidad.
  • 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. 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.
  • 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.
  • 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.

Release Notes IconVisual Studio 2017, versión 15.8.1

publicado el 17 de agosto de 2018

Principales problemas corregidos en la versión 15.8.1

Estos son los problemas solucionados en la versión 15.8.1:

  • Se ha corregido un problema que causaba que Visual Studio se cerrara de forma inesperada al cerrar una ventana del explorador durante la depuración de un proyecto web.

Release Notes IconVisual Studio 2017 versión 15.8.2

publicado el 28 de agosto de 2018

Principales problemas corregidos en la versión 15.8.2

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8.2:


Release Notes IconVisual Studio 2017, versión 15.8.3

publicado el 6 de septiembre de 2018

Principales problemas corregidos en la versión 15.8.3

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8.3:


Release Notes IconVisual Studio 2017 versión 15.8.4

publicado el 11 de septiembre de 2018

Principales problemas corregidos en la versión 15.8.4

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8.4:

Avisos de seguridad


Release Notes IconVisual Studio 2017, versión 15.8.5

publicado el 20 de septiembre de 2018

Resumen de las novedades de la versión 15.8.5

  • Visual Studio Tools para Xamarin ahora es compatible con Xcode 10.

Principales problemas corregidos en la versión 15.8.5

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8.5:

Detalles de las novedades de la versión 15.8.5

Visual Studio Tools para Xamarin

Visual Studio Tools para Xamarin ahora es compatible con Xcode 10, que le permite compilar y depurar aplicaciones para iOS 12, tvOS 12 y watchOS 5. Para obtener información detallada sobre las nuevas características disponibles, consulte el artículo sobre cómo prepararse para iOS 12 y nuestra introducción a iOS 12.


Release Notes IconVisual Studio 2017, versión 15.8.6

publicado el 2 de octubre de 2018

Resumen de las novedades de la versión 15.8.6

Principales problemas corregidos en la versión 15.8.6

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8.6:

Detalles de las novedades de la versión 15.8.6

Último SDK de Windows 10 para desarrolladores de Plataforma universal de Windows

El último SDK de Windows 10 (compilación 17763) ahora está disponible como un componente opcional para la carga de trabajo de desarrollo de la Plataforma universal de Windows. Puede agregar este SDK para la carga de trabajo si selecciona la casilla SDK de Windows 10 (10.0.17763.0).


Release Notes IconVersión 15.8.7 de Visual Studio 2017

publicado el 10 de octubre de 2018

Novedades de la versión 15.8.7

Azure DevOps

Visual Studio Team Services es ahora Azure DevOps. Verá esta nueva personalización de marca en Team Explorer y en las referencias de Visual Studio.

Avisos de seguridad

CVE-2018-8292 vulnerabilidad de divulgación de información de .NET Core


Release Notes IconVersión 15.8.8 de Visual Studio 2017

publicado el 24 de octubre de 2018

Principales problemas corregidos en la versión 15.8.8

Estos son los problemas detectados por los clientes que se han solucionado en la versión 15.8.8:


Release Notes IconVisual Studio 2017, versión 15.8.9

publicado el 2 de noviembre de 2018

Principales problemas corregidos en la versión 15.8.9

Estos son los problemas notificados por los clientes que se han solucionado en la versión 15.8.9:


Problemas conocidos

Vea todos los problemas conocidos y las soluciones alternativas disponibles en Visual Studio 2017, versión 15.8.

Visual Studio 2017 Known Issues


Comentarios y sugerencias

Nos encantaría que nos diera su opinión. 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. El icono Report a Problem Icon se encuentra en la esquina superior derecha. Puede realizar una sugerencia de producto o un seguimiento de los problemas en la comunidad de desarrolladores de Visual Studio, donde podrá hacer preguntas, encontrar respuestas y proponer nuevas características. También puede obtener ayuda gratuita para la instalación a través de nuestro servicio de soporte técnico de chat en directo.


Blogs

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.

Developer Tools Blogs


Historial de notas de la versión de Visual Studio 2017

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.


Principio de página