Leer en inglés

Compartir a través de


RCLogo Notas de la versión 16.7 de Visual Studio 2019


Comunidad de desarrolladores | Requisitos del sistema | Compatibilidad | Código distribuible | Historial de versiones | Términos de licencia | Blogs | Novedades de la documentación de Visual Studio


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

La versión 16.7 de Visual Studio 2019 ya no tiene soporte técnico.

Los usuarios de Enterprise y Professional de la versión 16.7 de Visual Studio 2019 contaban con soporte técnico y recibían correcciones de vulnerabilidades de seguridad hasta abril de 2022. Este período de tiempo viene determinado por el hecho de que, en marzo de 2021, Visual Studio 2019, versión 16.9 se designó como la siguiente línea de base de mantenimiento para el producto de Visual Studio 2019. Para obtener más información sobre las líneas base con soporte técnico de Visual Studio, revise la Directiva de compatibilidad para Visual Studio 2019

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

Versiones de Visual Studio 2019, versión 16.7

Notas de la versión archivadas de Visual Studio 2019

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 2022 en las publicaciones siguientes:


Icono de notas de la versión Visual Studio 2019, versión 16.7.28

Fecha de publicación: 19 de abril de 2022

En esta publicación de Visual Studio 2019, versión 16.7.28

  • Se ha corregido la regresión de vctip.exe de la versión 16.7.27.

Icono de notas de la versión Visual Studio 2019, versión 16.7.27

Fecha de publicación: 12 de abril de 2022

En esta publicación de Visual Studio 2019, versión 16.7.27

Aviso de seguridad

CVE-2022-24765 Vulnerabilidad de elevación de privilegios Existe una posible vulnerabilidad de elevación de privilegios en Git para Windows, en la que las operaciones de Git podrían ejecutarse fuera de un repositorio mientras se busca un directorio de Git. Git para Windows ahora está actualizado a la versión 2.35.2.1.

CVE-2022-24767 Vulnerabilidad de secuestro de DLL Existe una posible vulnerabilidad de secuestro de DLL en el instalador de Git para Windows, cuando se ejecuta el desinstalador con la cuenta de usuario SYSTEM. Git para Windows ahora está actualizado a la versión 2.35.2.1.

CVE-2022-24513 Vulnerabilidad de elevación de privilegios Existe una posible vulnerabilidad de elevación de privilegios cuando el servicio de actualización de Microsoft Visual Studio analiza incorrectamente los datos de configuración locales.


Icono de notas de la versión Visual Studio 2019, versión 16.7.26

Fecha de publicación: 8 de marzo de 2022

En esta publicación de Visual Studio 2019, versión 16.7.26

Aviso de seguridad

CVE-2020-8927 Vulnerabilidad Existe una vulnerabilidad de ejecución remota de código en .NET 5.0 y .NET Core 3.1 donde existe un desbordamiento de búfer en las versiones de la biblioteca de Brotli anteriores a la 1.0.8.

CVE-2022-24464 Vulnerabilidad Existe una vulnerabilidad de denegación de servicio en .NET 6.0, .NET 5.0 y .NET CORE 3.1 al analizar determinados tipos de solicitudes de formulario http.

CVE-2022-24512 Vulnerabilidad Existe una vulnerabilidad de ejecución remota de código en .NET 6.0, .NET 5.0 y .NET Core 3.1 donde se produce una saturación del búfer de pila en la rutina de análisis doble de .NET.

CVE-2021-3711 Vulnerabilidad de desbordamiento de búfer de OpenSSL Existe una posible vulnerabilidad de desbordamiento de búfer en OpenSSL, que usa Git para Windows. Git para Windows ahora se ha actualizado a la versión 2.35.1.2, que soluciona este problema.


Icono de notas de la versión Visual Studio 2019, versión 16.7.25

Fecha de publicación: 8 de febrero de 2022

En esta publicación de Visual Studio 2019, versión 16.7.25

Aviso de seguridad

CVE-2022-21871 Vulnerabilidad de elevación de privilegios del entorno de ejecución del recopilador estándar del concentrador de diagnósticos Existe una vulnerabilidad de elevación de privilegios si el recopilador estándar del centro de diagnósticos administra incorrectamente operaciones de datos.


Icono de notas de la versión Visual Studio 2019, versión 16.7.24

Publicada el 11 de enero de 2022

En este lanzamiento de Visual Studio 2019, versión 16.7.24

  • Se ha corregido un problema por el que no se podían depurar aplicaciones varias veces cuando se usaba Terminal Windows como terminal predeterminado.
  • Se ha corregido el programa de instalación para desbloquear clientes en configuraciones restringidas.
  • Se ha corregido un problema que impedía que un cliente pudiera actualizar un programa previo de una versión más actual. Una vez que el cliente utilice el programa previo y el instalador que se han distribuido en enero de 2022 o en fechas posteriores, todas las actualizaciones que usen los programas previos siguientes deberían funcionar mientras dure el ciclo de vida del producto.

De Developer Community


Icono de notas de la versión Visual Studio 2019, versión 16.7.23

Fecha de publicación: 14 de diciembre de 2021

En esta publicación de Visual Studio 2019, versión 16.7.23

  • Se ha agregado Python 3.9.7 a la carga de trabajo de Python. Se ha eliminado Python 3.7.8 debido a una vulnerabilidad de seguridad.

Aviso de seguridad

CVE-2021-43877 Vulnerabilidad Existe una vulnerabilidad de elevación de privilegios en ANCM que podría permitir la elevación de privilegios cuando las aplicaciones .NET Core, .NET 5 y .NET 6 se hospedan en IIS.


Icono de notas de la versión Visual Studio 2019, versión 16.7.22

