2019LogoNotas de la versión 16.10 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.



Novedades de Visual Studio 2019, versión 16.10

Período de tiempo de soporte técnico

Esta versión ya no es compatible. Para más información sobre la compatibilidad con 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.10

Notas de la versión archivadas de Visual Studio 2019

Blog de Visual Studio 2019

El blog de Visual Studio 2019 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 2019 en las publicaciones siguientes:


16.10.5 Visual Studio 2019, versión 16.10.5

Fecha de publicación: 10 de agosto de 2021

Resumen de las novedades de esta versión de Visual Studio 2019, versión 16.10.5

Esta versión de Visual Studio 2019 solo está disponible a través de Windows Software Update Service (WSUS).

Principales problemas corregidos en esta versión

  • Ahora el simulador remoto de iOS funcionará correctamente con dispositivos Mac emparejados que tengan Xcode 12.4 o 12.5 instalado. Las siguientes características del simulador de Xcode no están disponibles cuando se empareja con dispositivos Mac con Xcode 12.4 o superior instalado:
    • Advertencia de memoria simulada
    • Ubicaciones simuladas

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.

16.10.4 Visual Studio 2019, versión 16.10.4

Fecha de publicación: 20 de julio de 2021

Resumen de las novedades de la versión 16.10.4 de Visual Studio 2019

Principales problemas corregidos en esta versión

  • Eliminación del uso de registros no permitidos en memset.
  • Se ha corregido un error de codegen que implicaba expresiones anidadas complicadas donde intervenía el operador NOT bit a bit.
  • Se ha corregido la depuración del sombreador para el analizador de gráficos de VS.
  • Se ha corregido un bloqueo de IntelliSense que se producía al procesar miembros de datos estáticos en especializaciones de plantilla en clase.
  • En VC Redist X64 ya no se quitan los archivos en tiempo de ejecución cuando se ejecuta con los modificadores /installer /passive.
  • Se ha corregido un problema por el que el orden de búsqueda de inclusión puede ser incorrecto cuando se antepone a "Directorios de inclusión".
  • Se ha corregido el problema de rendimiento y los falsos positivos que provocaba una de las extensiones de comprobación que encuentra errores en el uso incorrecto de elementos VARIANT.
  • Se ha corregido el problema de rendimiento provocado por una de las extensiones de comprobación que encuentra errores en el uso incorrecto de los valores de enumeración como índice.
  • Introducción de una corrección de los servicios de idioma de Live Share que restaura las características principales de edición de código para los participantes de la sesión de colaboración (finalización del código, resaltado de sintaxis, errores, etc.)
  • El analizador de simultaneidad ya no debe generar advertencias falsas C26110 (error al adquirir bloqueo) con patrones de bloqueo automático.
  • Los compiladores de Visual Basic y C# han corregido un bloqueo en el que InternalsVisibleTo entraba en conflicto con otros atributos de nivel de ensamblado.
  • Se ha corregido un problema que experimentaban los clientes que empaquetaban sus proyectos con Proyectos de paquete de aplicación de Windows, como aplicaciones NetCore de WPF y aplicaciones de Project Reunion:

Error: Archivo de recursos "...\obj\wappublish\win10-x86\project.assets.json" no encontrado. Ejecute una restauración de paquetes NuGet para generar este archivo. App4 (paquete) C:\Archivos de programa\dotnet\sdk\5.0.302\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets 242

Este problema se debe a que el proyecto de empaquetado busca el archivo project.assets.json en el directorio incorrecto, win10-$(configuration), cuando debería buscarlo en win-$(configuration).

De Developer Community


16.10.3 Visual Studio 2019, versión 16.10.3

publicada el 29 de junio de 2021

Resumen de las novedades de la versión 16.10.3 de Visual Studio 2019

Principales problemas corregidos en esta versión

  • Se ha corregido un problema por el que la opción Ir a definición en símbolos importados desde módulos a veces llevaba al inicio del archivo de módulo en lugar de a la definición del símbolo.
  • Se ha corregido un problema por el que los desarrolladores con discapacidad visual tenían dificultades para identificar el foco en la pantalla, ya que la proporción de luminosidad del color del borde era inferior a 3:1 para el cuadro de texto.
  • Se ha corregido el error de proyectos de bases de datos que provocaba que al arrastrar un archivo del Explorador de soluciones a un proyecto abierto, el archivo se eliminase del sistema.
  • Se ha corregido un problema por el que el uso de una instrucción merge en proyectos de base de datos provocaba errores de compilación.
  • Ya no se envían rutas de acceso en el disco al notificar qué extensiones están instaladas.
  • Se corrige un problema que provocaba que el intento de cerrar la ventana de inicio rápido bloqueara Visual Studio.
  • Se ha corregido un problema que causaba que las ventanas de herramientas a veces bloquearan VS.
  • Corrección de la opción Editar y continuar en C++ en el código de usuario, cuando se cargan en la aplicación los símbolos generados de G++/GCC no relacionados.
  • Se han corregido los usos del selector privado del marco de iAd.
  • Se ha corregido un bloqueo en VS que tenía como origen errores que se producían en el Diseñador XAML
  • Se ha corregido un problema con los proyectos de Paquete de aplicación de Windows que hacen referencia a los proyectos de .netcoreapp que generan un archivo .msixbundle.
  • Se ha corregido un error al realizar una comprobación de actualización rápida en proyectos WAP, que provocaba la compilación de esos proyectos (en lugar de omitirse), incluso cuando el proyecto estaba actualizado y no necesitaba modificaciones, lo que provocaba un aumento de los tiempos de compilación incrementales en el IDE.

De Developer Community


