Visual Studio 2015 Update 3

Last Update: 07/04/2017

Fecha de lanzamiento: 27 de junio de 2016

Nos complace anunciar la publicación de Visual Studio 2015 Update 3. Uno de los principales problemas comunicados en Update 2 era un alto consumo de memoria. Este problema se ha resolvió en Update 3 RC, llegó a los clientes que informaron sobre él y recibimos una confirmación positiva de la corrección. En Update 3 verá muchas estas correcciones para solucionar problemas comunicados por los clientes acerca del rendimiento y la estabilidad. Si estas no son las notas de la versión que buscaba, tenga en cuenta que está consultando las notas de la versión más reciente.

Envíenos sus comentarios mediante la opción Comentarios en Visual Studio. También puede enviar sugerencias en el sitio de Visual Studio 2015 UserVoice.

Descargar

Puede descargar Visual Studio 2015 desde My.VisualStudio.com. My.VisualStudio.com requiere una suscripción gratuita a Dev Essentials o una suscripción a Visual Studio.

Para más información, vea Cómo: Instalar una versión específica de Visual Studio.

Novedades

Versiones relacionadas

Otros cambios

Herramientas para Apache Cordova

Visual Studio 2015 Update 3 incluye herramientas para Apache Cordova Update 10, incluidas las mejoras siguientes. Para más información sobre esta versión, consulte las notas de la versión de Herramientas para Apache Cordova Update 9 y Update 10. Para ver las últimas novedades sobre nuestras herramientas, visite nuestro blog para desarrolladores en GitHub.

  • Hemos agregado compatibilidad con Cordova 6.1.1, la versión predeterminada para nuevos proyectos.
  • Hemos retirado el registro de complementos de Cordova (Cordova Plugin Registry) que se usaba en Cordova 4.x, lo que significa que ahora se requiere Cordova 5.x o una versión posterior para agregar complementos.
  • Se ha actualizado la lista de complementos principales, que ahora incluye complementos para escenarios de empresa, como Intune, Azure Engagement, seguridad y almacenamiento local de SQLite.
  • Ahora puede agregar complementos desde el diseñador de configuración mediante el nombre del paquete npm o el identificador.

plugin-byid

  • También puede agregar complementos que requieren parámetros desde el diseñador de configuración.

plugin-parameters

Developer Analytics Tools

Hemos agregado las siguientes mejoras en Developer Analytics Tools v7.0.2:

  • Tendencias de Application Insights, una herramienta para buscar tendencias en la telemetría de la aplicación.
  • Nuevo Excepción de telemetría en CodeLens.
  • Información de telemetría de producción agregada a las excepciones en las herramientas de diagnóstico.
  • Compatibilidad para agregar Application Insights a proyectos de ASP.NET Core RC2 desde Visual Studio.
  • Eventos de herramientas de diagnóstico para proyectos ASP.NET 5 RC1 y ASP.NET Core RC2.
  • Actualizaciones automáticas de la búsqueda de Application Insights cuando se seleccionan filtros detallados, intervalos de tiempo y eventos.
  • Posibilidad de ir al código desde las solicitudes en la búsqueda.
  • Experiencia de inicio de sesión de HockeyApp mejorada.

Para más información, consulte el notas técnicas en la documentación de Microsoft Azure.

Depuración y diagnósticos

En Update 3, se han agregado herramientas de diagnóstico para aplicaciones que se ejecutan en dispositivos OneCore, incluidos HoloLens e IOT.

Mejoras de Editar y continuar de C++:

  • Mejor rendimiento y confiabilidad cuando FASTLINK está habilitado.
  • La correcta aplicación de cambios de código en bibliotecas estáticas ya no genera código obsoleto.
  • Las advertencias C4656 ya no aparecen aparecerá para los cambios de tipo falso positivo durante la recompilación.
  • Compatibilidad para agregar un nuevo tipo con el mismo nombre distribuido en varias unidades de compilación.