fecha de publicación: 16 de noviembre de 2021

En esta publicación de Visual Studio 2019, versión 16.7.22

  • Los programas de arranque ahora respetan el parámetro --useLatestInstaller, lo que hace que el instalador más reciente se integre en el diseño. Este instalador más reciente, que se incluye con Visual Studio 2022, habilita el escenario en el que las empresas quieren realizar la transición de sus clientes de una ubicación de diseño a otra. Para obtener más información, consulte la [Guía de administradores de Visual Studio](* Los programas previos ahora respetan el parámetro --useLatestInstaller, que hace que el instalador más reciente se integre en el diseño. Este instalador más reciente, que se incluye con Visual Studio 2022, permite que a las empresas realizar la transición de sus clientes de una ubicación de diseño a otra. Para obtener más información, consulte la Guía de administradores de Visual Studio).

Icono de notas de la versión Visual Studio 2019, versión 16.7.21

fecha de publicación: 09 de noviembre de 2021

En esta publicación de Visual Studio 2019, versión 16.7.21

  • Se ha corregido un error que provocaba que desapareciera un vínculo de acceso directo del menú Inicio. El error solo se producía al actualizar varias instancias de SKU de producto diferentes en la misma máquina.

Aviso de seguridad

CVE-2021-42319 Vulnerabilidad de elevación de privilegios Existe una vulnerabilidad de elevación de privilegios en el proveedor WMI que se incluye en el instalador de Visual Studio.

CVE-2021-42277 Vulnerabilidad de elevación de privilegios del servicio recopilador estándar del concentrador de diagnósticos Existe una vulnerabilidad de elevación de privilegios cuando el recopilador estándar del centro de diagnósticos administra incorrectamente operaciones de archivo.


Icono de notas de la versión Visual Studio 2019, versión 16.7.20

fecha de publicación: 12 de octubre de 2021

En esta publicación de Visual Studio 2019, versión 16.7.20

Aviso de seguridad

CVE-2021-41355 Vulnerabilidad de divulgación de .NET 5.0 Existe una vulnerabilidad de divulgación de información en .NET, en la que System.DirectoryServices.Protocols.LdapConnection envía credenciales en texto sin formato en Linux.

CVE-2020-1971 Vulnerabilidad de denegación de servicio de OpenSSL Existe una posible vulnerabilidad de denegación de servicio en la biblioteca OpenSSL que Git consume.

CVE-2021-3449 Vulnerabilidad de denegación de servicio de OpenSSL Existe una posible vulnerabilidad de denegación de servicio en la biblioteca OpenSSL que Git consume.

CVE-2021-3450 Vulnerabilidad de denegación de servicio de OpenSSL Existe una posible omisión de marca en la biblioteca OpenSSL que Git consume.


Icono de notas de la versión Visual Studio 2019, versión 16.7.19

Fecha de publicación: 14 de septiembre de 2021

En esta publicación de Visual Studio 2019, versión 16.7.19

Aviso de seguridad

CVE-2021-26434 Vulnerabilidad de elevación de privilegios de asignación de permisos incorrecta de Visual Studio Existe una vulnerabilidad de asignación de permisos en Visual Studio después de instalar el desarrollo de juegos con C++ y seleccionar la carga de trabajo Instalador de Unreal Engine. El sistema es vulnerable a LPE durante la instalación, crea un directorio con acceso de escritura para todos los usuarios.

CVE-2021-36952 Vulnerabilidad de ejecución remota de código en Visual Studio Hay una vulnerabilidad de ejecución remota de código en Visual Studio cuando manipula incorrectamente objetos en memoria. Un atacante que haya aprovechado correctamente la vulnerabilidad podría ejecutar código arbitrario en el contexto del usuario actual.


Icono de notas de la versión Visual Studio 2019, versión 16.7.18

Fecha de publicación: 10 de agosto de 2021

En esta publicación de Visual Studio 2019, versión 16.7.18

  • Se ha corregido un problema que afectaba a la ejecución de la línea de comandos del comando Actualizar. Si se produce un error en la actualización por primera vez, una emisión posterior del comando Actualizar ahora hace que la actualización reanude la operación anterior donde la dejó.

Aviso de seguridad

CVE-2021-26423 Vulnerabilidad de denegación de servicio de .NET Core Existe una vulnerabilidad de denegación de servicio que engaña a las aplicaciones de servidor de .NET (Core) que proporcionan puntos de conexión de WebSocket para que se ejecuten indefinidamente en bucle al intentar leer un único marco WebSocket.

CVE-2021-34485 Vulnerabilidad de divulgación de información de .NET Core Existe una vulnerabilidad de divulgación de información cuando la herramienta crea volcados para recopilar volcados de memoria y volcados a petición con permisos de lectura globales en Linux y macOS.

CVE-2021-34532 Vulnerabilidad de divulgación de información de ASP.NET Core Existe una vulnerabilidad de divulgación de información en la que se registra un token JWT si no se puede analizar.


Icono de notas de la versión Visual Studio 2019, versión 16.7.17

Fecha de publicación: 13 de julio de 2021

En esta publicación de Visual Studio 2019, versión 16.7.17

  • SDK de .NET 3.1.411 insertado en Visual Studio 2019.

Icono de notas de la versión Visual Studio 2019, versión 16.7.16

publicada el 8 de junio de 2021

En esta publicación de Visual Studio 2019, versión 16.7.16

Aviso de seguridad

CVE-2021-31957 Vulnerabilidad de denegación de servicio de ASP.NET Existe una vulnerabilidad de denegación de servicio cuando ASP.NET Core controla incorrectamente la desconexión del cliente.


Icono de notas de la versión Visual Studio 2019, versión 16.7.15

Fecha de publicación: 11 de mayo de 2021