16.10.2 Visual Studio 2019, versión 16.10.2

publicada el 15 de junio de 2021

Resumen de las novedades de esta versión de Visual Studio 2019 16.10.2

Principales problemas corregidos en esta versión

  • Las comprobaciones de simultaneidad en el análisis de código son más inteligentes. Son más difíciles de engañar gracias a un flujo de control complejo.
  • Esta corrección restaura el comportamiento de los encabezados externos omitiendo el análisis de estos y suprimiendo sus advertencias.
  • Se han corregido los archivos .aspx/ascx, que provocaban que fuera posible que los usuarios vieran IntelliSense incompleto o experimentaran un rendimiento lento.
  • Se han corregido problemas de escalabilidad con el proveedor CodeLens de Unity al trabajar en proyectos grandes.
  • Se han restablecido las cadenas traducidas en la página de opciones Autenticación de servicio de Azure.
  • Se han corregido problemas intermitentes de presentación de código visual al usar la extensión Resharper.
  • Se ha corregido un problema que provocaba que determinadas ventanas de herramientas, editores y diseñadores se representaran demasiado pequeños como para mostrar contenido.
  • Se han corregido los problemas de icono de aplicación que faltaban en Xamarin iOS, ya sea al ejecutar una aplicación o al intentar publicarla en el App Store.
  • La compilación de proyectos con AOT y LLVM ya no genera un error XA3001.
  • Después de actualizar a Visual Studio 2019, versión 16.10, en determinadas circunstancias, la publicación de aplicaciones para UWP podía producir un mensaje de error "The specified resource name cannot be found in the image file" (No se ha podido encontrar el nombre de recurso especificado en el archivo de imagen). Esto se ha corregido.
  • Se ha corregido un problema que provocaba que Visual Studio 2019 dejara de responder al cambiar la configuración del dispositivo.
  • Se han corregido tres problemas en MSBuild:
    • Evita errores de MSB4017 al compilar en Azure DevOps.
    • $([MSBuild]::MakeRelative()) conserva de nuevo las barras diagonales finales en su entrada.
    • Los globs de exclusión con un patrón ** final de nuevo excluyen los archivos sin . characters

De Developer Community


16.10.1 Visual Studio 2019, versión 16.10.1

publicada el 8 de junio de 2021

Resumen de las novedades de la versión 16.10.1 de Visual Studio 2019

Principales problemas corregidos en esta versión

  • Se ha corregido un problema que provocaba un bloqueo con el compilador de IntelliSense.
  • Se ha corregido un problema que podía hacer que las instancias de Visual Studio 2019 se cerraran si el Explorador de pruebas estaba abierto en la solución.
  • Se ha corregido un error que se producía cuando los desarrolladores compilaban soluciones parciales desde la línea de comandos.
  • Se ha corregido un error en la publicación de ClickOnce para aplicaciones .NET Core.
  • Se ha corregido un problema que provocaba que la ventana de la pila de llamadas pudiera bloquear Visual Studio 2019.
  • Se ha corregido el error de compilación "Metadata file '***\bin\Debug\NativeLibrary.dll' could not be found" (No se ha encontrado el archivo de metadatos "\bin\Debug\NativeLibrary.dll") al compilar proyectos de enlace de iOS.

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 la desconexión del cliente de forma incorrecta.

De Developer Community


16.10.0 Visual Studio 2019, versión 16.10.0

publicada el 25 de mayo de 2021

Resumen de las novedades de la versión 16.10.0 de Visual Studio 2019

C++

  • Todas las características de C++20 ahora están disponibles en el modificador /std:c++latest. Aunque la implementación de MSVC de los estándares de C++20 (tal y como publica actualmente ISO) está completa, se espera que se modifiquen algunas características clave de la biblioteca de C++20 mediante próximos informes de defectos (correcciones de errores de C++20 de ISO), que pueden cambiarlas de forma incompatible con ABI. Vea el Problema 1814 de STL de Microsoft para obtener más detalles.
    • Se ha agregado compatibilidad con funciones inmediatas y constinit de C++20 en la versión 16.10
    • Las partes finales de <chrono> : nuevos relojes, segundos intercalares, zonas horarias y análisis.
    • La implementación de <format> para el formato de texto.
  • /openmp:llvm ahora está disponible en x86 y ARM64, además de x64.
  • Los directorios de inclusión ahora se pueden designar como externos con niveles de advertencia de compilación personalizados y configuración de análisis de código.
  • Se ha agregado el modificador /await:strict para habilitar las corutinas de estilo de C++20 en los modos de lenguaje anteriores.
  • La visualización del depurador de std::coroutine_handle<T> ahora muestra el nombre y la firma de la función de corutina original y el punto de suspensión actual.
  • Se ha agregado compatibilidad para CMakePresets.
  • Ahora se le pedirá que acepte o rechace la huella digital de la clave de host presentada por el servidor al agregar una nueva conexión remota en Visual Studio.
  • Se ha agregado un modificador /external a MSVC para especificar los encabezados que deben tratarse como externos con fines de advertencia.

Mejoras en las herramientas de Docker

  • Capacidad para crear un perfil de inicio que configura los servicios que se van a iniciar en el archivo de Compose.
  • Capacidad para etiquetar una imagen.
  • Se ha agregado una pestaña Volúmenes para contenedores.
  • Se ha agregado una pestaña Etiquetas para contenedores.
  • Se ha agregado una pestaña Etiquetas para imágenes.
  • Los contenedores ahora están agrupados por proyecto de Compose.