Mejoras en la depuración de IU XAML:

  • Cada vez que el foco cambia en la aplicación, la nueva característica de seguimiento de enfoque del Árbol visual dinámico hace que la selección que aparece en el árbol se actualice al elemento enfocado en ese momento.

IDE de Visual Studio

Suscripciones y claves de producto

En Update 3, hemos realizado varios cambios para dar respuesta a los comentarios de los clientes que usan suscripciones a través de una identidad en línea o claves de producto para desbloquear el IDE:

  • Ya no es necesario visitar https://my.visualstudio.com para activar la suscripción asignada a la nube de Visual Studio, y se puede empezar a usar el IDE de Visual Studio en cuanto se asigna la suscripción.
  • Hemos mejorado el control de errores al aplicar una clave de producto.
  • Todas las operaciones de cuentas y licencias de los usuarios ahora están protegidas mediante HTTPS.
  • Hemos realizado mejoras de accesibilidad en el cuadro de diálogo de configuración de la cuenta para activar una suscripción e introducir una clave de producto.
  • Nuevo Reautenticación cada 8 ~ días ya no es necesario para mantener la cuenta de personalización activada y sincronizar la configuración de movilidad.

Herramientas para aplicaciones universales de Windows

Visual Studio 2015 Update 3 incluye varias mejoras en las herramientas para aplicaciones universales de Windows. Una importante mejora ahora permite iniciar sesión con las credenciales de Azure Active Directory para una cuenta de la tienda de AAD al crear un paquete para enviarlo a la Tienda Windows. Una vez que el proyecto se ha asociado a la Tienda Windows, no será necesario iniciar sesión para crear un paquete y enviarlo a la Tienda.

.NET Native para aplicaciones universales de Windows

.NET Native 1.4 es una versión de servicio menor que mejora el rendimiento, soluciona varios errores comunicados por los clientes y mejora los tiempos de compilación de la compilación Versión de aplicaciones de gran tamaño. Las aplicaciones XAML y los juegos Unity que utilizan .NET Native 1.4 tendrán un mejor rendimiento de tiempo de ejecución. Estas mejoras se lograban al hacer que la reflexión y llamadas API nativas sean más rápidas.

Herramientas de arquitectura

Hemos dado respuesta a los comentarios de los clientes sobre la mejora del rendimiento y la confiabilidad.

Diseñadores gráficos específicos de dominio (incluidos EDMX y DBML)

En Windows 10, cuando se abren o se intentan editar diagramas grandes de EDMX o DBML mientras se muestra el teclado en pantalla, Visual Studio ya no deja de responder.

Mapa de código

  • Visual Studio ya no deja de responder al intentar “Generar mapa de código para la solución” si la solución contiene proyectos del instalador (.vdproj).
  • Visual Studio ya no deja de responder cuando se ejecuta un comando de mapa de código desde el editor de código ni cierra la ventana Mapa de código en cuanto aparece.

Validación de capas

  • La compilación de una solución que tiene un proyecto de modelado que a su vez contiene un diagrama de capas con una acción de validación, el núcleo de CPU ya no se usa una vez completada la compilación.
  • Ahora puede validar un diagrama de capas cuando su proyecto de modelado primario hace referencia a bibliotecas PCL (por ejemplo, ODP.Net).

Herramientas de Node.js para Visual Studio

Nuevo Node.js Tools 1.2 RC para Visual Studio ya está disponible para su descarga. Esperamos que esta versión proporcione un rendimiento y una estabilidad significativamente mejoradas, incluida la reducción de los errores de memoria insuficiente vistos en versiones anteriores.

Otros aspectos destacados se incluyen:

  • ES6 IntelliSense más rápido y mejor
  • Depuración más confiable
  • Experiencias de pruebas unitarias mejoradas (incluida la compatibilidad con cinta)
  • Comando .npm en más tipos de proyecto

Para obtener información completa y descargas, consulte la página de la versión Node.js Tools 1.2 RC.

Web Developer Tools