En esta publicación de Visual Studio 2019, versión 16.7.15

  • Se ha corregido un problema que hace que las actualizaciones no se apliquen cuando un administrador crea un diseño de Visual Studio para implementar actualizaciones. La actualización de la máquina cliente no se aplica dado que el diseño ha cambiado de ubicación.

Aviso de seguridad

CVE-2021-27068 Posible RCE al colocar python.exe en una carpeta anidadaExiste una vulnerabilidad en la ejecución remota de código al abrir un área de trabajo con código de Python y esa área de trabajo contiene un archivo python.exe en una subcarpeta de scripts.

CVE-2021-31204 Vulnerabilidad de elevación de privilegios de .NET Core Existe una vulnerabilidad de elevación de privilegios en .NET 5.0 y .NET Core 3.1 cuando un usuario ejecuta una aplicación de archivo único en sistemas operativos basados en Linux o macOS.


Icono de notas de la versión Visual Studio 2019, versión 16.7.14

fecha de publicación: 13 de abril de 2021

En esta publicación de Visual Studio 2019, versión 16.7.14

  • El optimizador elimina erróneamente el código activo
  • Al restaurar paquetes con el nivel de detalle de salida normal, NuGet informará del hash de contenido del paquete.
  • NuGet guardará el origen del paquete en el archivo .nupkg.metadata del paquete, dentro de la carpeta global de paquetes. Los paquetes ya presentes en esta carpeta no recibirán esta información adicional. La carpeta de paquetes global se puede vaciar para recopilar información del origen de los paquetes para todos los paquetes.

Aviso de seguridad

CVE-2021-27064 Vulnerabilidad de elevación de privilegios del Instalador de Visual Studio Existe una vulnerabilidad de ejecución de código remoto presente cuando el instalador de Visual Studio ejecuta el cliente de comentarios en un estado elevado.

CVE-2021-28313 / CVE-2021-28321/ CVE-2021-28322 Vulnerabilidad de elevación de privilegios del servicio recopilador estándar del centro de diagnósticos Existe una vulnerabilidad de elevación de privilegios cuando el recopilador estándar del centro de diagnósticos administra incorrectamente operaciones de datos.


Icono de notas de la versión Visual Studio 2019, versión 16.7.13

Fecha de publicación: 9 de marzo de 2021

En esta publicación de Visual Studio 2019, versión 16.7.13

Aviso de seguridad

CVE-2021-21300 Vulnerabilidad de ejecución remota de código de Git para Visual Studio Existe una vulnerabilidad de ejecución remota de código cuando Visual Studio clona un repositorio malintencionado.

CVE-2021-26701 Vulnerabilidad de ejecución de código remoto de .NET Core Existe una vulnerabilidad de ejecución de código remoto en .NET 5 y .NET Core debido a la forma en que se realiza la codificación de texto.


Icono de notas de la versión Visual Studio 2019, versión 16.7.12

publicada el 09 de febrero de 2021

En esta versión de Visual Studio 2019, versión 16.7.12


Icono de notas de la versión Visual Studio 2019, versión 16.7.11

publicada el 09 de febrero de 2021

En esta versión de Visual Studio 2019, versión 16.7.11

Error en el compilador de optimización de Visual Studio 2019, versión 16.7.6

Aviso de seguridad

CVE-2021-1639 Vulnerabilidad de ejecución remota de código del servicio de lenguaje TypeScript Existe una vulnerabilidad de ejecución remota de código Visual Studio carga un repositorio malintencionado que contiene archivos de código JavaScript o TypeScript.

CVE-2021-1721 Vulnerabilidad de denegación de servicio de .NET Core Existe una vulnerabilidad de denegación de servicio al crear una solicitud web HTTPS durante la compilación de la cadena de certificados X509.

CVE-2021-24112 Vulnerabilidad de ejecución de código remoto de .NET 5 y .NET Core Existe una vulnerabilidad de ejecución remota de código al eliminar los metarchivos cuando una interfaz de gráficos todavía tiene una referencia a ellos. Esta vulnerabilidad solo existe en los sistemas que se ejecutan en MacOS o Linux.


Icono de notas de la versión Visual Studio 2019, versión 16.7.10

publicada el 12 de enero de 2021

En esta versión de Visual Studio 2019 16.7.10

Aviso de seguridad

CVE-2021-1651 / CVE-2021-1680 Vulnerabilidad de elevación de privilegios del servicio recopilador estándar del centro de diagnósticos Existe una vulnerabilidad de elevación de privilegios cuando el recolector estándar del centro de diagnósticos administra incorrectamente las operaciones de datos.

CVE-2020-26870 Vulnerabilidad de ejecución remota de código del Instalador de Visual Studio Existe una vulnerabilidad de ejecución remota de código que se da cuando el instalador de Visual Studio intenta mostrar un elemento Markdown malintencionado.

CVE-2021-1723 Vulnerabilidad de denegación de servicio de .NET Core y Visual Studio Existe una vulnerabilidad de denegación de servicio en la implementación de Kestrel.


Icono de notas de la versión Visual Studio 2019, versión 16.7.9

Fecha de publicación: 08 de diciembre de 2020

En esta versión de Visual Studio 2019 16.7.9

Aviso de seguridad

CVE-2020-17156 Vulnerabilidad de ejecución remota de código de Visual Studio Existe una vulnerabilidad de ejecución remota de código cuando Visual Studio clona un repositorio malintencionado.


Icono de notas de la versión Visual Studio 2019, versión 16.7.8

fecha de publicación: 10 de noviembre de 2020

En esta versión de Visual Studio 2019 16.7.8

Aviso de seguridad