Editor

  • Para aquellos usuarios que quieran una experiencia menos saturada, es posible modificar el interlineado buscando "interlineado" en la búsqueda de Visual Studio (Ctrl+Q). La opción se encuentra en Editor de texto\General.
  • Buscar en archivos y Buscar todas las referencias tienen un control para mantener los resultados. Siguiendo los comentarios de nuestra comunidad, hemos agregado una opción para dejar la opción "Mantener resultados" en activada de forma predeterminada. Esta opción puede encontrarse al buscar "keep search results by default" (mantener los resultados de la búsqueda de forma predeterminada) en la búsqueda de Visual Studio (Ctrl+Q). La opción se encuentra en Entorno\Buscar y reemplazar. Tenga en cuenta que los usuarios actualmente tienen una limitación de 5 resultados para Buscar en archivos y otros 5 resultados para Buscar todas las referencias.
  • Una nueva opción de Buscar en archivos permite a los usuarios ejecutar búsquedas adicionales y anexar los resultados a una búsqueda anterior.

Extensibilidad del editor

  • El comportamiento del código que administra IntraTextAdornmentTags ha cambiado. Con este cambio, al igual que con cualquier otro objeto ITagger, debe generar un evento de cambio de etiquetas cuando cambien las etiquetas subyacentes. De lo contrario, es posible que las etiquetas nunca se actualicen.

Depuración y diagnóstico

  • El análisis de diagnóstico de los volcados de memoria ahora incluye volcados de memoria principal administrada de Linux.

Productividad de Git

  • Ir a la web con vínculos profundos para crear una solicitud de incorporación de cambios y ver solicitudes de incorporación de cambios en GitHub o Azure DevOps desde el menú de Git.
  • Restaurar ramas locales y remotas con una sola selección del selector de ramas.
  • Quitar elementos del selector de repositorios mediante el menú contextual.
  • Activar la carga automática de la solución al abrir un repositorio de Git mediante Git > Configuración.
  • Activar o desactivar el comportamiento de hacer doble clic para recuperar las ramas de la ventana del repositorio de Git mediante Git > Configuración.
  • Sincronizar (incorporar y enviar cambios) la rama con varios remotos desde el menú de desbordamiento de la ventana Cambios de Git.
  • Personalizar las acciones visibles de la barra de herramientas de la ventana Cambios de Git (captura, incorporación y envío de cambios, sincronización) desde el menú de desbordamiento.
  • Abrir el repositorio en el explorador desde el menú de desbordamiento de la ventana Cambios de Git.
  • Busque y extraiga las ramas locales y remotas desde la barra de estado.
  • Busque y cambie entre repositorios de Git locales desde la barra de estado.
  • Se ha corregido un problema por el que la lista de repositorios locales en el menú Git no se cargaba al inicio de Visual Studio.
  • Adición de subrepositorios de proyecto anidados a la lista de repositorios locales al abrir un repositorio.
  • Mantenga la solución abierta al cambiar de repositorios mediante Git > Configuración.
  • Desactive la carpeta abierta al abrir repositorios mediante Git > Configuración.
  • Sincronice la rama con el repositorio remoto desde el botón de confirmaciones sin insertar de la barra de estado y desde el comando Sincronizar del menú Git.
  • Capture y extraiga del panel de historial de la ventana Repositorio de Git incluso si no hay confirmaciones de entrada.
  • Vea los detalles de confirmación y la comparación de los cambios de archivo insertados en la ventana Repositorio de Git.
  • Vuelva a conectarse automáticamente o pida que se establezca la conexión inicial de Azure DevOps al abrir un repositorio Git de Azure DevOps.
  • Combine y fusione mediante cambio de base con nombres de rama visibles, reemplazando la terminología confusa de origen/destino.
  • Rendimiento y confiabilidad mejorados para los glifos de control de código fuente en el Explorador de soluciones.
  • Conservación de las secciones de entrada y salida en la ventana del repositorio Git incluso si están vacías.
  • Las listas desplegables de captura/extracción/inserción consolidadas para varios repositorios remotos en Git cambian a un solo menú de acción.

Productividad de .NET

  • Finalización de argumentos en llamadas al método
  • Interfaz de usuario de EditorConfig
  • Inspección visual y navegación en la cadena de herencia
  • Finalización de IntelliSense para conversiones, indexadores y operadores
  • Compatibilidad del depurador con los generadores de código fuente
  • Compatibilidad con la limpieza de código para Visual Basic
  • Actualizaciones de Editar y continuar (EnC)
  • Eliminación de las referencias no utilizadas
  • Salto de línea inteligente
  • Simplificación de la refactorización de la expresión LINQ
  • Finalización de IntelliSense para los valores de enumeración
  • Configuración del modo de finalización de IntelliSense
  • Preferencia de estilo de código para las nuevas líneas
  • Compatibilidad con la búsqueda de todas las referencias de los generadores de código fuente

Editor de vista previa de Razor (ASP.NET Core)

  • Actualizaciones de finalización de IntelliSense
  • Compatibilidad de Ir a definición para componentes genéricos
  • Nueva configuración de estilo de código para tabulaciones y espacios
  • El editor de texto de Razor en Opciones de herramientas ahora se denomina Razor (ASP.NET Core)