En los proyectos de aplicaciones web ASP.NET, aunque la casilla “Habilitar Editar y continuar” esté desactivada, el proceso de IIS Express ya no se detendrá cada vez que se detenga la depuración.

Visual C++

En Update 3, se han incluido mejoras, como nuevas comprobaciones y mensajes de advertencia para el compilador de C++, así como mejoras de rendimiento y compatibilidad para C# y código en Visual Basic.

Compilador C++

  • Ahora comprobamos el acceso de un constructor de copias o movimiento trivial eliminado. Sin la comprobación, se podía llamar incorrectamente al constructor de copias predeterminado (en el que la implementación puede tener un formato incorrecto) y provocar una posible generación de código incorrecto en tiempo de ejecución.
  • Std::is_convertible ahora detecta correctamente la asignación automática de un tipo de clase cuando el constructor de copias se ha eliminado o es privado.
  • La última fase de obsolescencia de la compatibilidad con ATL con atributos se inició en Visual Studio 2008, por lo que hemos agregado una nueva advertencia al compilador. Con Visual Studio 2015 Update 3, el uso de código ATL con atributos generará una advertencia de nivel 1 de forma predeterminada. C4467
  • Cuando se usan archivos PCH, los directorios include -I no coincidentes con el compilador entre compilaciones -Yc y -Yu ahora generan una nueva advertencia. C4599
  • Cuando se usan archivos PCH, las directivas #include no coincidentes en archivos de origen entre compilaciones -Yc y -Yu generarán ahora una advertencia. C4598

Para más información sobre cómo estos cambios pueden afectar al código existente, consulte Guía de migración y actualización de Visual C++ en MSDN.