CVE-2020-17100 Vulnerabilidad de manipulación de Visual Studio Existe una vulnerabilidad de manipulación cuando Herramientas de Python para Visual Studio crea la carpeta python27. Un atacante que se hubiera aprovechado de esta vulnerabilidad podría ejecutar procesos en un contexto con privilegios elevados.



Icono de notas de la versión Visual Studio 2019, versión 16.7.7

Fecha de publicación: 27 de octubre de 2020

En esta versión de Visual Studio 2019 16.7.7


Icono de notas de la versión Visual Studio 2019, versión 16.7.6

Fecha de publicación: 13 de octubre de 2020

En esta versión de Visual Studio 2019 16.7.6


Icono de notas de la versión Visual Studio 2019, versión 16.7.5

publicada el 29 de septiembre de 2020

En esta versión de Visual Studio 2019 16.7.5


Icono de notas de la versión Visual Studio 2019, versión 16.7.4

publicada el 21 de septiembre de 2020

En esta versión de Visual Studio 2019 16.7.4

  • Se agrega compatibilidad con Xcode 12.0 GM.
  • Se agrega compatibilidad para establecer un conjunto de colores como color de énfasis en el editor de Info.plist.

Icono de notas de la versión Visual Studio 2019, versión 16.7.3

publicada el 08 de septiembre de 2020

En esta versión de Visual Studio 2019 16.7.3

Aviso de seguridad

CVE-2020-1130 Vulnerabilidad de elevación de privilegios del recopilador estándar del centro de diagnósticos Existe una vulnerabilidad de elevación de privilegios cuando el recopilador estándar del centro de diagnósticos administra incorrectamente operaciones de datos. Un atacante que se hubiera aprovechado de esta vulnerabilidad podría ejecutar procesos en un contexto con privilegios elevados.

CVE-2020-1133 Vulnerabilidad de elevación de privilegios del recopilador estándar del centro de diagnósticos Existe una vulnerabilidad de elevación de privilegios cuando el recopilador estándar del centro de diagnósticos administra incorrectamente operaciones de archivo. Un atacante que se hubiera aprovechado de esta vulnerabilidad podría ejecutar procesos en un contexto con privilegios elevados.

CVE-2020-16856 Vulnerabilidad de ejecución remota de código en Visual Studio Hay una vulnerabilidad de ejecución remota de código en Visual Studio cuando manipula incorrectamente objetos en memoria. Un atacante que haya aprovechado correctamente la vulnerabilidad podría ejecutar código arbitrario en el contexto del usuario actual.

CVE-2020-16874 Vulnerabilidad de ejecución remota de código en Visual Studio Hay una vulnerabilidad de ejecución remota de código en Visual Studio cuando manipula incorrectamente objetos en memoria. Un atacante que haya aprovechado correctamente la vulnerabilidad podría ejecutar código arbitrario en el contexto del usuario actual.

CVE-2020-1045 Vulnerabilidad de omisión de características de seguridad de ASP.NET Core Existe una vulnerabilidad de omisión de características de seguridad en la forma en que Microsoft ASP.NET Core analiza los nombres de cookies codificados. El analizador de cookies de ASP.NET Core descodifica cadenas de cookies completas que podrían permitir que un atacante malintencionado establezca una segunda cookie con el nombre parcialmente codificado.

Incidencias adicionales corregidas en esta versión

  • Se ha corregido un bloqueo del compilador para instrucciones switch o expresiones switch que usan la coincidencia de patrones.
  • Se ha restaurado el flujo de trabajo "Detener depuración (Mayús + F5)" para las pruebas unitarias mediante la finalización de la serie de pruebas.
  • Evite el bloqueo de VS al cambiar la configuración del proyecto cuando el diseñador de .NET Core WinForms tenga cambios sin guardar.
  • Las versiones de .NET Core para las que ya no se ofrece soporte técnico ya no se volverán a instalar durante una reparación o actualización, si se han quitado de la instalación de VS.
  • Se ha corregido una incidencia que provocaba que las dependencias externas no se buscaran con precisión en la opción Buscar en archivos.
  • Se ha vuelto a incluir el botón "Confirmar..." en el submenú Git del menú contextual del Explorador de soluciones.
  • Se ha corregido un error que hacía que la etiqueta Notas de inserción en el repositorio de TFVC no estuviera visible.
  • Se ha corregido el bloqueo al usar el diseñador WinForm en csproj de estilo SDK con varias plataformas de destino.
  • Se ha corregido una incidencia que hacía que <d:Style.DataContext> notificara un error de marcado no válido.

Principales incidencias corregidas por Developer Community en Visual Studio 2019, versión 16.7.3


Icono de notas de la versión Visual Studio 2019, versión 16.7.2

publicado el 18 de agosto de 2020

En esta versión de Visual Studio 2019 16.7.2

Principales problemas corregidos por Developer Community en Visual Studio 2019, versión 16.7.2


Icono de notas de la versión Visual Studio 2019, versión 16.7.1

Publicado el 11 de agosto de 2020

En esta versión de Visual Studio 2019 16.7.1

Principales problemas corregidos por Developer Community en Visual Studio 2019, versión 16.7.1


Icono de notas de la versión Visual Studio 2019, versión 16.7.0

publicado el 5 de agosto de 2020

En esta versión de Visual Studio 2019 16.7.0