Experiencia de pruebas mejoras de accesibilidad

  • Console.WriteLine ahora se muestra en el Explorador de pruebas
  • El resultado de la prueba ahora puede conservar las etiquetas, por lo que los hipervínculos y los vínculos de seguimiento son navegables incluso desde los archivos de registro.
  • Los archivos de registro se crean para un resultado de prueba único cuando el resultado supera los 300 caracteres o si hay más de 10 archivos adjuntados al resultado de la prueba.
  • Los archivos de registro también se pueden abrir en vista previa para que la administración de pestañas resulte más sencilla.
  • Los archivos de registro y el Explorador de pruebas admiten Ctrl RePág/AvPág para navegar por el cursor y Mayús+Ctrl RePág/AvPág para seleccionar.
  • Ahora, el editor del archivo de registro usa la interfaz IVsTextView, lo que significa que ya podrá abrir archivos de texto muy grandes. De esta forma se debería eliminar la necesidad de que los usuarios tengan que usar Copy All con los registros truncados y abrirlos en un editor independiente como el Bloc de notas. Para MSTest, ahora también se incluye un archivo de registro único que agrega todo el resultado en lugar de tener solo archivos de registro individuales para cada fila de datos.
  • Ahora puede obtener cobertura de código multiplataforma en la línea de comandos de Ubuntu y Alpine con la CLI de dotnet. Para los usuarios interesados en obtener cobertura de código en máquinas que tienen como destino esas plataformas, ahora puede agregar los mismos comandos de recolección de información de cobertura de código que normalmente usaría en Windows. Vea más documentación de prueba de dotnet.
  • Ahora hay un botón Expandir todo junto al de Contraer todo en el Explorador de pruebas. Este comando ha estado disponible mediante métodos abreviados de teclado (Ctrl+A, Ctrl+flecha derecha), pero había más comentarios que indicaban que merecía la pena la incorporación de un botón en la interfaz de usuario adicional. Como siempre, gracias por hacernos saber su opinión mediante https://developercommunity.visualstudio.com/.
  • También hay algunos pequeños cambios en cómo el Explorador de pruebas muestra "obsolescencia". "Obsolescencia" es los resultados de la prueba grisáceos o "atenuados" que indican que el resultado no fue de la última ejecución de prueba. Si un resultado no forma parte de la serie de pruebas más reciente, aparecerá como obsoleto. Anteriormente, también se mostraban descubrimientos nuevos de la prueba (o incluso resultados de la prueba antiguos que se han vuelto a descubrir) con iconos sólidos. Esto provocaba cierta confusión sobre por qué algunas pruebas "No ejecutadas" se atenuaban y otras no. Este cambio reducirá la complejidad de la obsolescencia.
  • Gracias a la característica de resultados de la prueba persistentes (agregada en la versión 16.2) puede ver los resultados de la prueba de la última serie de pruebas, incluso si ha cerrado y vuelto a abrir Visual Studio. Esto permite a los usuarios recordar dónde lo han dejado y les aporta más contexto sin necesidad de realizar otra serie de pruebas. También hemos modificado el comportamiento de los resultados persistentes para que siempre aparezcan obsoletos. Esto indica mejor que no formaban parte de una serie de pruebas que se ha ejecutado durante la sesión actual de Visual Studio.

Herramientas web:

  • Cambio a la versión 2 de la API para el aprovisionamiento de Azure AD
  • Azure App Configuration como servicio conectado ahora es compatible con la configuración dinámica.

Árbol de dependencias del Proyecto de paquete de aplicación de Windows

  • Se ha agregado un "árbol de dependencias" al proyecto WAP.

Mejoras en las herramientas de XAML

  • Se ha mejorado IntelliSense en XAML y Recarga activa de XAML para los clientes de Xamarin.Forms.
  • Se han incluido datos de ejemplo de XAML para seleccionar ItemsControls en WPF.
  • Se ha agregado una nueva bombilla para el acceso rápido a las propiedades editadas habitualmente.
  • Se ha agregado una nueva bombilla en el Editor XAML para ayudar a crear un modelo de vista.

Herramientas de Service Fabric

  • Introducción de StartupServices.xml en aplicaciones de Service Fabric.

Detalles de las novedades de Visual Studio 2019, versión 16.10

Herramientas de Docker

Ventana de la herramienta contenedores

En esta versión, se han realizado adiciones a la ventana de herramientas de contenedores para que sea más fácil ver e interactuar con los contenedores y las imágenes. Solo tiene que ir a Ver > Otras ventanas > Contenedores para probar las nuevas características.

  • Los contenedores ahora están agrupados por proyecto de Compose. Esto hace que resulte fácil saber qué contenedores representan su aplicación. También se ha agregado una pestaña Etiquetas en Contenedores para que pueda ver fácilmente qué etiquetas está usando durante el desarrollo.

Compose grouping option and containers label tab

  • También se ha agregado una pestaña Etiquetas para imágenes.

Images Label tab

  • La nueva pestaña Volúmenes le permite ver los volúmenes de un contenedor en ejecución e incluso abrir los archivos en Visual Studio.

Container Volumes tab

  • Ahora se admite la posibilidad de etiquetar una imagen desde la ventana de herramientas Contenedores. En Imágenes, haga clic con el botón derecho en una imagen y seleccione Etiqueta.

Tagging an image

Compose
  • Las herramientas de Docker Compose en Visual Studio ahora proporcionan la capacidad de ejecutar cualquier combinación de servicios definida en los archivos de Compose. Abra la lista desplegable de depuración o haga clic con el botón derecho en el proyecto de Docker-Compose y seleccione Administrar la configuración de inicio de Docker Compose para comenzar.

Manage Docker Compose Launch Settings

Productividad de Git

  • Para empezar a facilitar la creación de solicitudes de incorporación de cambios en Visual Studio, hemos agregado elementos de menú que son accesos directos de vínculo profundo a las páginas web que le permiten crear una solicitud de incorporación de cambios o ver una lista de solicitudes de incorporación de cambios de su repositorio. El menú es dinámico en función de si el repositorio está en GitHub o en Azure DevOps.

Create a PR and view list of PRs on the web from the Git menu

  • El selector de ramas de la barra de estado y la ventana Cambios de Git ahora recuperan una rama local o remota al seleccionar la rama de forma única. Puede encontrar acciones adicionales en el menú contextual.