Bibliotecas de C++

  • Se ha restaurado el rendimiento del modo de depuración cuando se destruyen intervalos de objetos triviales que han hecho la regresión en Update 2, como en el vector.
  • Hemos implementado los rasgos intercambiables del documento de trabajo C++17, a partir de la propuesta P0185 Adding [nothrow-]swappable traits. Como característica especulativa de C++17, los rasgos (is_swappable, is_swappable_with, is_nothrow_swappable y is_nothrow_swappable_with) solo son visibles, y las restricciones en std::swap solo están activas, al compilar con /std:c++latest.
  • Se han quitado las llamadas de eventos ETW (Seguimiento de eventos para Windows) de vcruntime140.dll y bibliotecas estáticas que anteriormente se desencadenaban durante el inicio del proceso y dllmain.
  • Nuevo Hemos quitado la longitud del nombre de símbolos en máquinas comunes utilizadas por los contenedores STL, como std::vector, lo que reduce la probabilidad de advertencias C4503. Por ejemplo, el siguiente tipo ya no genera una advertencia: concurrency::concurrent_unordered_map<>>>>.

  • ATL/MFC/AMP/PPL: se ha incluido un gran número de correcciones de conformidad relacionadas con la búsqueda en dos fases:

    • _com_ptr_t ahora tiene un constructor de movimiento y un operador de asignación de movimiento.
    • MFC: se ha corregido la gestión de valores HMENU que en ocasiones impedían que los menús se mostrasen correctamente en aplicaciones de 64 bits.

    • ATL/MFC: ya no se emiten las advertencias siguientes:

    • Invalidación u ocultamiento de función: C4263, C4264, C4266
    • Especificación de excepción no coincidente: C4986
    • /analyze: C6386

    • ATL: todas las variaciones de AtlThrow están correctamente marcadas con __declspec(noreturn). Esto evita la emisión de advertencias SAL erróneas.

    • ATL: se han mejorado o corregido varias anotaciones SAL.

    • /std:c++latest habilita las siguientes características nuevas: P0025R1 "clamp()", P0185R1 "is_swappable, is_nothrow_swappable" y P0272R1 "Non-const basic_string::data().".

    • /std:c++latest también controla la eliminación de las siguientes características antiguas: N4190 "Removing auto_ptr, random_shuffle(), And Old Stuff", P0004R1 "Removing Deprecated Iostreams Aliases", LWG 2385 "function::assign allocator argument doesn't make sense", así como varias características no estándar (el espacio de nombres std::tr1, algunas máquinas solo TR1 y el struct std::identity).

    • Se ha corregido un codegen incorrecto silencioso en atomic/atomic en x86.

    • STL ahora evita el uso de “magic statics” excepto cuando es absolutamente necesario, lo que mejora el codegen.

    • El constructor de reenvío directo de la tupla evita ahora competir con el constructor de copias, lo que corrige los errores del compilador en algunos escenarios.

  • Corrutinas:

    • Las palabras clave __yield_value & __await están en desuso. Utilice co_await / co_yield en su lugar.
    • Aviso de degradación agregado a los miembros to_address y from_promise de la clase coroutine_handle. En vez de coroutine_handle::to_address(), use coroutine_handle::address().
    • En vez de coroutine_handle::from_promise(Promise *P), use coroutine_handle::from_promise(Promise &P).
  • Se ha mejorado el rendimiento de std::equal y std::lexicographical_compare al distribuirse a memcmp y memchr de forma más agresiva, dando como resultado mejoras de rendimiento en algunas situaciones; por ejemplo: equal(char,char,char, char) en plataformas de 64 bits.

    • Se han mejorado las compilaciones de depuración de manera significativa al reducir el número de llamadas de función de contabilidad en nuestra maquinaria de depuración de iterador.
    • string::push_back ha mejorado otro 40 % en las compilaciones de versión si lo comparamos con la Update 2, con más mejoras sustanciales en las compilaciones de depuración (Esto se suma a las grandes mejoras de rendimiento ya incluidas en Update 2).
    • Las compilaciones de depuración de todos los algoritmos estándar se han mejorado mediante la eliminación de varios tipos de llamadas de soporte técnico de metaprogramación de plantilla vacía (por ejemplo, _Iter_cat), y en todos los algoritmos que toman predicados reduciendo el número de copias de predicado.
    • std::mismatch en _ITERATOR_DEBUG_LEVEL 1 y 2 mediante la comprobación de intervalo del segundo intervalo siempre que sea posible hacerlo antes de la iteración.
  • Se han aplicado mejoras en el diagnóstico de los mensajes _SCL_INSECURE_DEPRECATE en el resto de los algoritmos (en Update 2 tan solo un número reducido de algoritmos se había enlazado al nuevo mecanismo de degradación). Esto también mejora la experiencia de depuración al depurar en los algoritmos estándares, ya que no existe ninguna interacción de preprocesador _ITERATOR_DEBUG_LEVEL que declare varias copias de los algoritmos estándar. También hemos corregido lo siguiente:

    • Se ha corregido la incapacidad para compilar algunas funciones como mismatch(iter, iter, T[]) debido a la interacción entre nuestros _ITERATOR_DEBUG_ARRAY_OVERLOADS no estándar y los algoritmos de doble intervalo.
  • Se han corregido infracciones de la advertencia C4242 desactivada de forma predeterminada en la STL.
  • Se ha corregido un posible error de desbordamiento de enteros en std::pop_heap.
  • Se ha corregido un bloqueo potencial en /clr:pure debido a llamadas a LoadLibrary con inserción CLR mientras se mantiene el bloqueo de la configuración regional.

Depuración de C++/CLI

  • Nuevo El evaluador de expresiones de C++/CLI ahora admite características del depurador, como Natvis, que antes solo se admitían para aplicaciones nativas puras. Ahora, en una aplicación nativa y con administración mixta, cuando se muestran los objetos en una ventana de variables (o en una información sobre datos), se expandirán igual que lo hacen en una aplicación nativa pura de acuerdo con la definición realizadas por los visualizadores de tipo.

plugin-byid

Conjunto de herramientas de la plataforma Clang/C2

Se ha integrado la versión Clang 3.8 en Clang/C2 y proporcionado un conjunto de herramientas hospedado de 64 bits.

C++ MDD