C++

  • Nuestra compatibilidad remota con C++ ahora admite una gama más amplia de distribuciones y shells de Linux, como sh, csh, bash, tcsh, ksh, zsh y dash. Puede invalidar el shell seleccionado para una conexión remota modificando la nueva propiedad "shell" a través de ConnectionManager.exe. Esta compatibilidad se ha probado con proyectos de Linux basados en MSBuild y proyectos de CMake orientados a un sistema Linux remoto o a WSL.
  • Ahora se puede usar Ninja (un sistema de compilación que evalúa las compilaciones incrementales con mucha rapidez) para mejorar los tiempos de compilaciones incrementales para los proyectos de Linux basados en MSBuild. Se puede optar por esta característica al establecer "Habilitar compilación incremental" en "Con Ninja" en la página de propiedades General. Ninja (ninja-build) debe estar instalado en el sistema Linux remoto o WSL.
  • Se han implementado nuevas características de la biblioteca estándar de C++20. Para obtener una lista detallada, vea el registro de cambios de Stephan T. Lavavej en GitHub.
  • Ahora, se pueden editar y establecer conexiones remotas predeterminadas en Connection Manager. Esto significa que puede editar conexiones remotas existentes (por ejemplo, en caso de que la dirección IP haya cambiado), así como establecer conexiones predeterminadas para que se usen en CMakeSettings.json y launch.vs.json. Las conexiones SSH remotas permiten compilar y depurar proyectos de C++ en un sistema Linux remoto directamente desde Visual Studio.
Edición de conexiones remotas en Connection Manager
Edición de conexiones remotas en Connection Manager
  • Compatibilidad mejorada con IntelliSense para Clang en Windows (clang-cl) en Visual Studio. Ahora, la ruta de acceso de inclusión de clang incluye las bibliotecas de clang. Hemos mejorado la visualización de subrayado ondulado en el editor al usar la biblioteca estándar y hemos agregado compatibilidad con C++2a en modo clang.
  • ahora puede probar errores de código subyacentes y ver más correcciones rápidas sugeridas en proyectos de C++. Habilite esta característica en Herramientas > Opciones > Editor de texto > C/C++ > Experimental > establezca "Deshabilitar linter de código experimental" en false. Encontrará más información en el blog del equipo de C++.
Linter de código de IntelliSense
Linter de código de IntelliSense
  • Hemos agregado cuatro nuevas reglas de análisis de código para incorporar más características de seguridad a C++: C26817, C26818, C26819 y C26820.
  • Hemos agregado compatibilidad de primer nivel para depurar proyectos de CMake en sistemas remotos con gdbserver.
  • Encuentre errores de memoria dañada fácilmente con una implementación experimental de AddressSanitizer para C++ en Visual Studio, ahora disponible para proyectos nativos de x64. Ahora, también se admite el uso de runtimes de depuración (/MTd,/MDd,/LDd).
  • Ahora, IntelliSense tiene compatibilidad básica con conceptos, inicializadores designados y otras características de C++20.
  • Los archivos .ixx y. cpm ahora se reconocen como C++ y se tratarán como tales mediante el resaltado de sintaxis e IntelliSense.

Definición de listas de reproducción dinámicamente

Ahora, se pueden definir listas de reproducción basadas dinámicamente en un proyecto, una clase o un espacio de nombres. Esto significa que se puede configurar una lista de reproducción para que incluya todo lo que hay en un determinado proyecto, clase o espacio de nombres. Cualquier prueba nueva que se agregue a ese grupo se incluirá automáticamente en la lista de reproducción.

  • Para crear una lista de reproducción, haga clic con el botón derecho en un proyecto, espacio de nombres o agrupación de clases en el Explorador de pruebas.
Explorador de pruebas: crear una lista de reproducción
Explorador de pruebas: crear una lista de reproducción
  • Para editar los grupos que se incluyen en la lista de reproducción, haga clic en el botón Editar de la barra de herramientas. Aparecerán unas casillas. Edite los grupos según sea necesario.
Explorador de pruebas: editar una lista de reproducción
Explorador de pruebas: editar una lista de reproducción
  • En vez de ser una lista estática de pruebas, estas listas de reproducción se actualizan dinámicamente en función de una serie de reglas. Si quiere adquirir un mejor conocimiento de qué reglas están generando su lista de reproducción dinámica, guarde el archivo de lista de reproducción en el disco con el botón Guardar y vea las reglas generadas en el archivo XML.
Conjunto de reglas dinámicas de archivo de lista de reproducción
Conjunto de reglas dinámicas de archivo de lista de reproducción
  • Puede seguir incluyendo y excluyendo pruebas individuales, y la lista de reproducción podrá actualizar sus reglas dinámicas o volver a realizar el seguimiento de las pruebas como una lista estática. También se pueden usar rasgos para definir un grupo dinámico, editando para ello el archivo XML de la lista de reproducción directamente.

Productividad de Git

Para usar esta experiencia, active la característica de versión preliminar "New Git user experience" (Nueva experiencia de usuario de Git) en Herramientas | Opciones | Entorno.

  • Cree un nuevo repositorio de Git, empezando desde cualquier carpeta o una nueva
  • Guarde y cierre una carpeta o solución abierta antes de iniciar una nueva operación de clonación.
  • Vea los errores de confirmación o de mensaje de stash con claridad en el cuadro de texto de confirmación.
  • Vea y administre ramas de Git en una vista de árbol en una nueva ventana de repositorio de Git
  • Cambie entre gráficos del historial de cada rama e interactúe con ellos en la ventana del repositorio de Git
  • Consulte las confirmaciones de entrada y salida en la ventana del repositorio de Git
  • Blog del equipo de productividad de Git con más detalles sobre las características recientes
Administre ramas y vea el historial en una ventana de repositorio de Git centrada
Administre ramas y vea el historial en una ventana de repositorio de Git centrada