Left click to check out a branch and right click for additional actions

  • El nuevo selector de repositorios de la barra de estado tiene un menú contextual al hacer clic con el botón derecho que permite quitar elementos de la lista.

Remove items from the repository picker list through the context menu

  • Al usar el selector de repositorios o la lista de repositorios locales del menú de Git, cuando se abre un repositorio ya no se carga automáticamente la solución. En su lugar, verá la vista de carpetas y la solución disponible en una lista de la que puede seleccionar. Puede cambiar este comportamiento mediante Git > Configuración activando o desactivando la casilla.

  • Puede elegir recuperar una rama de la ventana del repositorio de Git haciendo doble clic en su nombre. Si quiere cambiar este comportamiento, active o desactive la casilla en Git > Configuración.

Settings to toggle auto-sln load and branch check out.

  • Ahora puede realizar más acciones si cabe desde la ventana Cambios de Git. Los iconos de la barra de herramientas son personalizables y puede elegir qué acciones mostrar. Puede realizar la sincronización con varios remotos desde el menú de desbordamiento. Y puede abrir la página web remota del repositorio en el explorador.

Git Changes overflow menu with callouts to Sync, open in browser, and toolbar actions.

  • Busque ramas locales y remotas y realice acciones de bifurcación comunes desde el selector de rama de la barra de estado.

Branch picker in the status bar.

  • Busque y cambie entre repositorios Git locales desde el selector de repositorio de la barra de estado.

Repo picker in the status bar.

  • Se ha corregido un problema por el que la lista de repositorios locales en el menú Git no se cargaba al inicio de Visual Studio.
  • Se han agregado dos nuevas opciones en Git > Configuración para administrar cómo se abren y cambian de repositorios. Ahora puede mantener abierta la solución actual al cambiar a otro repositorio

Setting to keep solution open.

  • También puede optar por no cargar la carpeta raíz del repositorio al abrir un repositorio.

Setting to open the folder

  • Sincronice (extraiga y después inserte) la rama con el repositorio remoto desde el botón de confirmaciones sin insertar de la barra de estado y desde el comando Sincronizar del menú Git.

Sync button in the status bar.

  • Capture y extraiga del panel de historial de la ventana Repositorio de Git incluso si no hay confirmaciones de entrada. Acceda a estas secciones desde la barra de estado o el método abreviado de teclado Ctrl+0+Y.

Incoming section in Git Repository window with a callout to fetch and pull buttons.

  • Seleccione una confirmación en la ventana Repositorio de Git para ver los detalles y la comparación de los cambios de archivo sin tener que desplazarse a otras ventanas. Seleccione dos confirmaciones y haga clic con el botón derecho para compararlas en la misma ventana. Extraiga los detalles en su propia ventana para obtener visibilidad a pantalla completa y ver en profundidad los cambios.

Embedded commit details and file comparison in Git Repository window.

  • Vea el número de eliminaciones e inserciones en un archivo y cambie el diseño de la comparación.

Popped out Commit window with callouts to number of file changes and layout view buttons in toolbar

  • Vuelva a conectarse automáticamente o pida que se establezca la conexión inicial de Azure DevOps al abrir un repositorio Git de Azure DevOps. Esto permite el acceso a elementos de trabajo y compilaciones para el repositorio abierto.

Info bar in Git Changes window prompting you to connect to Azure DevOps for the current repository.">

  • Al resolver conflictos de fusión mediante cambio de base o mediante combinación, el editor de combinación y el menú contextual mostrarán los nombres de las ramas de las bifurcaciones actual y entrante. De esta forma se corrige la terminología de origen y destino confusa.

Context menu when resolving conflicts displays the branch names.

Rebase and Merge editor displays branch names in the headings.

Productividad de .NET

  • Se ha agregado un comando Remove Unused References (Quitar referencias sin usar) que permite limpiar las referencias del proyecto y los paquetes NuGet que no tienen uso. Esta opción está desactivada de forma predeterminada, por lo que tendrá que habilitarla en Herramientas>Opciones>Editor de texto>C#>Opciones avanzadas y seleccionar la opción Show “Remove Unused References” command in Solution Explorer (experimental) (Mostrar el comando 'Quitar referencias sin usar' en el Explorador de soluciones [experimental]). Una vez habilitada la opción, el comando Quitar referencias sin usar aparecerá en el menú contextual de un nombre de proyecto o un nodo de dependencias en el Explorador de soluciones:

Remove Unused References command

Al seleccionar la opción Quitar referencias sin usar, se abrirá un cuadro de diálogo en el que podrá ver todas las referencias que se van a quitar con una opción para conservar las que desee:

Remove Unused References dialog

  • Hemos agregado un nuevo comando Salto de línea inteligente que inserta automáticamente un conjunto de llaves y coloca el símbolo de intercalación dentro de esas llaves al usar Mayús+Entrar como un carácter de confirmación. El salto de línea inteligente funciona para todas las declaraciones de tipos que requieren llaves, así como propiedades, eventos, campos y expresiones de creación de objetos. En el ejemplo siguiente se muestra el salto de línea inteligente utilizado en una clase y un campo. Si el campo no tiene un punto y coma al final, al pulsar Mayús+Entrar se convertirá el campo en una propiedad mediante la adición un conjunto de llaves. Puede presionar Mayús+Entrar de nuevo para deshacer la confirmación, lo que también agregará automáticamente un punto y coma al final del campo:

Smart Break Line

  • Ahora hay una refactorización para simplificar las expresiones LINQ que quitará a llamada innecesaria al enumerable para el método .Where() a fin de ayudar a mejorar el rendimiento y la legibilidad. Coloque el cursor en la expresión LINQ. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Simplificar la expresión LINQ.