Hemos habilitado la compatibilidad con la versión más reciente del NDK de Android R11C y hemos agregado la posibilidad de actualizar los proyectos actuales para destinarlos al NDK más reciente.

TypeScript

Nuevo Visual Studio 2015 Update 3 incluye TypeScript 1.8.34. Se ha corregido un error de memoria insuficiente con algunos proyectos grandes de TypeScript que utilizan AngularJS.

C# y Visual Basic

Nuevo Se ha invertido en reducir la superficie de memoria y mejorar el rendimiento del diagnóstico del código. Esto reducirá muchos de los bloqueos de memoria insuficiente que se producían en versiones anteriores. Hemos mejorado el rendimiento de la ejecución de diagnósticos de código en una solución completa. Para más información sobre las mejoras en el rendimiento de diagnóstico de código, consulte en MSDN la página How to: Enable and Disable Full Solution Analysis for Managed Code (Cómo habilitar y deshabilitar el análisis de una solución completa para código administrado).

Hay otras mejoras que incluyen lo siguiente:

  • Una opción para agregar una referencia a un paquete NuGet como una corrección rápida:

plugin-byid

Puede habilitar esta opción en Herramientas > Opciones > Editor de texto > C# > Opciones avanzadas, en “Directivas Using”:

plugin-byid

  • Se ha mejorado la compatibilidad con las bibliotecas de clase Portable dirigidas a la plataforma del estándar .NET.
  • Se han agregado mejoras de rendimiento en los métodos de C# Ir a implementación y Buscar todas las referencias. Para probar estos métodos, seleccione un objeto, haga clic con el botón derecho en él y, a continuación, selecciónelos en el menú.
  • Al aplicar una acción “corregir todo” en el documento, proyecto o solución, ahora se muestra una barra de progreso.
  • Nuevo Mayor rendimiento al volver a cargar proyectos de C# y VB en soluciones de gran tamaño. Para más información y sugerencias, lea: Performance considerations for large solutions (Consideraciones de rendimiento para grandes soluciones).

Team Explorer

Nuevo Sse han corregido varios errores en Team Explorer:

  • No se puede ver el contenido de un archivo que se ha eliminado de un repositorio Git.
  • Al ver el historial de una rama, debe deshabilitarse el icono Ir a elemento secundario cuando el foco es la última confirmación.
  • Al cambiar ramas mediante Git.exe, Visual Studio puede bloquearse o entrar en un estado desconocido.
  • Al ver el historial de una rama en un repositorio, el resaltado en el historial gráfico tiene problemas.
  • Al crear una rama en Team Explorer, el acceso directo Alt + B para Crear rama está en conflicto con el menú Compilar.
  • En una situación de uso elevado de memoria, al intentar desempaquetar un objeto mayor que la memoria disponible, Git genera un error "Object not found - no matching loose object ()" [Objeto no encontrado: ningún objeto dinámico coincidente )], en lugar de un error de memoria insuficiente.
  • Error de escritura en el mensaje de error "... Para abrir esta solución ...".
  • Al ver el historial de una rama y hacer clic en la primera confirmación del historial, la selección exclusiva está deshabilitada.
  • Al crear una solicitud de incorporación de cambios desde el menú contextual de la página de ramas de Team Explorer se utiliza la rama actual en lugar de la rama seleccionada.

Xamarin para Visual Studio

Nuevo Visual Studio 2015 Update 3 ahora incluye Xamarin 4.1. Además de una serie de correcciones de errores, esta versión agrega compatibilidad con tvOS, mejora el soporte del catálogo de recursos de iOS, mejora la experiencia de edición de XML y agrega selectores para implementaciones de SSL/TLS y HttpClient al crear aplicaciones iOS. Para más información, consulte el notas de la versión de Xamarin.

Problemas conocidos

Para ver una descripción completa de los problemas conocidos de esta versión, consulte el siguiente artículo de MSDN: Known Issues in Team Foundation Server Update 3 (Problemas conocidos en Team Foundation Server Update 3).