Notas de la versión 15.5 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 de Visual Studio (versión 15.5) en las siguientes entradas:
- Visual Studio 2017, versión 15.5 -- Leer entrada de blog más reciente
Notas de la versión 15.5 de Visual Studio 2017
- 20 de febrero de 2018: Visual Studio 2017, versión 15.5.7
- 29 de enero de 2018: versión 15.5.6 de Visual Studio 2017
- 25 de enero de 2018: versión 15.5.5 de Visual Studio 2017
- 16 de enero de 2018: versión 15.5.4 de Visual Studio 2017
- 9 de enero de 2018: versión 15.5.3 de Visual Studio 2017
- 14 de diciembre de 2017: versión 15.5.2 de Visual Studio 2017
- 7 de diciembre de 2017: versión 15.5.1 de Visual Studio 2017
- 4 de diciembre de 2017: versión 15.5 de Visual Studio 2017
Resumen de las nuevas características importantes de la versión 15.5
- Se ha agregado confiabilidad y capacidad de cancelación al instalador del IDE de Visual Studio.
- Hemos actualizado el cuadro de diálogo de error para que muestre más información que ayude a resolver problemas de instalación.
- Se han reducido los tiempos de carga de proyectos grandes de C# y Visual Basic.
- Ahora puede trabajar con submódulos y árboles de trabajo de Git, y configurar
fetch.prune
ypull.rebase
en Team Explorer. - Vea más información en los avisos de seguridad de .NET Core y ASP.NET Core.
- El conjunto de herramientas del compilador MSVC se ha actualizado a la versión 14.12.
- El compilador de C# ahora es compatible con el conjunto de características del lenguaje 7.2.
- Se ha agregado compatibilidad con proyectos del SDK de .NET Core a las herramientas de F# y se ha cambiado la forma en que se adquiere F#.
- Se han agregado mejoras de Visual C++ a la biblioteca de plantillas estándar.
- Se ha mejorado el formato de sintaxis de Razor en las herramientas web de Visual Studio.
- Los contenedores de Docker ahora son compatibles con Dockerfiles de varias fases.
- Se ha incluido compatibilidad con Angular 2 para archivos de plantilla .ngml alineados.
- Además, se pueden abrir proyectos exportados desde el compilador en línea de ARM en Visual Studio.
- La acción Abrir carpeta ahora admite tareas remotas para usar cualquier sistema de compilación remoto o ejecutar comandos arbitrarios.
- Se ha agregado compatibilidad con código fuente incrustado durante la depuración y compatibilidad con la opción Editar y continuar a los archivos PDB incrustados.
- WCF Web Service Reference para .NET Core ya forma parte de Visual Studio 15.5.
- Puede depurar aplicaciones en producción con el depurador de instantáneas.
- Ahora se admite la característica de depuración mediante step-back de IntelliTrace.
- Puede acceder a recursos de Azure desde Visual Studio con el acceso condicional habilitado.
- Los proyectos de complementos web de Office y los proyectos de VSTO ahora admiten el desarrollo con Office en la Tienda Windows.
- Visual Studio Tools para Xamarin contiene compatibilidad actualizada con los SDK de Xamarin para iOS y Android.
- Los proyectos de Unity ahora se recargan automáticamente en Visual Studio al agregar o quitar un script de Unity.
- El Explorador de pruebas ahora admite el marco de pruebas de Google de manera predeterminada.
- Ahora puede obtener una vista previa dinámica de XAML mientras escribe en el emulador de Android.
- El proyecto de empaquetado de Windows ahora le permite incluir componentes UWP, como
BackgroundTasks
,AppServiceConnection
oFullTrustProcessLauncher
. - Ahora puede configurar la entrega continua desde el flujo de trabajo de publicación de proyectos para implementar automáticamente el proyecto en Azure en cada cambio de código efectuado en el repositorio.
Principales problemas corregidos en la versión 15.5
Estos son los problemas identificados por los clientes que se han solucionado en esta versión:
- Guardar todo intenta guardar las pestañas de consulta SQL cerradas.
- Los archivos bin\roslyn están bloqueados durante la compilación.
- A partir de la versión 15.3 de Visual Studio 2017, los puntos de interrupción no funcionan cuando el conjunto de caracteres del archivo no es el mismo que el de .editorconfig (utf8 or utf8-bom).
- No se puede reparar el paquete "Microsoft.Net.4.6.FullRedist.NonThreshold,version=4.6.81.9".
- Visual Studio 2017 tiene un conflicto con OneDrive a petición (compilación de Windows 10 Insider).
- Se produce un error de tipo Acceso denegado al crear las claves del Registro en Windows 7.
- La página principal deshabilitada se abre cuando se cierra el proyecto.
- Faltan iconos después de la actualización.
- Visual Studio 2017 funciona con lentitud durante la depuración de ASP.NET.
- Visual Studio 2017 se compila lentamente.
- Visual Studio puede bloquearse al ejecutarse en una máquina habilitada para el uso de un lápiz.
Consulte todos los problemas detectados por los clientes que se han solucionado en Visual Studio 2017, versión 15.5.
Detalles de las novedades de la versión 15.5
Visual Studio 2017, versión 15.5.0
Publicado el 4 de diciembre de 2017
Nuevas características de la versión 15.5
IDE de Visual Studio
Configuración e instalación
- El instalador ahora genera un punto de restauración de Windows durante la instalación.
- La opción Agregar y quitar programas ahora tiene entradas para cada instalación de Visual Studio. El Instalador de Visual Studio ya permite modificar y desinstalar cada entrada.
- La instalación desde un diseño sin conexión ya no requiere la instalación de certificados intermedios en un equipo sin conexión.
- Se han agregado mejoras de confiabilidad y capacidad de cancelación en el proceso de instalación y actualización.
Cuadro de diálogo de error actualizado
Hemos actualizado el cuadro de diálogo de error para que muestre más información que ayude a resolver problemas de instalación mediante posibles soluciones de la Comunidad de desarrolladores de Visual Studio. (Figura 1).
Rendimiento
- Se han reducido los tiempos de carga de proyectos grandes de C# y Visual Basic.
- Se ha reducido el tiempo para cambiar las configuraciones entre depuración y lanzamiento.
- Se ha reducido el tiempo para agregar, quitar y cambiar el nombre de archivos y carpetas en proyectos de .NET Core.
- Se ha puesto en desuso la carga de soluciones ligeras (LSL) porque el tiempo de carga de solución sin LSL se ha reducido.
Servicios conectados
- Hemos actualizado el proveedor de servicios de Azure Storage para que admita proyectos de ASP.NET Core que tienen como destino .NET Core.
Actualizaciones de Team Explorer
Las actualizaciones más recientes de Team Explorer se han inspirado en los comentarios de los usuarios en UserVoice.
Ya se puede trabajar con submódulos y árboles de trabajo de Git, y configurar fetch.prune
y pull.rebase
en Team Explorer.
Visual Studio trata los submódulos y árboles de trabajo de Git como repositorios normales. Basta con agregarlos a la lista de repositorios locales para empezar a codificar.
Tenga en cuenta que, en el caso de los submódulos, todavía no se puede llevar a cabo ninguna acción que requiera compatibilidad con varios repositorios (por ejemplo, ver un archivo en el repositorio principal y un archivo en el submódulo al mismo tiempo).
Además, es más fácil configurar el comportamiento de Git predeterminado para que elimine en cada captura y cambie de base en cada extracción. La eliminación en cada captura quita ramas de seguimiento locales que ya no existen en el servidor y permite mantener la lista de ramas limpia y actualizada. El cambio de base en cada extracción mantiene lineal el historial de confirmación y hace que sea fácil de seguir. Encontrará estas opciones en la configuración global y de repositorio.
Avisos de seguridad de .NET Core y ASP.NET Core
Microsoft ha publicado avisos de seguridad para .NET Core y ASP.NET Core. Encontrará los detalles en los anuncios correspondientes de los repositorios de .NET Core y ASP.NET Core. Tenga en cuenta la información siguiente:
CVE-2017-8585 Un certificado con un formato incorrecto puede causar una denegación de servicio: existe una vulnerabilidad de seguridad en .NET Core 1.0, 1.1 y 2.0 por la que un certificado con un formato incorrecto u otros datos con formato ASN.1 pueden causar una denegación de servicio si se usa un bucle infinito en Linux y macOS. Recomendamos a los administradores del sistema que actualicen sus entornos de ejecución de .NET Core a las versiones 1.0.8, 1.1.5 y 2.0.1. Recomendamos a los desarrolladores que actualicen el SDK de .NET Core a la versión 2.0.3 o 1.1.5.
CVE-2017-8700 Una omisión de CORS puede permitir la divulgación de información: existe una vulnerabilidad de seguridad en ASP.NET Core 1.0 y 1.1 donde se puede omitir CORS (uso compartido de recursos entre orígenes) y provocar una divulgación de información.
CVE-2017-11879 Una redirección abierta puede causar una elevación de privilegios: existe una vulnerabilidad de seguridad en ASP.NET Core 2.0 relacionada con una redirección abierta, lo que puede causar una elevación de privilegios.
CVE-2017-11770 Vulnerabilidad de denegación de servicio: existe una vulnerabilidad de seguridad en ASP.NET Core 1.0, 1.1 y 2.0 cuando la aplicación se hospeda con Http.Sys de Windows por la que una petición con un formato incorrecto puede causar una denegación de servicio.
En los nuevos proyectos creados con ASP.NET Core 1.0, ASP.NET Core 1.1 y ASP.NET Core 2.0, ahora se usarán versiones de paquetes en los que se incluirán las actualizaciones de seguridad anteriores. Para los proyectos existentes, los usuarios pueden actualizar los paquetes a versiones más recientes con el cuadro de diálogo Administrar paquetes NuGet.
Conjunto de herramientas del compilador MSVC
En Visual Studio 2017 15.5, el conjunto de herramientas del compilador MSVC en Build Tools se ha actualizado a la versión 14.12, que es compatible con el conjunto de herramientas 14.11, versión 15.4. En caso de que se produzca un problema al compilar el código después de actualizar a Visual Studio 2017 15.5, puede forzar la instalación del conjunto de herramientas 14.11 en paralelo con el conjunto de herramientas 14.12. El conjunto de herramientas (14.11) de Visual Studio 2017 15.4 se puede seleccionar en la pestaña Componentes individuales después de instalar la carga de trabajo de escritorio de C++.
Novedades del compilador de C#
El compilador de C# ahora es compatible con el conjunto de características del lenguaje 7.2, incluidas las siguientes:
- Compatibilidad con el tipo
Span<T>
usado en Kestrel y CoreFX con el modificadorref struct
. - Modificador
readonly struct
: garantiza que todos los miembros de un struct sonreadonly
. Esto agrega una capa de corrección al código y también permite que el compilador evite la copia innecesaria de valores al acceder a los miembros. - Parámetros
in
/ Devolucionesref readonly
: permite que los structs no modificables se pasen de forma segura y se devuelvan con la misma eficacia que los valoresref
modificables. - Modificador de acceso
private protected
: restringe el acceso a la intersección deprotected
yinternal
. - Argumentos con nombre no finales: los argumentos con nombre ya pueden usarse en el medio de una lista de argumentos sin el requisito de que todos los argumentos siguientes también se pasen por nombre.
Visual Studio Tools para Xamarin
Esta versión contiene compatibilidad actualizada con los SDK de Xamarin para iOS y Android:
Vista actual de la ejecución activa
Ahora es más fácil crear interfaces de usuario basadas en XAML gracias a la nueva característica Vista actual de la ejecución activa (Figura 2). Mientras crea la interfaz de usuario, vea cómo cobra vida mientras escribe en el emulador de Android sin tener que guardar, compilar ni reimplementar la aplicación.
Xamarin Live Player
Xamarin Live Player permite a los desarrolladores implementar, probar y depurar constantemente sus aplicaciones directamente en dispositivos iOS y Android. Después de descargar la aplicación de Xamarin Live Player (disponible en App Store o en Google Play), puede emparejar su dispositivo con Visual Studio y empezar a compilar aplicaciones móviles usando simplemente Visual Studio y el dispositivo móvil. Está optimizado para Xamarin.Forms. Además, ahora puede modificar el código XAML de las aplicaciones y ver los cambios reflejados en momentos en el dispositivo sin tener que compilar o esperar a una implementación completa. Esta versión ofrece numerosas mejoras en la funcionalidad de Xamarin Live:
- Depuración y ejecución en vivo más inteligentes: Live Player ahora ajusta automáticamente el proyecto de inicio a la plataforma correcta al depurar en Xamarin Live Player (figura 3). Por ejemplo, si se selecciona iOS y el dispositivo Live Player que se empareja es Google Pixel, el IDE recomendará que se cambie el proyecto de inicio a Android.
- Estado de implementación: ahora puede hacer el seguimiento del estado de una depuración en Xamarin Live Player con estados de implementación en la barra de estado.
- Integración de las ventanas Consola y Errores: la salida registrada en la aplicación ahora aparece en la ventana Consola y, los errores, en la ventana Errores en Visual Studio.
- Menú contextual de ejecución en vivo y método abreviado de teclado: queríamos facilitar el proceso de visualizar de forma instantánea la IU XAML, por lo que hemos agregado un menú contextual y un método abreviado de teclado para que la vista previa de las páginas XAML sea rápida y sencilla.
- Cambio entre documentos de ejecución en vivo: al compilar interfaces de usuario, es habitual cambiar entre distintos documentos XAML. Cuando cambie el documento activo en Visual Studio, se ejecutará en vivo automáticamente cualquier página XAML que tenga abierta, para que pueda cambiar fácilmente entre las distintas páginas y hacer que se reflejen en el dispositivo al instante.
Templates (Plantillas [C++])
Archivo -> Nuevo proyecto -> Aplicación móvil (Figura 4) es ahora más sencillo gracias a las actualizaciones en el Asistente para plantillas multiplataforma para aplicaciones iOS, Android y Windows. Incluye lo siguiente:
- Compatibilidad con .NET Standard: puede crear una aplicación de Xamarin multiplataforma que use .NET 2.0 Standard como un estrategia de uso compartido de código.
- Casilla de plataformas de destino: seleccione las plataformas que le interesan en Archivo -> Nuevo.
PackageReference
: ahora todas las plantillas usan de manera predeterminadaPackageReference
, una forma y sencilla de administrar paquetes NuGet en las aplicaciones de Xamarin.- Mejoras en el rendimiento de implementación: las plantillas ahora deberían implementarse mucho más rápido que antes. En los casos más extremos, podrían implementarse hasta 40 veces más rápido.
Simulador remoto de iOS
El Simulador remoto de iOS proporciona una manera fácil de depurar y probar aplicaciones de iOS en el simulador completamente desde Visual Studio en Windows. Es compatible con todas las características del simulador de iOS de Mac e incluso tiene más funciones, incluida la compatibilidad con funciones multitáctiles. Desde la versión 15.5 de Visual Studio 2017, el Simulador remoto de iOS está disponible en todas las ediciones de Visual Studio, incluida la edición Community Edition gratuita.
Android SDK Manager de Xamarin
La administración de Android SDK es más fácil gracias al nuevo Android SDK Manager de Xamarin. Para usar el nuevo SDK Manager, vaya a Herramientas -> Android -> Administrador de Android SDK en Visual Studio.
Mejoras en las herramientas de F#
La versión de Visual Studio 2017 15.5 se centra en la compatibilidad de las herramientas de F# con proyectos del SDK de .NET Core. Ahora se admite lo siguiente:
- Puede crear aplicaciones de consola de .NET Core, bibliotecas de .NET Standard y proyectos de prueba unitaria de .NET Core desde Archivo > Nuevo proyecto.
- Se ha agregado compatibilidad con los proyectos existentes de .NET Core y .NET Standard.
- Se ha agregado compatibilidad con los proyectos existentes del SDK de .NET Core que tienen como destino una versión de .NET Framework.
- Se admiten las referencias entre proyectos.
- Se ha agregado compatibilidad con proyectos del SDK web (por ejemplo, proyectos de ASP.NET Core de F# o un proyecto que use la plantilla Giraffe).
- Ya se puede hacer clic con el botón derecho en las herramientas de publicación con los proyectos del SDK web.
- Se admite la autogeneración de una canalización de CI/CD con herramientas de Visual Studio Team Services.
También se han realizado varias mejoras en las herramientas de Visual F# que no se centran en los proyectos del SDK de .NET Core. Entre ellas, las siguientes:
- Ir a definición de F# a C#, de Saul Rennison y Vasily Kirichenko.
- Coloración para el tema azul (contraste adicional), de Microsoft y Vasily Kirichenko.
- Las páginas de propiedades ahora ajustan el tamaño automáticamente de la forma adecuada en distintos monitores.
- Sangría automática inteligente para las nuevas líneas cuando la sangría está establecida en "Inteligente", de Duc Nghiem Xuan.
- Eliminación automática de la sangría para los corchetes de cierre cuando la sangría está establecida en "Inteligente", de Saul Rennison.
- Los campos de enumeración ahora pueden verse como símbolos en la información sobre herramientas, Buscar todas las referencias, Ir a todo y Cambio de nombre en línea, de Vasily Kirichenko.
- Los comentarios de documentación XML que están separados por líneas nuevas no se anteponen al comentario de documentación XML actual cuando se mantiene el mouse encima, de Vasily Kirichenko.
- CHBen ha corregido la documentación XML de la palabra clave ref.
- Se han aplicado varias correcciones de errores y mejoras de rendimiento.
Si encuentra algún problema, regístrelo en nuestro repositorio de GitHub.
Cambios en la configuración de F#
Se ha cambiado la forma en que se adquiere F#:
- Si instala una carga de trabajo que requiere .NET Core 2.0, también se instalará de forma predeterminada la compatibilidad con el lenguaje F#. Las cargas de trabajo de .NET Core, ASP.NET y Azure ahora hacen esto.
- Se ha cambiado el nombre de la casilla "Compatibilidad con el lenguaje F#" a "F# desktop support" ("Compatibilidad con el escritorio de F#") en el desarrollo de escritorio de .NET, Almacenamiento y procesamiento de datos, ciencia de datos y cargas de trabajo de aplicaciones analíticas.
Mejoras del compilador de F# 4.1
Se ha realizado una serie de correcciones de errores en el compilador de F# 4.1 con esta versión:
- Mejoras en la generación de archivos PDB en el compilador de F#, que corrigen cinco problemas conocidos en la depuración de F# que se remontan al año 2014.
- Corrección de los campos de registro que el compilador resolvía incorrectamente, de Vasily Kirichenko.
StartAsTask
ya espera correctamente a que las cancelaciones se completen, de Matthias Ditrich.- Las referencias de ensamblado se crean cuando un tipo se usa solo en un atributo.
- Las uniones discriminadas de structs de un solo caso con el mismo nombre de caso ya no se convierten silenciosamente en un tipo de objeto.
- Posible bucle asincrónico sin fin en
MailboxProcess
. Se ha corregido la recepción.
Mejoras en Visual C++
Ya puede importar proyectos de CMake y configuraciones de caché existentes en el IDE en Archivo>Abrir>CMake.
Compatibilidad de la acción Abrir carpeta con exportaciones del compilador en línea de ARM
Si elige la opción en la carga de trabajo de Linux C++ para proyectos incrustados y de IoT, podrá editar y compilar proyectos destinados a microcontroladores ARM. Es posible abrir proyectos exportados como GCC desde el compilador en línea de ARM, de los que posteriormente se puede realizar una compilación cruzada localmente desde dentro de Visual Studio. Para obtener más información, vea nuestra entrada de blog sobre Visual C++ para el desarrollo de ARM.
Tareas remotas
La acción Abrir carpeta ahora es compatible con las tareas remotas. Se trata de tareas que se ejecutan en un sistema remoto a través de Secure Shell (SSH). Estas tareas también pueden configurarse de modo que copien archivos en el equipo de destino para realizar acciones como compilar código con "make" en un sistema Linux. Para obtener más información, vea nuestra entrada de blog sobre el uso de tareas remotas en Visual Studio.
Mejoras en la biblioteca de plantillas estándar
El sitio web de estándares abiertos contiene diversas páginas para los grupos que generan estándares abiertos. Se han agregado las siguientes mejoras a la biblioteca de plantillas estándar en lo que respecta al estándar C++17:
not_fn()
: P0005R4 recomienda adoptar el enlazador de funciónnot_fn
de la versión 2 de los Elementos fundamentales de biblioteca TS v2 como reemplazo de los antiguos negadores,not1
ynot2
.- Nueva redacción de
enable_shared_from_this
: P0033R1Re-enabling shared_from_this
. - Se dejan en desuso vestigios de elementos de biblioteca: P0174R2. Varias características de la biblioteca estándar de C++ se han visto superadas por adiciones realizadas a lo largo de los años, o bien hemos comprobado que no cumplen su objetivo de la manera prevista inicialmente. En este documento se propone poner en desuso las características en los casos en que existan opciones mejores, más sencillas o más claras.
- Se elimina la compatibilidad con el asignador en
std::function
: P0302R1. La plantilla de clase std::function tiene varios constructores que toman un argumento de asignador, pero la semántica no es clara, y hay problemas técnicos al almacenar un asignador en un contexto con tipo borrado y recuperar ese asignador más adelante para las asignaciones necesarias durante la asignación de copia. Esos constructores deberían eliminarse. - Correcciones para
not_fn()
: P0358R1. Se ha propuesto la nueva redacción destd::not_fn
que, entre otras mejoras, permite la propagación de la categoría de valor en caso de que haya una invocación de contenedores. shared_ptr<T[]>
,shared_ptr<T[N]>
: P0414R2. Los cambios deshared_ptr
de Elementos fundamentales de biblioteca se combinan en C++17.- Se corrige
shared_ptr
para las matrices: P0497R0. Correcciones enshared_ptr
para admitir matrices. - Se deja en desuso
shared_ptr::unique()
: P0521R0. Resolución propuesta para CA 14 (shared_ptr use_count/unique
). - Se deja en desuso
codecvt
: P0618R0.<codecvt>
no es la mejor manera de resolver la transcodificación de Unicode. Se ha retirado este componente de la biblioteca en el Anexo D. - Se eliminan las especificaciones de excepción dinámicas: P0003R5. Las especificaciones de excepción dinámica se dejaron en desuso en C++11. Se elimina la característica de C++17, pero se conserva la especificación throw() (todavía en desuso) estrictamente como un alias para noexcept (true).
- Se insertan asignaciones y conjuntos: P0083R3. Este diseño permite insertar operaciones de todo tipo, quitar elementos (incluidas claves de asignación) del contenedor y realizar otras operaciones y diseños útiles. Es una mejora de los contenedores asociativos y asociativos desordenados para que admitan la manipulación de nodos. Se trata de una simple adición a la biblioteca estándar.
- Se aclara
insert_return_type
: P0508R0. Los contenedores asociativos con claves únicas y los contenedores desordenados con claves únicas tienen una inserción de función de miembro que devuelve el tipo anidadoinsert_return_type
. Ese tipo de valor devuelto es una especialización del tipo especificado en esta sección. - Variables alineadas para STL: P0607R0.
Mejoras del compilador de Visual C++
El compilador de Visual C++ admite aproximadamente un 75 % de las características de C++17, incluidos los enlaces estructurados, las expresiones lambda constexpr
, if constexpr
, las variables alineadas, las expresiones fold, los literales Hexfloat y la adición de noexcept
al sistema de tipos. Están disponibles en el modificador /std:c++17
. El modo de conformidad /permissive-
incluye compatibilidad parcial con la búsqueda de nombres en dos fases y una compatibilidad de expansión del paquete mejorada con las plantillas variádicas. Además, se ha agregado el modo /permissive-
como nuevo menú desplegable Lenguaje en las propiedades del proyecto para los proyectos de C++.
Mejoras del optimizador de Visual C++
El equipo de generación de código de C++ ha realizado mejoras en las optimizaciones del compilador existentes y ha agregado nuevas optimizaciones en la versión 15.5.
Mejoras destacadas en el vinculador:
- Experimentará una implementación de
/OPT:ICF
nueva y más rápida, con aceleraciones de hasta un 9 % en el tiempo de vínculo. - Se han aplicado correcciones a la vinculación incremental. La vinculación incremental nunca será más lenta que la vinculación completa.
Mejoras destacadas en las optimizaciones existentes:
- Se ha mejorado la heurística de vectorizador para las expresiones condicionales.
- Se ha mejorado la optimización de
loop-if-unswitching
. - Se han introducido mejoras en la reversión de bucles.
- Se ha mejorado la generación de código flotante mínimo/máximo.
Nuevas optimizaciones destacadas:
- Se han mejorado las instrucciones y se han eliminado aquellas que eran redundantes (y parcialmente redundantes) destinadas al optimizador SSA.
- Se ha optimizado la vectorización de los almacenes escalares condicionales.
- Se han combinado las llamadas
sin(x)
ycos(x)
asincos(x)
.
Visual C++ admite las instrucciones AVX-512 de Intel, como las instrucciones de longitud del vector, que incorporan nuevas funciones de AVX-512 en registros con una amplitud de 128 y 256 bits.
Se están suministrando más de 20 comprobaciones nuevas de C++ Core Guidelines en el análisis de código de C++. Estas comprobaciones cubren la corrección del puntero inteligente, el uso adecuado de inicializadores globales y la marca de usos de construcciones como goto
y bad_cast
.
Algunos números de advertencias que puede encontrar en 15.3 ya no están disponibles en 15.5. Estas advertencias se han sustituido por comprobaciones más específicas.
Compatibilidad integrada con el marco de Google Test y Boost.Test
Escriba, detecte y ejecute pruebas unitarias de Google Test y Boost.Test en Visual Studio. De forma predeterminada, el Explorador de pruebas admite los marcos de Google Test y Boost.Test. Si va a actualizar desde una instalación anterior de Visual Studio, abra el Instalador de Visual Studio, haga clic en "Modificar" en la instancia de Visual Studio y active las casillas "Test Adapter para Google Test" y "Test Adapter para Boost.Test" en "Desarrollo para el escritorio con C++". Cree fácilmente un proyecto de Google Test: seleccione Archivo > Nuevo > Proyecto > Visual C++ > Prueba > Google Test.
Para obtener más información, vea las páginas How to use Google Test for C++ in Visual Studio (Cómo usar Google Test para C++ en Visual Studio) y How to use Boost.Test for C++ in Visual Studio (Cómo usar Boost.Test para C++ en Visual Studio) en Microsoft Docs.
Herramientas web de Visual Studio
- Se ha mejorado el formato de sintaxis de Razor.
- Se ha mejorado la experiencia para publicar aplicaciones de ASP.NET en máquinas virtuales de Azure.
Herramientas de contenedor de Docker
- Las herramientas de Visual Studio para contenedores de Docker ya admiten Dockerfiles de varias etapas para simplificar la creación de imágenes de contenedor optimizadas.
- Si ejecuta Visual Studio en un equipo con Windows 10 versión 1709 o Windows Server versión 1709, las imágenes de contenedor usarán Windows Server, versión 1709, de forma predeterminada. Para cambiar esta configuración, modifique el archivo Dockerfile. Tenga en cuenta que las imágenes de contenedor que usan versiones anteriores de Windows solo se ejecutarán en Windows 10 versión 1709 y Windows Server versión 1709 en modo de aislamiento de Hyper-V. Para obtener más información, vea la página Compatibilidad con versiones de contenedores de Windows.
- De forma predeterminada, Visual Studio extrae, compila y ejecuta automáticamente las imágenes de contenedor necesarias en segundo plano cuando se abre un proyecto que incluye compatibilidad con Docker. Puede deshabilitarlo en la opción Iniciar automáticamente los contenedores en segundo plano de Visual Studio.
Mejoras de TypeScript/JavaScript
Compatibilidad con Angular 2
Los desarrolladores de Angular 2 ya pueden ver los errores, las finalizaciones y la navegación por el código en plantillas en línea y archivos de plantilla .ngml. Vea el repositorio de ejemplos para obtener información general e instrucciones.
Mejoras de rendimiento
Hemos agregado la casilla Analizar solo los proyectos que contienen archivos abiertos en el editor en la página de Opciones de proyecto del editor de texto de JavaScript/TypeScript. Esta opción mejorará el rendimiento y la confiabilidad en soluciones de gran tamaño. Tenga en cuenta que, cuando se activa esta casilla, se debe realizar una compilación de soluciones para ver una lista completa de los errores de TypeScript en todos los archivos.
Se ha corregido un problema que hacía que el servicio de lenguaje de TypeScript/JavaScript usara más memoria de la prevista, lo que podía hacer que se cargara una versión incorrecta de TypeScript en las soluciones con varios proyectos.
Herramientas de Windows Communication Foundation (WCF)
El proveedor de servicios conectado de WCF Web Service Reference(figura 5) forma parte ahora de Visual Studio 15.5.
Para usar esta herramienta, haga clic con el botón derecho en el elemento de proyecto Dependencias en el proyecto de .NET Core, seleccione la opción Agregar servicio conectado y escriba la dirección del servicio web para el que quiere generar código. El código proxy generado del cliente WCF se guarda en un archivo de C# que se agrega automáticamente al proyecto. Esto permite que el código basado en .NET Core se comunique fácilmente con el servicio web.
Consulte las notas de la versión de WCF Web Service Reference en GitHub para obtener más información.
Depuración y diagnósticos
Depurar aplicaciones en producción con el depurador de instantáneas
Ya puede usar puntos de acoplamiento y puntos de registro para depurar con aplicaciones ASP.NET y ASP.NET Core ejecutadas en Azure App Services con un impacto mínimo en la aplicación.
- Establezca los puntos de acoplamiento (figura 6) de modo que capturen el estado de la aplicación, incluidas las variables locales, las inspecciones y la pila de llamadas. A diferencia de lo que sucede con los puntos de interrupción, la aplicación no se detiene cuando se alcanza un punto de acoplamiento.
- Use los puntos de registro (figura 7) para registrar los mensajes nuevos de la aplicación sin necesidad de agregar código o volver a implementar la aplicación.
Compatibilidad con código fuente incrustado y archivos PDB incrustados
Con el código fuente incrustado, el depurador de Visual Studio ahora puede extraer y usar archivos de código fuente para los binarios administrados directamente desde los archivos PDB. Combine el código fuente incrustado con los archivos PDB incrustados para crear binarios depurables totalmente independientes. Obtenga más información sobre el uso del modificador del compilador /embed.
Ahora, también puede depurar usando la opción Editar y continuar para código administrado al compilar con archivos PDB incrustados.
Característica de step-back durante la depuración con IntelliTrace
Gracias a la nueva característica de depuración Step-back de IntelliTrace, ahora se realiza una instantánea de la aplicación en cada punto de interrupción y paso del depurador. Esto le permite volver a puntos de interrupción anteriores y ver el estado de la aplicación tal y como estaba en un momento anterior.
Esta característica está disponible en la Actualización de aniversario de Windows 10 y versiones posteriores. Actualmente admite la depuración de ASP.NET, WinForms, WPF, aplicaciones de consola administrada y bibliotecas de clase administrada (figura 8). Para habilitar esta característica, vaya a Herramientas>Opciones>IntelliTrace y seleccione IntelliTrace events and snapshots (Eventos e instantáneas de IntelliTrace).
Acceso a recursos de Azure desde Visual Studio con el acceso condicional habilitado
Visual Studio ya admite el acceso a recursos de Azure que tienen el acceso condicional habilitado que requiere la autenticación con 2FA, aunque su cuenta no requiera 2FA. Antes, si la cuenta requería 2FA para iniciar sesión, Visual Studio le solicitaba 2FA y le permitía el acceso a los recursos que necesitaban 2FA. En cambio, si su cuenta no requería 2FA, Visual Studio no podía acceder a los recursos 2FA.
Ahora, cuando las cuentas no requieren 2FA pero los recursos sí, puede autenticar la cuenta dentro de Visual Studio sin 2FA y, cuando intente acceder por primera vez a un recurso de Azure que requiere 2FA, Visual Studio le pide que vuelva a autenticarse y requiere 2FA para permitir el acceso al recurso.
Compatibilidad de las herramientas de Office con Office en la Tienda Windows
Los proyectos de complementos web de Office y los proyectos de VSTO ahora admiten el desarrollo con Office en la Tienda Windows. Puede crear, compilar, depurar y publicar proyectos de complementos web y proyectos de VSTO mediante Office en la Tienda de Windows.
- Se necesita Fall Creators Update (versión 1709) para Windows 10 o Windows Server 2016 para usar las herramientas de Office con Office en la Tienda Windows.
Visual Studio Tools para Unity
- Los proyectos de Unity ahora se recargan automáticamente en Visual Studio al agregar o quitar un script de Unity.
- Se ha corregido la generación de proyectos de reproductor al trabajar en un juego para UWP con el back-end IL2CPP/.NET 4.6.
- Se ha introducido una opción para usar el depurador de Mono compartido por Xamarin y Visual Studio para Mac para depurar el Editor de Unity.
Live Unit Testing
- Las compilaciones de Live Unit Testing ahora están fuera de proceso, lo que mejora el uso de memoria en Visual Studio.
Empaquetado de Windows
Hemos agregado compatibilidad en el proyecto de empaquetado para incluir aplicaciones y componentes UWP que permiten aprovechar las capacidades de Windows 10 más recientes en las aplicaciones de escritorio existentes. Para incluir componentes UWP, puede Add Reference
a la aplicación UWP (figura 9).
Puede usar el Asistente para paquetes de almacén para generar los archivos que necesita para enviar la aplicación de Puente de dispositivo de escritorio al almacén, al igual que con los proyectos de UWP existentes.
Visual Studio 2017, versión 15.5.1
Publicado el 7 de diciembre de 2017
Principales problemas corregidos en la versión 15.5.1
Estos son los problemas identificados por los clientes que se han solucionado en esta versión:
- Versión de
xamarin.forms
con referencia incorrecta en la plantilla. - El cambio de ramas en Git interrumpe IntelliSense.
- Se notifican errores si no existe ninguno (proyectos de Visual Basic).
- Xamarin ahora es compatible con Xcode 9.2:
- Esto corrige los errores notificados por los clientes relacionados con los guiones gráficos y el simulador remoto.
Visual Studio 2017, versión 15.5.2
Publicado el 14 de diciembre de 2017
Principales problemas corregidos en la versión 15.5.2
Estos son los problemas identificados por los clientes que se han solucionado en esta versión:
- No puede compilar el proyecto de Xamarin para Android porque
R$anim.class
está en uso. - No se pudo cargar el paquete
MonoAndroidDesignerPackage
. - Crypto++ con las optimizaciones predeterminadas inicia un proceso de compilación infinita al intentar optimizar blake2.cpp.
- La migración desde VS2017 15.4 a 15.5 provoca el error CS026: "No se pudo encontrar el tipo o espacio de nombres con el nombre XXX…".
- La instalación de Visual Studio 2017 Community 15.5 con
Option Strict On
crea errores de IntelliSense en proyectos de VB. - Se alcanza un tiempo de compilación infinito al intentar optimizar blake2.cpp.
- Se producen bloqueos de motor aleatorios en el optimizador de VS 15.5.
- La migración a VS 15.5 (desde 15.4) no permite compilar
mhook:disasm_x86.c
. - La instalación de Unity junto a VS Community 15.5 provoca que no se reconozca el espacio de nombres.
Visual Studio 2017, versión 15.5.3
Publicado el 9 de enero de 2018
Resumen de las actualizaciones de la versión 15.5.3
Aviso de seguridad de Microsoft para .NET Core
CVE-2018-0786 Omisión de la característica de seguridad en la validación de certificado X509. Microsoft publica este aviso de seguridad para proporcionar información sobre una vulnerabilidad en las versiones públicas de .NET Core 1.0, 1.1 y 2.0. En este aviso también se proporcionan instrucciones sobre qué deben hacer los desarrolladores para actualizar sus aplicaciones correctamente. Este aviso de seguridad también se puede aplicar a .NET nativo para UWP.
Microsoft es consciente de que hay una vulnerabilidad de seguridad en las versiones públicas de .NET Core que permiten que un atacante pueda presentar un certificado marcado como inválido para un uso específico, pero que un componente lo use para ese propósito. Esta acción no tiene en cuenta el etiquetado de Uso mejorado de clave.
La actualización de seguridad soluciona la vulnerabilidad asegurándose de que los componentes de .NET Core validan completamente los certificados. Recomendamos a los administradores del sistema que actualicen sus entornos de ejecución de .NET Core a las versiones 1.0.9, 1.1.6 y 2.0.5. Recomendamos a los desarrolladores que actualicen el SDK de .NET Core a la versión 2.1.4 o 1.1.7.
CVE-2018-0764 Denegación de servicio al analizar documentos XML. Microsoft publica este aviso de seguridad para proporcionar información sobre una vulnerabilidad en las versiones públicas de .NET Core 1.0, 1.1 y 2.0. En este aviso también se proporcionan instrucciones sobre qué deben hacer los desarrolladores para actualizar sus aplicaciones correctamente.
Microsoft es consciente de que hay una vulnerabilidad de denegación de servicio en todas las versiones públicas del núcleo de .NET debido a un procesamiento incorrecto de documentos XML. Un atacante que aprovechase correctamente esta vulnerabilidad podría producir una denegación de servicio en una aplicación .NET. Un atacante remoto no autenticado podría aprovechar esta vulnerabilidad si usa solicitudes creadas especialmente a una aplicación .NET Core.
La actualización soluciona la vulnerabilidad mediante la corrección de cómo el núcleo de .NET controla el procesamiento de documentos XML. Recomendamos a los administradores del sistema que actualicen sus entornos de ejecución de .NET Core a las versiones 1.0.9, 1.1.6 y 2.0.5. Recomendamos a los desarrolladores que actualicen el SDK de .NET Core a la versión 2.1.4 o 1.1.7.
Principales problemas corregidos en la versión 15.5.3
Estos son los problemas identificados por los clientes que se han solucionado en esta versión:
- Error C3821 en
xlocale
en c++/clr. - Si se usa un encabezado en una sección de código no administrado de un proyecto de C++/CLI administrado, ya no se compilará.
- Se produce un error en VS2017 con 10 WDK durante el aprovisionamiento remoto de KM.
- Visual Studio Tools para Unity no ha podido convertir símbolos de depuración después de actualizar a VS 15.5.
- Más información sobre los Avisos de seguridad de Microsoft para .NET Core.
Visual Studio 2017, versión 15.5.4
Publicado el 16 de enero de 2018
Principales problemas corregidos en la versión 15.5.4
Estos son los problemas identificados por los clientes que se han solucionado en esta versión:
- El depurador no puede seguir ejecutando el proceso. Operación no admitida. Error desconocido: 0x9233000b.
- Los proyectos y soluciones recientes no se rellenan una vez ejecutados.
- La compilación se completa cada vez con la versión 15.5.
- Todavía se muestran errores de IntelliSense incorrectos en VS 15.5.2 para proyectos de Visual Basic.
- Hay referencias sin resolver en VS2017 15.5.2 cuando la opción "Permitir inicialización de proyectos en paralelo" está habilitada.
- Actualización a la versión 15.5.2: no se puede iniciar ni reparar VS.
- Problema de instalación de VS2017.
- No se puede instalar debido a BSOD.
Visual Studio 2017, versión 15.5.5
Publicado el 25 de enero de 2018
Resumen de las actualizaciones de la versión 15.5.5
- El compilador de MSVC se ha actualizado para que sea compatible con el modificador de /Qspectre, que inserta automáticamente una barrera de especulación cuando el compilador detecta instancias de la variante 1 de espectro. Para obtener más información sobre /Qspectre, consulte el Blog del equipo de Visual C++.
Principales problemas corregidos en la versión 15.5.5
Estos son los problemas identificados por los clientes que se han solucionado en esta versión:
- La aplicación Xamarin muestra el error
Cannot access a disposed object. Object name: 'MobileAuthenticatedStream'
. - La aplicación Xamarin.Android muestra el error
ClassNotFoundException
al derivar de la claseApplication
. - Al actualizar, es posible que se desinstalen los SDK de Windows y Android instalados previamente.
- Se ha actualizado JDK 8 a la última versión para evitar errores de descarga desde el sitio web de Oracle.
Visual Studio 2017, versión 15.5.6
Publicado el 29 de enero de 2018
Resumen de las actualizaciones de la versión 15.5.6
Visual Studio 2017, versión 15.5.7
Publicado el 20 de febrero de 2018
Resumen de las actualizaciones de la versión 15.5.7
- Team Explorer es compatible con TLSv1.2. Hemos actualizado los componentes de Git y Git Credential Manager que se distribuyen en Visual Studio. El componente opcional de Git para Windows también se ha actualizado. Esta actualización permite a Git conectarse a los servicios que hayan puesto en desuso la compatibilidad con TLSv1 y TLSv1.1 en favor de TLSv1.2.
Principales problemas corregidos en la versión 15.5.7
Estos son los problemas identificados por los clientes que se han solucionado en esta versión:
- Los proyectos destinados a .NET Core 2.1 o una versión más reciente no son compatibles con la versión 15.5 de Visual Studio 2017.
- Se ha solucionado un problema por el cual la instalación del SDK para .NET Core 2.1 o una versión más reciente provocaría la desaparición de la opción de crear aplicaciones web de ASP.NET Core 2.0.
Problemas conocidos
Estamos plenamente dispuestos a escuchar sus comentarios. Visite el sitio de la comunidad de desarrolladores para encontrar los problemas más recientes, dejar constancia de nuevos problemas y votar los problemas existentes.
Consulte todos los problemas conocidos y las soluciones alternativas disponibles en Visual Studio 2017, versión 15.5.
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 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.
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.