Simplify LINQ Expression

  • Ahora hay una finalización de IntelliSense para los valores de enumeración cuando se conoce un tipo incluso si no se especifica el nombre de la enumeración.

IntelliSense completion for Enum values

  • Hemos agregado una nueva configuración del modo de finalización de IntelliSense que le permite establecer las opciones de finalización predeterminadas. Esta nueva configuración está disponible en Herramientas>Opciones>Editor de texto>Opciones avanzadas>Modo de finalización de IntelliSense donde puede elegir entre las siguientes opciones: Último uso, que conservará la última configuración que se ha usado con Ctrl+Alt+Espacio, Tab-only (Solo tabulación), que solo finalizará con la tabulación, y Automático, que es actualmente el comportamiento predeterminado que finalizará en los caracteres de puntuación y especiales.

IntelliSense completion mode setting

  • Hemos agregado nuevas preferencias de estilo de código para las nuevas líneas. Puede configurar estas preferencias con un archivo EditorConfig o en Herramientas>Opciones>Editor de texto>C#>Estilo de código>Nuevas preferencias de línea (experimental).

Code style options for new lines

Por ejemplo, puede establecer las preferencias de estilo de código para notificar un diagnóstico y ofrecer una corrección de código para quitar líneas en blanco adicionales:

Code fix remove extra blank lines

  • Ahora hay compatibilidad con la búsqueda de todas las referencias para los generadores de código fuente, que le permite buscar referencias en un documento generado por código fuente.

  • Ahora hay una opción de finalización que inserta los argumentos automáticamente al escribir una llamada al método. Esta característica está desactivada de forma predeterminada, por lo que tendrá que habilitarla en Herramientas > Opciones > Editor de texto > C# > IntelliSense y seleccionar la tecla TAB dos veces para insertar argumentos (experimental). Comience a escribir una llamada al método y presione la tecla TAB dos veces (TAB+TAB). Observe que la llamada al método incluye argumentos basados en los valores predeterminados del método. Después, puede usar la información de parámetros para desplazarse por la lista de argumentos que quiere insertar presionando las teclas de flecha arriba y abajo. También puede empezar a escribir un argumento para abrir la lista de finalización de IntelliSense y escribir el punto y coma, que confirmará el argumento y agregará un punto y coma al final de la llamada al método.

Method call argument completion

  • Hemos creado una interfaz de usuario para EditorConfig. Abra cualquier archivo EditorConfig de C# o Visual Basic de la solución. Observe que la nueva interfaz de usuario se abrirá y mostrará el estilo de código y la opción de configuración de calidad de código para C# y Visual Basic.

EditorConfig UI

  • Ahora hay una representación visual de la navegación e inspección de la cadena de herencia. Esta opción está desactivada de forma predeterminada, por lo que tendrá que activarla en Herramientas > Opciones > Editor de texto > C# > Avanzadas y seleccionar Mostrar margen de herencia. Al habilitar el margen de herencia se agregarán nuevos iconos a los márgenes que representan las implementaciones e invalidaciones del código. Al hacer clic en el icono del margen de herencia se mostrarán las opciones de herencia que puede seleccionar para navegar a ellas.

Inheritance Margin Icons

  • Ahora se incluye la finalización de IntelliSense para conversiones, indexadores y operadores.

IntelliSense completion for casts, indexers, and operators

  • Ahora se incluye compatibilidad con depurador para los generadores de código fuente. En primer lugar, deberá instalar el componente SDK de .NET Compiler Platform desde el Instalador de Visual Studio. Después, deberá agregar la propiedad <IsRoslynComponent>true</IsRoslynComponent> al archivo del proyecto. Habilite también la opción de depurador "Roslyn Component" (Componente Roslyn) en la página Depurar de Propiedades del proyecto y seleccione el proyecto de destino adecuado. Por último, presione F5 en el proyecto de generador, lo cual iniciará el CSC.exe/VBC.exe que compila el proyecto de destino, lo que le permite depurar el código del generador.

Source Generator debugger

Source Generator debugger target project

En esta versión también se han agregado las siguientes mejoras a la experiencia de depuración Editar y continuar (EnC) en Visual Studio:

  • Ahora es posible aplicar cambios en el código que se encuentra dentro de una clase parcial.
  • Ahora puede aplicar los cambios en un archivo generado por código fuente).
  • Ahora es posible agregar o cambiar una directiva using.
  • Mejoras en la confiabilidad y un menor consumo de memoria.

Estos tres cambios están disponibles en cualquier lugar donde se admita actualmente EnC y funcionan tanto con archivos de código fuente de C# como de Visual Basic.

Depurador y diagnóstico

  • Hemos desarrollado varios analizadores para ayudar a detectar problemas comunes en los volcados de memoria administrada. Este análisis puede realizarse ahora en volcados de memoria principal administrada de Linux.

Automatically analyze memory dumps

Gracias

Por último, pero no por ello menos importante, queremos dar las gracias al siguiente equipo de personas que han contribuido este mes a la productividad de .NET (también conocido como Roslyn):

Editor de vista previa de Razor (ASP.NET Core)

El nuevo editor de vista previa de Razor admite ahora las siguientes características de edición de Razor:

  • La finalización de IntelliSense ahora filtra por los componentes HTML, los elementos TagHelper y los atributos de C#:

