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.
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:
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.
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.
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.
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.
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.
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).
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.
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-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.
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.
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.
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.
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.
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
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.
Actualización de los conjuntos de herramientas MSVC 14.16, 14.20, 14.24, 14.27 y 14.28 para que coincidan con las versiones de servicio más recientes.
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.
Se corrigió un error en el compilador de C++ al importar clases con métodos que contenían una combinación de argumentos predeterminados y la lista de argumentos [params] / [ParamArray].
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.
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
Se ha corregido un error que hacía que el compilador de C++ se bloqueara al crear NanoRange
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.
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
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
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
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
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
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
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
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
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
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
Para negar la expresión, seleccione Negar expresión (cambiar semántica):
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
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
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
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
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 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
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
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 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
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 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
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
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.
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
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.
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.