Resuelva conflictos de combinación con un editor de combinación centrado en Git usando lo siguiente:

  • Una barra de información en los archivos que contienen conflictos de combinación en la que se le pide abrir el editor de combinación
  • Texto y títulos más informativos, así como un editor de combinación más ordenado y despejado
  • Diferencias de conflictos que encajan con líneas coincidentes, visualización de las diferencias en el nivel de palabra y visualización del espacio en blanco visible cuando es la única diferencia
  • Combinaciones bidireccionales en conflictos de tipo "agregar/agregar" en el nivel de archivo
  • Posibilidad de resolver todos los conflictos a un lado u otro con un solo clic
  • Opción para centrarse únicamente en los conflictos, omitiendo las diferencias que no suponen un conflicto
Nueva experiencia del editor de combinación
Resolución de conflictos de combinación con el editor de combinación

JavaScript/TypeScript

  • Las implementaciones de Finalización e Información rápida se han actualizado para admitir escenarios de LiveShare de mejor forma.

Proceso local con Kubernetes

Proceso local con Kubernetes
Proceso local con Kubernetes

El proceso local con Kubernetes permite escribir, probar y depurar código de .NET en su estación de trabajo de desarrollo, mientras sigue conectado al clúster de Kubernetes con el resto de la aplicación o los servicios. Al conectar la estación de trabajo de desarrollo al clúster, se acaba con la necesidad de tener que ejecutar y configurar manualmente los servicios dependientes en el equipo de desarrollo. Las variables de entorno, las cadenas de conexión y los volúmenes del clúster estarán disponibles para su uso en el código de microservicio que se ejecuta localmente. No es necesario disponer de recursos adicionales, como manifiestos de Kubernetes o Dockerfile. Ejecute, depure y pruebe el código .NET como lo haría normalmente.

Para habilitar el proceso local con Kubernetes, vaya a Herramientas > Opciones > Entorno > Características en versión preliminar y seleccione "Enable local debugging for Kubernetes services" (Habilitar depuración local para servicios de Kubernetes).

Habilitación de características en versión preliminar
Habilitación de características en versión preliminar

En el caso de las aplicaciones de consola .NET, se requiere un paso más. Instale el paquete Nuget "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets".

Productividad de .NET

Ahora hay una corrección de advertencia y otra de código cuando un operador de supresión está presente pero no tiene ningún efecto. También hay disponible una segunda corrección de código que sugiere la expresión de negación correcta. Coloque el cursor en el operador de supresión. Presione (Ctrl + . ) para activar los menús Acciones rápidas y refactorizaciones. A continuación, seleccione una de las siguientes opciones:

  • Para quitar el operador por completo, seleccione Quitar operador (conservar semántica):
Corrección de código para quitar el operador de supresión
Corrección de código para quitar el operador de supresión
  • Para negar la expresión, seleccione Negar expresión (cambiar semántica):
Corrección de código para negar expresión
Corrección de código para negar expresión
  • También se puede negar la expresión con el nuevo patrón de C# 9 not si está disponible en el proyecto:
Corrección de código para negar expresión con not
Corrección de código para negar expresión con not