Razor IntelliSense filters

  • Finalización de IntelliSense para invalidaciones de C#.
  • Compatibilidad de Ir a definición para componentes genéricos.
  • Nuevas opciones de configuración de estilo de código para pestañas frente a espacios. Estos estilos de código se respetan al escribir, aplicar formato y crear un nuevo archivo de Razor. Puede configurar pestañas y espacios en Herramientas > Opciones > Editor de texto > Razor (ASP.NET Core) > Pestañas.
  • El nombre del editor de texto de Razor en Opciones de herramientas ha cambiado de ASP.NET Core Razor Language Services a Razor (ASP.NET Core).

Para habilitar el nuevo editor de vista previa de Razor, vaya a Herramientas > Opciones > Entorno > Características en versión preliminar, seleccione Enable experimental Razor editor (Habilitar editor de Razor experimental) y reinicie Visual Studio.

Experiencia de pruebas mejoras de accesibilidad

  • Console.WriteLine ahora se muestra en el Explorador de pruebas La salida larga aparece como una sección contraíble en el panel Resumen de detalles de la prueba. La salida que supere una longitud determinada muestra las primeras líneas y, después, se trunca con una opción para abrir el registro de pruebas en una ventana independiente. StackTrace se trunca si hay más de 20 fotogramas y, después, solo mostrará los 10 primeros y los 10 últimos fotogramas. Una parte importante del diseño de truncamiento también se centró en reducir las inmovilizaciones de VS cuando las series de pruebas presenten una salida grande. Las pruebas con una salida grande ya no bloquearán el subproceso de la interfaz de usuario.

Test output includes Console.Writeline

  • El resultado de la prueba ahora puede conservar las etiquetas, por lo que los hipervínculos y los vínculos de seguimiento son navegables incluso desde los archivos de registro. Estos vínculos ahora también son accesibles desde el teclado.

Test output preserves hyperlinks and stacktraces

Test logs also preserve hyperlinks and stacktraces

  • Los archivos de registro se crean para un resultado de prueba único cuando el resultado supera los 300 caracteres o si hay más de 10 archivos adjuntados al resultado de la prueba. Los archivos de registro también se pueden abrir en vista previa para que la administración de pestañas resulte más sencilla. Los archivos de registro y el Explorador de pruebas admiten Ctrl RePág/AvPág para navegar por el cursor y Mayús+Ctrl RePág/AvPág para seleccionar.

Test logs are easier to select with keyboard shortcuts

  • Ahora, el editor del archivo de registro usa la interfaz IVsTextView, lo que significa que ya podrá abrir archivos de texto muy grandes. De esta forma se debería eliminar la necesidad de que los usuarios tengan que usar Copy All con los registros truncados y abrirlos en un editor independiente como el Bloc de notas. Para MSTest, ahora también se incluye un archivo de registro único que agrega todo el resultado en lugar de tener solo archivos de registro individuales para cada fila de datos.

Herramientas de pruebas

  • Ahora puede obtener cobertura de código multiplataforma en la línea de comandos de Ubuntu y Alpine con la CLI de dotnet. Para los usuarios interesados en obtener cobertura de código en máquinas que tienen como destino esas plataformas, ahora puede agregar los mismos comandos de recolección de información de cobertura de código que normalmente usaría en Windows. Vea más documentación de prueba de dotnet.
  • Ahora hay un botón Expandir todo junto al de Contraer todo en el Explorador de pruebas. Este comando ha estado disponible mediante métodos abreviados de teclado (Ctrl+A, Ctrl+flecha derecha), pero había más comentarios que indicaban que merecía la pena la incorporación de un botón en la interfaz de usuario adicional. Como siempre, gracias por hacernos saber su opinión mediante https://developercommunity.visualstudio.com/.
  • También hay algunos pequeños cambios en cómo el Explorador de pruebas muestra "obsolescencia". "Obsolescencia" es los resultados de la prueba grisáceos o "atenuados" que indican que el resultado no fue de la última ejecución de prueba. Si un resultado no forma parte de la serie de pruebas más reciente, aparecerá como obsoleto. Anteriormente, también se mostraban descubrimientos nuevos de la prueba (o incluso resultados de la prueba antiguos que se han vuelto a descubrir) con iconos sólidos. Esto provocaba cierta confusión sobre por qué algunas pruebas "No ejecutadas" se atenuaban y otras no. Este cambio reducirá la complejidad de la obsolescencia.
  • Gracias a la característica de resultados de la prueba persistentes (agregada en la versión 16.2) puede ver los resultados de la prueba de la última serie de pruebas, incluso si ha cerrado y vuelto a abrir Visual Studio. Esto permite a los usuarios recordar dónde lo han dejado y les aporta más contexto sin necesidad de realizar otra serie de pruebas. También hemos modificado el comportamiento de los resultados persistentes para que siempre aparezcan obsoletos. Esto indica mejor que no formaban parte de una serie de pruebas que se ha ejecutado durante la sesión actual de Visual Studio.

Persisted test results from last Visual Studio session appear faded

Herramientas Web

La configuración dinámica permite que los recursos de configuración se actualicen automáticamente mediante un middleware. App Configuration como servicio conectado ahora puede integrar automáticamente la configuración dinámica en la aplicación. Para usar este servicio conectado, haga clic en Servicios conectados y agregue Azure App Configuration como una dependencia de servicio.

"Árbol de dependencias" del Proyecto de paquete de aplicación de Windows

  • Siguiendo el trabajo del año pasado para habilitar el paquete NuGet en el Proyecto de paquete de aplicación de Windows (WAP), hemos habilitado una interfaz de usuario nueva en la experiencia de Explorador de soluciones de WAP. La experiencia anterior no mostraba estas referencias de paquete ni permitía agregar paquetes NuGet mediante la interfaz de usuario.

Windows Application Packaging Project Old User Interface.

  • En la nueva experiencia, con la ayuda de CPS y el sistema de proyectos de .NET, hemos habilitado un "Árbol de dependencias" que sigue mostrando referencias de proyecto a través del subárbol "Aplicaciones", pero también incluye un subárbol "Paquetes" que le permitirá igualmente administrar los paquetes NuGet.

Windows Application Packaging Project New User Interface.

Mejoras en las herramientas de XAML (WPF & Xamarin.Forms)

Xamarin.Forms

En esta versión se han realizado dos pequeñas mejoras en IntelliSense en XAML y la recarga activa de XAML para los clientes de Xamarin.Forms. La recarga activa de "solo cambio" dejará de notificar falsos errores para:

  • Establecedores de VisualStateManager que hacen referencia a propiedades sin especificar el tipo, por ejemplo, <Setter Property="BackgroundColor" Value="Red">.
  • Objetos ResourceDictionary combinados que no se incluyen en el elemento <ResourceDictionary.MergedDictionaries>.

Ejemplo:

    <Application>
    <Application.Resources>
        <ResourceDictionary Source='Colors.xaml'/>
        <Style TargetType='Label'> ... <Style>
    </Application.Resources>
    </Application>

Datos de ejemplo XAML

En esta versión, se ha mejorado aún más la funcionalidad de datos en tiempo de diseño del Diseñador XAML mediante la introducción de una nueva forma de agregar datos de ejemplo genéricos a ItemsControl. Esta característica solo funciona para ListBox, ListView y DataGrid en WPF.

  • Los datos de ejemplo se pueden habilitar estableciendo d:ItemSource='{d:SampleData}' en ListBox, ListView o DataGrid.
  • Esto rellenará el control en el diseñador con solo un conjunto de 5 elementos que coinciden con DataTemplates y las rutas de enlace.
  • Puede cambiar el número de elementos que se generan mediante la propiedad ItemCount, por ejemplo: d:ItemSource='{d:SampleData ItemCount=3}'

ListBox showing Sample Data.

Acciones rápidas del Diseñador XAML

  • Se puede usar una nueva bombilla cerca de la esquina de un control seleccionado en el Diseñador XAML a fin de acceder rápidamente a las propiedades editadas habitualmente para ese control.

  • Entre los controles admitidos se incluyen:

    • UWP: Border, Button, Canvas, CheckBox, ComboBox, Grid, HyperlinkButton, Image, ListBox, ListView, NavigationView, RadioButton, Slider, StackPanel, TextBlock, TextBox
    • WPF: Border, Button, Canvas, CheckBox, ComboBox, Grid, Image, Label, ListBox, ListView, StackPanel, TextBlock, TextBox
  • Esta característica está disponible para UWP, .NET Core de WPF y .NET Framework de WPF (con la característica en versión preliminar “New WPF XAML Designer for .NET Framework” [Nuevo Diseñador XAML de WPF para .NET Framework] habilitada en el cuadro de diálogo de opciones).

  • Las acciones rápidas del Diseñador XAML también tienen un modelo de extensibilidad. Para más información sobre cómo crear sus propias acciones, consulte la extensibilidad del Diseñador XAML en GitHub.

XAML Designer Quick Actions on a Button

Herramientas de MVVM para XAML

En esta versión, hemos introducido una bombilla en el Editor XAML para crear un modelo de vista. Esta bombilla se muestra en el elemento raíz del documento XAML cuando se detecta que se usa un marco MVVM en el proyecto. El cuadro de diálogo permite personalizar el espacio de nombres del modelo de vista generado, la carpeta y el modelo de vista base heredado.

Create view-model lightbulb experience

La bombilla también establece el modelo de vista generado como x:DataType (Xamarin.Forms) o d:DataContext (el resto de plataformas) para el documento XAML, lo que permite al usuario aprovechar aún más las bombillas del Editor XAML a fin de generar propiedades enlazadas y comandos en modelos de vista.

Herramientas de Service Fabric

Esta característica presenta el archivo StartupServices.xml en un diseño de aplicación de Service Fabric. Este archivo hospeda la sección DefaultServices de ApplicationManifest.xml. Con esta implementación, los parámetros DefaultServices y relacionados con la definición de servicio se mueven del archivo ApplicationManifest.xml existente a este nuevo archivo denominado StartupServices.xml. Este archivo se usa en cada función (Compilación/Recompilación/F5/Ctrl+F5/Publicación) en Visual Studio.

Principales problemas corregidos en esta versión

  • Se ha corregido un problema que provocaba que los desarrolladores de C# que invocaban el comando Edit.SmartBreakline quitaran todo el contenido del descriptor de acceso de Propiedad.
  • Se ha corregido un problema que hacía que los desarrolladores que actualizaban una configuración de estilo de código tuvieran que aplicar el cambio en todas las instancias de Visual Studio en lugar de solo dentro de la carpeta deseada.
  • El icono "Aplicar cambios en el código" se mostraba cada vez que se abría un proyecto nativo o combinado. Solo se habilitará una vez que un desarrollador inicie la depuración.
  • Se han corregido cambios importantes en AudioUnitPropertyIDType.
  • Se ha corregido un problema que provocaba que los desarrolladores que usaban el marco de prueba unitaria de UWP no pudieran ejecutar pruebas en dispositivos remotos.

De Developer Community

Developer Community tiene una lista completa de todos los elementos que se distribuyen en esta versión.

Estos son algunos de los problemas con más votos publicados en la versión 16.10:


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


Blogs

Saque partido de la información y de las recomendaciones disponibles en los blogs de Developer Tools que le mantendrán al día sobre las nuevas versiones y con publicaciones con mucha información sobre una gran variedad de características.


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