Ya se puede generar propiedades al generar un constructor en un tipo. Coloque el cursor sobre la instancia. Presione (Ctrl + . ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Generar constructor en <QualifiedName > (con propiedades).

Generación de propiedades al generar constructor
Generación de propiedades al generar constructor
  • Ahora, Información rápida muestra el identificador de diagnóstico junto con un vínculo de ayuda que le llevará fácilmente a nuestra documentación para obtener más información sobre las advertencias y errores sobre el código.
Identificador de diagnóstico y vínculo de ayuda de Información rápida
Identificador de diagnóstico y vínculo de ayuda de Información rápida
  • Ahora, hay una acción rápida para agregar un atributo de visualización del depurador a una clase. Esto permite anclar propiedades del depurador mediante programación en el código. Coloque el cursor en el nombre de clase. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Agregar atributo "DebuggerDisplay". Esto agregará el atributo de visualización del depurador a la parte superior de la clase y generará un método automático que devuelve ToString(), que puede editarse para devolver el valor de propiedad que quiera anclar en el depurador.
Adición de atributo de visualización del depurador
Adición de atributo de visualización del depurador
  • Ahora, hay una corrección de código de comparaciones o asignaciones accidentales a la misma variable. Coloque el cursor en la advertencia. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. En el caso de las asignaciones accidentales, seleccione Asignar a <QualifiedName>.value. En el caso de comparaciones accidentales, seleccione Comparar con <QualifiedName>.value.
Corrección de código de asignaciones accidentales
Corrección de código de asignaciones accidentales
Corrección de código de comparaciones accidentales
Corrección de código de comparaciones accidentales
  • Ahora, se pueden generar operadores de comparación para tipos que implementan IComparable. Coloque el cursor en la clase o en IComparable. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Generate comparison operators (Generar operadores de comparación). Se generará texto reutilizable con los operadores de comparación.
Generación de operadores de comparación
Generación de operadores de comparación
  • Ahora, se pueden generar operadores IEquatable al generar .Equals para structs. Ya había una refactorización para Generar "Equals" y GetHashCode en relación con los tipos de valor. Ahora, con los structs, agregaremos el elemento IEquatable automáticamente, así como los operadores Equals y Not Equals. Coloque el cursor dentro del struct. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Generar "Equals(object)".
Generación de operadores IEquatable
Generación de operadores IEquatable
  • Ahora, se pueden crear y asignar propiedades o campos para todos los parámetros de constructor sin usar. Ya había una acción rápida que permitía hacer esto con un parámetro individual, pero ahora se puede llevar a cabo con todos los parámetros sin usar a la vez. Coloque el cursor en cualquiera de los parámetros restantes. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Para crear e inicializar propiedades, seleccione Create and assign remaining as properties (Crear y asignar el resto como propiedades). Para crear e inicializar campos, seleccione Create and assign remaining as fields (Crear y asignar el resto como campos).
Creación y asignación de campos restantes
Creación y asignación de campos restantes
Creación y asignación de propiedades restantes
Creación y asignación de propiedades restantes
  • Ahora, hay una finalización de IntelliSense en los literales de cadena DateTime y TimeSpan. Coloque el cursor dentro del literal de cadena DateTime o TimeSpan y presione (Ctrl+barra espaciadora). Aparecerán las opciones de finalización y una explicación de lo que cada carácter significa. Se proporcionará el formato de fecha y hora y un ejemplo.
Finalización de IntelliSense en los literales de cadena DateTime y TimeSpan
Finalización de IntelliSense en los literales de cadena DateTime y TimeSpan
  • Ahora, se puede agregar un parámetro en el cuadro de diálogo Cambiar firma. Coloque el cursor dentro de la firma del método. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Cambiar firma. Se abrirá el siguiente cuadro de diálogo, en el que ahora podrá seleccionar Agregar para agregar un parámetro. Cuando seleccione Agregar, se abrirá el nuevo cuadro de diálogo Agregar parámetro, que permite agregar un nombre de tipo y un nombre de parámetro. Puede optar por hacer que el parámetro sea obligatorio u opcional con un valor predeterminado. Tras ello, puede agregar un valor en el sitio de llamada y elegir un argumento con nombre para ese valor, o bien introducir una variable TODO. La variable TODO coloca un elemento TODO en el código para recorrer cada error y pasar por cada sitio de llamada de manera independiente y decidir qué omitir y qué no. En el caso de los parámetros opcionales, existe la opción de omitir el sitio de llamada por completo.
Cuadro de diálogo para cambiar firma
Cuadro de diálogo para cambiar firma
Cuadro de diálogo para agregar parámetro
Cuadro de diálogo para agregar parámetro
  • Ahora, los autores de analizadores pueden usar CompletionProviders en las finalizaciones de IntelliSense al enviar sus analizadores con NuGet. Antes, los autores de bibliotecas debían crear un elemento VSIX por separado, ya que CompletionProviders solo estaba disponible en VSIX. Ahora, los autores de bibliotecas pueden implementar finalizaciones de IntelliSense en el paquete NuGet en el que se encuentran los analizadores, y no tienen que hacerlo por separado. Los proveedores de finalización implementados en paquetes NuGet también harán sugerencias específicas de proyectos individuales y funcionarán automáticamente en cada IDE compatible con la característica.

Razor

Pruebe el nuevo editor de Razor, que todavía se encuentra en fase experimental e incluye el Protocolo de servidor de lenguaje (LSP), con todos los archivos de Razor (.cshtml/.razor). Para activarlo, active la opción Enable experimental Razor editor (Habilitar editor de Razor experimental), en versión preliminar.

Explorador de pruebas

Se han agregado las opciones Run/Debug All Tests In View (Ejecutar/Depurar todas las pruebas en la vista) al Explorador de pruebas. Reemplazan los comandos Ejecutar todas las pruebas y Depurar todas las pruebas en el Explorador de pruebas. El objetivo de este cambio es aclarar que estos comandos respetan los filtros del Explorador de pruebas, de modo que solo se ejecutan las pruebas visibles en la ventana. Esto incluye los filtros de las columnas y los de los cuadros de búsqueda.

Comandos Ejecutar/depurar todas las pruebas en la vista del Explorador de pruebas
Comandos Ejecutar/depurar todas las pruebas en la vista del Explorador de pruebas

Los comandos Ejecución global/Depurar todas ahora solo aparecerán en el menú de pruebas de nivel superior. Ya no se incluyen en la barra de herramientas del Explorador de pruebas ni en el menú contextual de ninguna vista de las ventanas de pruebas. Cuando se desencadena desde el Explorador de pruebas, el comando Analizar cobertura de código para todas las pruebas ahora se aplica también a las vistas de las ventanas de pruebas.

Teclas de método abreviado:

  • Ctrl+R, A: Ejecutar todas las pruebas; el comando global siempre ejecuta todas las pruebas.
  • Ctrl+R, V: Run All Tests In View (Ejecutar todas las pruebas en la vista); solo es un comando válido si una ventana de pruebas (Explorador de pruebas, Lista de reproducción, Ventana de Live Unit Testing) se encuentra activa.
  • Ctrl+R, Ctrl+A: Depurar todas las pruebas; el comando global siempre depura todas las pruebas.
  • Ctrl+R, Ctrl+V: Debug All Tests In View (Depurar todas las pruebas en la vista); solo es un comando válido si una ventana de pruebas (Explorador de pruebas, Lista de reproducción, Ventana de Live Unit Testing) se encuentra activa.

instantáneas

Visualización de objetos COM administrados mediante punteros nativos

Esta característica descodifica automáticamente los objetos COM administrados a los que hacen referencia los punteros nativos, lo que permite inspeccionar por completo los valores en la ventana de variables locales. Puede encontrar información más detallada aquí, en el blog de Visual Studio.

Generador de perfiles

Nueva herramienta Contadores de rendimiento de .NET

Herramienta Contadores de rendimiento de .NET
Herramienta Contadores de rendimiento de .NET

Visualice contadores de dotnet directamente desde el generador de perfiles de Visual Studio mediante la herramienta de contadores de rendimiento de .NET. Para probar la herramienta, vaya a Depurar -> Generador de perfiles de rendimiento y marque la herramienta de contadores de rendimiento de .NET (.NET Performance Counters Tool).

Xamarin

  • Se han introducido correctores de código para los tipos más comunes de problemas que experimentan los usuarios con archivos de diseño de Android.
  • La experiencia de selección de plantillas de Xamarin.Forms ahora tiene un aspecto moderno y más ilustrativo, y las plantillas Control flotante y Pestañas ahora usan Shell. Lea más información acerca de Shell aquí. Si por alguna razón no desea usar Shell, use la plantilla Aplicación en blanco.
Nueva experiencia de selección de plantillas de Xamarin.Forms
Eligiendo una plantilla de Xamarin.Forms

Herramientas XAML (WPF, UWP y Xamarin.Forms)

Recarga activa de XAML:

  • Mejoras en la barra de herramientas en la aplicación: Se ha refinado aún más la experiencia de la barra de herramientas en la aplicación que forma parte del flujo de trabajo de las herramientas de Recarga activa de XAML para WPF y UWP. Los cambios incluyen una barra de herramientas más corta para que ya no abarque la aplicación en ejecución y un cambio en el mecanismo de contraer que, al hacer clic en él, contraerá el texto de Recarga activa de XAML primero y contraerá la barra por completo al segundo clic.

Diseñador XAML:

  • Compatibilidad expandida de datos de tiempo de diseño para WPF y UWP: En esta versión, se presenta una nueva característica de datos en tiempo de diseño para los desarrolladores de WPF .NET Core y UWP. Esta nueva funcionalidad ampliará la lista actual de propiedades de tiempo de diseño accesibles mediante el uso del prefijo "d:". Esta característica resultará familiar a los desarrolladores de Xamarin.Forms, ya que ofrece el mismo enfoque de usar un prefijo "d:" para indicar una propiedad que solo se debe representar en tiempo de diseño y que nunca se compila en la aplicación en ejecución, lo que hace que sea muy seguro usarla para realizar pruebas. En esta versión se admiten todos los controles de serie de WPF y UWP y, en futuras versiones, está previsto admitir controles personalizados y de terceros.
  • Botón de actualización del Diseñador XAML: hemos agregado un botón de actualización al Diseñador XAML; este nuevo icono se encuentra en el área de iconos inferior izquierda cerca del indicador de nivel de zoom. Esta acción de actualización realiza el restablecimiento equivalente a cerrar la vista de diseñador y volver a abrirla para las situaciones excepcionales en las que esto sea necesario para resolver un problema de representación. Esta característica está disponible para los desarrolladores de WPF .NET Core y UWP.

Editor de código XAML:

  • Visualizador de color: hemos refinado aún más nuestro nuevo visualizador de color en el Editor de código XAML para los proyectos de WPF .NET Core, WPF .NET Framework y Xamarin.Forms. En esta versión se ha agregado compatibilidad para la visualización de colores procedentes de recursos, anteriormente no admitida en la última versión preliminar.
Vistas previas de color en línea en el editor de código XAML
Vistas previas de color en línea en el editor de código XAML

Mostrar elementos del cuadro de herramientas de un paquete NuGet sin una referencia de paquete

Muchos autores de bibliotecas de controles quieren que sus controles se vean en el cuadro de herramientas, incluso cuando el proyecto actual no haya hecho referencia aún a dicha biblioteca, ya que ello contribuye a la capacidad de detección. Históricamente, los SDK de .NET Framework de WPF han logrado esto usando entradas del Registro, pero esto no es viable en .NET Core. En .NET Core de WPF, ahora el cuadro de herramientas se puede rellenar con controles de los archivos VisualStudioToolsManifest.xml que están en paquetes NuGet de .NET Core de WPF, en carpetas de reserva de NuGet. Para obtener más información, vea la documentación del repositorio de GitHub de extensibilidad del diseñador XAML.

Windows Forms

Diseñador de Windows Forms para .NET Core

El diseñador de Windows Forms para los proyectos de .NET Core ya está disponible. Para habilitar el diseñador en Visual Studio, vaya a Herramientas > Opciones > Entorno > Características de versión preliminar y seleccione la opción Usar la versión preliminar del diseñador de Windows Forms para aplicaciones .NET Core.

Ahora, esta versión admite los siguientes controles, aparte de otras mejoras:

  • UserControl e infraestructura de controles personalizados
  • TableLayoutPanel
  • Aspectos básicos de compatibilidad de controles de terceros
  • Aspectos básicos de compatibilidad de enlace de datos
  • Mejoras en la interacción del diseñador con TableLayoutPanel

Correcciones de errores

Principales problemas corregidos en Visual Studio 2019, versión 16.7.0

  • Se ha corregido el error de instalación del componente del proveedor de WMI.
  • Se ha corregido un problema que provocaba que los usuarios no pudiesen ver el progreso de la ejecución de la prueba haciendo clic con el botón izquierdo en la parte inferior de la barra.
  • Rendimiento mejorado del descubrimiento de planes de facturación disponibles de Visual Studio Codespace.
  • Al crear una instancia de Visual Studio Codespace, se ha cambiado el tiempo de suspensión predeterminado de 30 minutos a 3 horas.
  • Se ha corregido un error que provocaba que la ventana de cambios de Git informase al usuario de que tenía confirmaciones entrantes o salientes, cuando no las había.
  • Estabilidad mejorada de las Herramientas de diagnóstico y el Generador de perfiles de rendimiento.
  • Se ha solucionado una incidencia que provocaba que la extensión de Visual Studio de Azure Sphere no se actualizase automáticamente debido a un error de coincidencia de versión secundaria. Con la corrección, Azure Sphere se podrá actualizar automáticamente durante la ejecución del actualizador automático de VSIX.

De Developer Community


Problemas conocidos

Consulte todos los problemas abiertos y las soluciones alternativas disponibles en Visual Studio 2019 en el vínculo siguiente.

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 Icono de comentarios 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 2019

Para obtener más información sobre versiones anteriores de Visual Studio 2019, consulte la página Historial de notas de la versión de Visual Studio 2019.


Principio de página