2019LogoNotas de la versión de Visual Studio 2019 16.8



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

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

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:


Consulte la lista completa de todos los cambios de Developer Community realizados en la versión 16.8 de Visual Studio 2019.

Release Notes Icon Visual Studio 2019, versión 16.8.7

Fecha de publicación: 9 de marzo de 2021

Problemas corregidos en esta publicación de Visual Studio 2019, versión 16.8.7

Aviso de seguridad

CVE-2021-21300 Vulnerabilidad de ejecución remota de código de Git para Visual Studio

Hay una vulnerabilidad de ejecución remota de código cuando Visual Studio clona un repositorio malintencionado.

CVE-2021-26701 Vulnerabilidad de ejecución remota de código 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.


Release Notes Icon Visual Studio 2019, versión 16.8.6

Fecha de publicación: 22 de febrero de 2021

Problemas corregidos en esta publicación de Visual Studio 2019, versión 16.8.6


Release Notes Icon Visual Studio 2019, versión 16.8.5

publicada el 09 de febrero de 2021

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 cuando Visual Studio carga un repositorio malintencionado que contiene archivos de código de 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 remota de código 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.

Problemas corregidos en esta publicación de Visual Studio 2019, versión 16.8.5

  • Se ha corregido un problema por el que las aplicaciones Microsoft.VCLibs x86 instaladas en los SDK de extensión se actualizaban con la firma correcta.
  • Se ha corregido una fuga de memoria al usar las características DesignTime de C++.
  • Se ha corregido un problema por el que se inicia una excepción si no se recuerda una contraseña al importar una base de datos existente en un proyecto de SSDT.
  • Se ha corregido un problema que hacía que el botón Publicar estuviera deshabilitado la primera vez que los clientes publicaban proyectos de .NET Core en una carpeta o en otros destinos de hospedaje.
  • Se ha corregido un bloqueo que se producía ocasionalmente cuando los desarrolladores abrían la página de vista de perfiles de publicación.
  • Se ha agregado compatibilidad con Xcode 12.4.

Elementos de Developer Community


Release Notes Icon Visual Studio 2019, versión 16.8.4

publicada el 12 de enero de 2021

Aviso de seguridad

CVE-2021-1651 / CVE-2021-1680 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 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 ASP.NET Core y Visual Studio

Existe una vulnerabilidad de denegación de servicio en la forma en que Kestrel analiza las solicitudes HTTP/2.

Problemas corregidos en esta publicación de Visual Studio 2019, versión 16.8.4

  • Se ha corregido un problema que causaba que algunos componentes de IntelliCode específicos de C# no estuvieran instalados si IntelliCode se había instalado previamente de Visual Studio Marketplace en versiones anteriores de Visual Studio.
  • Ahora, cuando un proyecto PackageReference hace referencia a proyectos packages.config con dependencias PackageReference, las referencias de proyecto transitivas se respetan.
  • Se ha agregado compatibilidad con Xcode 12.3.
  • Se ha corregido la compatibilidad con el simulador de watchOS 7.0 y versiones posteriores con x86_64.
  • Se han corregido falsos positivos (C33001 ~ C33005) para el uso de variantes devueltas por una función.
  • Se han corregido bloqueos de VS intermitentes en el diseñador de .NET Core de WinForms al cerrar un proyecto o una solución.
  • 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 el error que provocaba que, al hacer clic en el botón para actualizar la Comparación de esquemas de SQL, no se guardasen los cambios en el archivo sqlproj.
  • Se ha corregido un error que provocaba que las compilaciones no se completasen con el error “Table/column was not found” (No se ha encontrado la tabla o la columna).
  • Se ha corregido la casilla “commit after merge” (confirmar tras la combinación) en Team Explorer -> Ramas.
  • Se ha corregido un error que provocaba que Visual Studio no respondiese durante varios segundos mientras comprobaba si había actualizaciones.
  • La herramienta DeploymentAppRecipe. exe ahora admite la ejecución desde cualquier directorio actual. Ahora también devuelve el valor distinto de cero devuelto siempre que se produce un error en la implementación e imprime los mensajes de error en el flujo de error estándar.

De Developer Community



Release Notes IconVisual Studio 2019, versión 16.8.3

Fecha de publicación: 08 de diciembre de 2020

Aviso de seguridad

CVE-2020-17156 Vulnerabilidad de ejecución remota de código de Visual Studio

Hay una vulnerabilidad de ejecución remota de código cuando Visual Studio clona un repositorio malintencionado.

Problemas corregidos en esta publicación de Visual Studio 2019, versión 16.8.3

  • Se corrigió un error interno del compilador cuando se define una plantilla de función anidada fuera de la clase primaria.
  • Se ha corregido el error incorrecto C2355 que se producía al usar "this" en el inicializador de un miembro de datos no estático.
  • Se ha corregido el error de carga del conjunto de reglas para el conjunto de reglas personalizado mediante la opción /analyze:ruleset con la opción /analyze:rulesetdirectory o /analyze:projectdirectory
  • Corrección de un bloqueo intermitente en Visual Studio mientras se usa el diseñador de .NET Core de WinForms.
  • Inserción de .NET 5.0.1 en Visual Studio v16.8.3
  • Se corrigió un problema por el que algunas de las ventanas de herramientas para activar el contexto de la interfaz de usuario pueden bloquear Visual Studio.
  • Se ha corregido la inserción desde la página Administrar ramas cuando no hay ninguna rama de seguimiento remoto de Git.
  • Se ha agregado compatibilidad con Xcode 12.2.

De Developer Community



Release Notes IconVisual Studio 2019, versión 16.8.2

fecha de publicación: 19 de noviembre de 2020

Problemas corregidos en esta versión de Visual Studio 2019, versión 16.8.2

  • Se corrigió el error de optimización en los bucles.
  • Se corrigió el error interno del compilador en la implementación de elisión de copia garantizada (característica de C++ 17).
  • Se corrigió la regresión del rendimiento de compilación para grandes usos de tipos anónimos.
  • Se solucionó un problema en el que aparecía una barra dorada con el mensaje "El argumento especificado estaba fuera del intervalo de valores válidos" al editar el código de C#.
  • Se corrigió un problema que podía provocar un error MissingMethodException al compilar un proyecto que tenía plantillas T4.
  • Se corrigió un problema por el que la búsqueda en el cuadro de diálogo Nuevo proyecto podría devolver cero resultados.

De Developer Community



Release Notes IconVisual Studio 2019, versión 16.8.1

fecha de publicación: 12 de noviembre de 2020

Problemas corregidos en esta versión de Visual Studio 2019, versión 16.8.1

  • Se ha corregido un problema de gran impacto que provocaba que se mostrase la advertencia “El paquete 'SourceExplorerPackage' no se ha cargado correctamente.” al clonar un repositorio en Team Explorer. Cuando los usuarios se encontraban con este problema, el producto dejaba de responder.

Release Notes Icon Visual Studio 2019, versión 16.8.0

fecha de publicación: 10 de noviembre de 2020

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


F# :

  • F# 5 ahora está disponible junto con .NET 5
  • Mejoras y correcciones de rendimiento para las herramientas de Visual Studio a través de la versión 11.0.0 de las herramientas de F#
  • Notas de la versión completas disponibles en GitHub

C++:

  • Las corrutinas de C++20 ahora se admiten en /std:c++latest y el encabezado <corrutina>.
  • IntelliSense ahora proporciona compatibilidad con los encabezados <conceptos> y <rangos> de C++20, y para cambiar el nombre y buscar definiciones de concepto.
  • Nuestro STL ahora es compatible con la mayoría de rangos de C++20.
  • Las funciones miembro especiales triviales según determinadas condiciones ahora se admiten en MSVC.
  • C11 y C17 ahora se admiten en los modificadores /std:c11 y /std:c17.
  • Entre las mejoras adicionales de STL se incluye la compatibilidad total con std::atomic_ref, std::midpoint and std::lerp y std::execution::unseq, optimizaciones para std::reverse_copy y mucho más.
  • Versión actualizada de CMake que se incluye con Visual Studio en CMake 3.18.
  • Nuestras herramientas de análisis de código ahora admiten el estándar SARIF 2.1: el formato de registro de análisis estático estándar del sector.
  • Si faltan herramientas de compilación en los proyectos de Linux, ahora se emitirá una advertencia en la barra de herramientas y una descripción clara de las herramientas que faltan en la lista de errores.
  • Ahora puede depurar volcados de memoria principales de Linux en un sistema Linux remoto o en WSL directamente desde Visual Studio.
  • Para la generación de comentarios Doxygen de C++, hemos agregado las opciones de estilo de comentario adicionales (/*! y //!).
  • Anuncios de vcpkg adicionales
  • Compatibilidad del compilador con lambdas en contextos no evaluados
  • Rendimiento del vínculo /debug:full mejorado mediante la creación de pdb de multithreading. Varias aplicaciones de gran tamaño y juegos AAA ven una vinculación entre dos y cuatro veces más rápida.
  • El depurador de Visual Studio ahora es compatible con char8_t.
  • Compatibilidad con proyectos ARM64 mediante clang-cl.
  • Compatibilidad con los intrínsecos de Intel AMX.

Depurador:

  • Compatibilidad con la depuración de volcado de memoria principal de .NET Core para Linux
  • Análisis automático de .NET y .NET Core
  • Análisis automático de la ruta de acceso activa de la memoria de .NET y .NET Core

Actualizaciones del editor de Razor experimental:

  • Bombillas de Blazor
  • Bombillas de C#
  • Formato Razor mejorado
  • Cambie el nombre de los componentes de Razor en el marcado de los archivos .razor
  • Ir a definición en el espacio de nombres de etiquetas de componentes de Blazor
  • Coloración al mantener el mouse en C#
  • Coloración de información sobre herramientas de finalización de C#
  • Adición de opciones para ir a la definición o implementación de Razor, incluidos los archivos cerrados
  • Buscar todas las referencias en archivos de Razor cerrados
  • Estabilidad y rendimiento de la edición en Razor mejorados para soluciones y proyectos de gran tamaño

Fakes con proyectos de estilo SDK:

  • Al emplear la nueva compatibilidad de Fakes con los proyectos de estilo SDK, algunos usuarios han encontrado el siguiente error en el momento de generar correcciones de compatibilidad (shim)

Productividad de Git:

  • Más información sobre cómo usar todas las características de Git en nuestra nueva documentación en línea
  • Apertura de la ventana Repositorio de GIT en cualquier momento a través de la ventana Cambios de Git, el menú Ver y la barra de estado
  • Captura, extracción e inserción desde varios repositorios remotos en la ventana Cambios de Git
  • Vista de mensajes correctos y de error para comandos de Git en la parte superior de la ventana Repositorio de GIT
  • Creación de una rama a partir de un elemento de trabajo de Azure DevOps
  • Apertura de un repositorio Git a partir de una lista de repositorios locales en el menú Git
  • El proveedor de control de código fuente predeterminado ahora es Git en lugar de TFVC
  • Un solo clic para cambiar entre los historiales de la rama en la ventana del repositorio de Git
  • Vista y selección en una lista de soluciones del Explorador de soluciones después de abrir un repositorio
  • Modificación de la vista de historial y búsqueda de confirmaciones mediante una barra de herramientas en la ventana del repositorio de Git
  • Captura, extracción e inserción de las secciones de confirmaciones entrantes y salientes en el gráfico del historial de una rama
  • Solicitudes para crear una solicitud de incorporación de cambios después de insertar una rama en el remoto
  • Consulta de los nombres de las ramas en los comandos de combinación y fusión mediante cambio de base en el menú contextual de la lista de ramas
  • Acceso a los comandos de Git a través del menú contextual en el Explorador de soluciones y el Editor
  • Observación del progreso de clonación por medio de un nuevo cuadro de diálogo modal con la opción de mover el proceso a segundo plano

IntelliCode:

  • Obtenga finalizaciones de IntelliCode personalizadas en la documentación de Visual Studio
  • Mantenga actualizadas las finalizaciones de IntelliCode con el código base y compártalas como parte de la documentación del flujo de trabajo de CI del equipo

Productividad de .NET:

  • Los analizadores de Roslyn ahora se incluyen en el SDK de .NET 5.0
  • Refactorización que presenta la nueva sintaxis de coincidencia de patrones not de C# 9 cuando hay un operador de eliminación
  • Refactorización del método insertado para ayudar a reemplazar los usos de los métodos estáticos, de instancia y de extensión dentro de un solo cuerpo de la instrucción
  • Corrección de código para convertir instancias de typeof en nameof en C# y GetType en NameOf en Visual Basic
  • Compatibilidad de Visual Basic y C# con sugerencias de nombre de parámetro insertado que inserta elementos gráficos para literales, literales convertidos e instancias de objeto antes de cada argumento en las llamadas de función
  • Refactorización que extrae miembros de una clase seleccionada a una nueva clase base en C# y Visual Basic
  • Limpieza de código tiene nuevas opciones de configuración que pueden aplicar las preferencias de formato y encabezado de archivo establecidas en el archivo EditorConfig en un solo archivo o en toda una solución
  • Corrección de código para quitar la palabra clave in allí donde el argumento no se deba pasar por referencia
  • Refactorización que presenta los nuevos combinadores de patrones de C#9 y sugerencias de coincidencia de patrones, como la conversión de == para usar is cuando proceda
  • Corrección de código para convertir una clase en abstracta al intentar escribir un método abstracto en una clase que no lo es
  • La finalización de IntelliSense en los literales de cadena DateTime y TimeSpan aparece automáticamente al escribirse la primera comilla
  • Corrección de código para quitar pragma suppressions y SuppressMessageAttributes innecesarios
  • Rename y Find All References comprenden las referencias a símbolos dentro de la cadena de destino de SuppressMessageAttributes globales
  • Se atenúa ByVal para indicar que no es necesario usarlo en combinación con una corrección de código para quitar el valor ByVal innecesario en Visual Basic
  • Compatibilidad con ventanas interactivas para varios entornos de ejecución, como .NET Framework y .NET Core.
  • Se ha agregado una nueva API RegisterAdditionalFileAction que permite a los autores de analizadores crear uno para archivos adicionales.

IDE de Visual Studio 2019:

  • Agregue su cuenta de GitHub con la experiencia de administración de cuentas
  • En esta versión, la experiencia Buscar en archivos heredada ha quedado en desuso, de modo que todos los usuarios pasarán a usar la nueva experiencia. El equipo del Editor está trabajando con personas que dejan comentarios en Developer Community y que están teniendo problemas con la experiencia moderna de Buscar en archivos.
  • El proveedor de publicación de ClickOnce ahora está disponible para las aplicaciones de escritorio de Windows de .NET Core 3.1 y .NET 5.0.

Ajuste del panel de detalles de la prueba del Explorador de pruebas:

  • Ahora puede ajustar el texto en el panel de detalles de la prueba del Explorador de pruebas.

Herramientas XAML (WPF, UWP y Xamarin.Forms):

  • Mejoras en el diagnóstico de errores de enlace XAML
  • Configuración de recarga activa de XAML movida a "Depuración > Recarga activa"
  • Rellenado del cuadro de herramientas a partir de paquetes NuGet sin referencia

JavaScript/TypeScript:

  • El depurador de JavaScript/TypeScript ahora admite la depuración de trabajos del servicio, los trabajos web, iFrame y el código JavaScript de la página al mismo tiempo. Además, la nueva experiencia de depuración agrega compatibilidad para depurar las aplicaciones del servidor de nodo de back-end y JavaScript del lado cliente en el explorador simultáneamente. Esta característica sigue siendo experimental. Puede habilitar la nueva experiencia de depuración en el menú Opciones de depuración.
  • Ahora puede desencadenar refactorizaciones en cualquier lugar donde puedan estar disponibles mediante el acceso directo de acción de código (ctrl +.). Ni siquiera hace falta que seleccione ningún texto: TypeScript ahora es lo suficientemente inteligente como para buscar las mejores refactorizaciones disponibles en la ubicación del cursor.
  • Ahora puede ajustar los paquetes que busca TypeScript para la finalización de importaciones automática. Esto puede dar lugar a mejoras en el rendimiento en algunos proyectos con muchas dependencias. Para obtener más detalles, consulte TypeScript 4.0 (notas de la versión)[https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-0.html]
  • Agregamos un mensaje en el panel de salida que muestra los tipos que instalamos para admitir IntelliSense. Recomendamos agregar un archivo tsconfig al proyecto para personalizar los tipos que se usan.
  • Tenga en cuenta que incluimos el compilador TypeScript 4.0 y el servicio de lenguaje

Aviso de seguridad

CVE-2020-17100 Vulnerabilidad de alteració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.

Problemas que se tratan en esta versión

  • Se corrigió un problema por el que, al compilar en Visual Studio 2019 16.7 con el valor long double de 80 bits del compilador de C++ de Intel, se emiten errores del compilador, lo que impide la creación de proyectos.
  • Se corrigió un problema por el que Live Unit Testing se negaría a iniciarse en algunos escenarios.
  • Se agregó .NET 5.0. RC2 a Visual Studio 2019 v16.8 Preview 4
  • Se corrigió un error en el que una operación de Git ocasional comenzaría y nunca finalizaría.
  • Se ha agregado funcionalidad adicional a la creación y conexión de Visual Studio Codespaces.
  • Se ha corregido un error que causaba que Visual Studio 2019 se bloqueara o dejara de responder al cerrar las soluciones de ASP.NET Core o al navegar fuera de ellas.
  • Se ha corregido un problema que hacía que el sistema del proyecto de C++ no pudiera cargarse después de desinstalar y volver a instalar Visual Studio 2019.

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

C++

  • Las corrutinas de C++20 ahora se admiten en /std:c++latest y el encabezado <corrutina>. La compatibilidad con nuestro comportamiento heredado está disponible en <experimental/coroutine> y el conmutador /await.
  • IntelliSense ahora proporciona compatibilidad con los encabezados <conceptos> y <rangos> de C++20, y para cambiar el nombre y buscar definiciones de concepto. Hay una incidencia conocida que esperamos solucionar en la versión preliminar 4.
  • Nuestro STL ahora es compatible con la mayoría de rangos de C++20. Puede realizar un seguimiento del progreso en nuestra incidencia de GitHub de rangos.
  • Las funciones miembro especiales triviales según determinadas condiciones ahora se admiten en MSVC.
  • C11 y C17 ahora se admiten en los modificadores /std:c11 y /std:c17.
  • Entre las mejoras adicionales de STL se incluye la compatibilidad total con std::atomic_ref, std::midpoint and std::lerp y std::execution::unseq, optimizaciones para std::reverse_copy y mucho más. Puede encontrar todas las actualizaciones en nuestro Registro de cambios.
  • Hemos actualizado la versión de CMake que se incluye con Visual Studio en CMake 3.18.
  • Nuestras herramientas de análisis de código ahora admiten el estándar SARIF 2.1: el formato de registro de análisis estático estándar del sector. Puede obtener más información sobre el formato SARIF en la especificación oficial.
  • Si faltan herramientas de compilación en los proyectos de Linux, ahora se emitirá una advertencia en la barra de herramientas y una descripción clara de las herramientas que faltan en la lista de errores.
  • Ahora puede depurar volcados de memoria principales de Linux en un sistema Linux remoto o en WSL directamente desde Visual Studio.
  • Para la generación de comentarios Doxygen de C++, hemos agregado las opciones de estilo de comentario adicionales (/*! y //!).
  • Anuncios de vcpkg adicionales
  • Hemos agregado compatibilidad del compilador con expresiones lambda en contextos no evaluados, lo que permite usarlas en especificadores decltype.
  • El linter y las correcciones a medida que se escribe ahora están disponibles en Visual Studio. Configúrelo en Herramientas->Opciones->Editor de texto->C/C++->CodeStyle->Linter + Fixups (Linter + Correcciones).
As-you-type linter showing warning for using bitwise & instead of logical && on bools
Linter a medida que se escribe

instantáneas

Compatibilidad con la depuración de volcado de memoria principal de .NET Core para Linux

La depuración de volcados de memoria principal administrados de Linux en Windows ha sido muy difícil hasta ahora. Solía conllevar la configuración de otro entorno de Linux que se reflejaba exactamente en la producción y, posteriormente, la instalación de un conjunto de herramientas para el análisis. Afortunadamente, con Visual Studio 2019 16.8, versión preliminar 3, basta con arrastrar y colocar un volcado de memoria principal de Linux administrado directamente en el IDE e iniciar inmediatamente la depuración.

Análisis automático de .NET

La programación asincrónica ha existido durante años en la plataforma .NET pero, históricamente, hacerla bien ha sido difícil. Hemos incorporado analizadores de volcado de memoria administrada que permiten identificar los siguientes escenarios y antimodelos:

  • Sync-over-Async
  • Agotamiento de ThreadPool

Análisis automático de la ruta de acceso activa de la memoria de .NET y .NET Core

Esto permite a los clientes ver de forma intuitiva los tipos de objeto de dominación en su montón de memoria mediante anotaciones de llamas en la ventana de la herramienta Diagnostics Memory.

Problemas de correcciones de compatibilidad (shim) en Fakes con proyectos de estilo SDK

Al emplear la nueva compatibilidad de Fakes con los proyectos de estilo SDK, algunos usuarios han encontrado el siguiente error en el momento de generar correcciones de compatibilidad (shim).

Cannot generate shim for System.DateTime: type is not supported because of internal limitations

La versión 16.8, versión preliminar 3, incluye una corrección. Si usa una versión 16.7.*, puede recurrir a la siguiente solución alternativa:

  1. Añada <FakesUseV2Generation>False</FakesUseV2Generation> a un PropertyGroup en el archivo csproj.
  2. Agregue el <Fakes Include="Fakes\*.fakes" /> a un itemGroup en el archivo csproj.
  3. Agregue una referencia a los ensamblados generados de Fakes en ProjectDir/FakesAssemblies.

También puede seguir los comentarios de la comunidad de desarrolladores para conocer más novedades al respecto.

Actualizaciones del editor de Razor experimental

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

  • Bombillas de Blazor:
    • Extraer al código subyacente*:
    • Crear componente a partir de etiqueta*
    • Agregar directiva de @using para el componente
    • Nombre completo de etiqueta de componente
  • Bombillas de C#
    • Agregar directiva de @using
    • Nombre completo de tipo
  • Formato Razor mejorado
  • Cambie el nombre de los componentes de Razor en el marcado de los archivos .razor
  • Ir a definición en nombres de etiquetas de componentes de Blazor
  • Coloración al mantener el mouse en C#
  • Coloración de información sobre herramientas de finalización de C#
  • Buscar todas las referencias en archivos de Razor cerrados
  • Estabilidad y rendimiento de la edición en Razor mejorados para soluciones y proyectos de gran tamaño

* Solo funciona en escenarios de Razor locales; todavía no se admite en Visual Studio Codespaces ni Live Share.

Para habilitar el editor de Razor experimental, 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.

IDE de Visual Studio 2019

  • Agregue su cuenta de GitHub con la experiencia de administración de cuentas conocida de Visual Studio. El control de versiones, el terminal integrado y otras características podrán aprovechar las credenciales de la cuenta para satisfacer sus necesidades de autenticación de GitHub.
Inline parameter name hints with GitHub
Incorporación de cuentas de GitHub en Visual Studio
  • El proveedor de publicación de ClickOnce ahora está disponible para las aplicaciones de escritorio de Windows de .NET Core 3.1 y .NET 5.0. Para empezar, haga clic con el botón derecho en el proyecto del Explorador de soluciones y seleccione Publicar, o bien seleccione el menú Compilar > Publicar <AppName>. ClickOnce se encuentra en la categoría de carpeta.
Inline parameter name hints with GitHub Image
Proveedor de publicación de ClickOnce en Visual Studio

Productividad de Git

  • Creación de una rama a partir de un elemento de trabajo de Azure DevOps
Create a new branch from an Azure DevOps work item
Creación de una rama a partir de un elemento de trabajo
  • Apertura de un repositorio Git a partir de una lista de repositorios locales en el menú Git
Local Repositories list
Lista de repositorios locales en el menú Git
  • El proveedor de control de código fuente predeterminado ahora es Git en lugar de TFVC, que se puede cambiar en Herramientas - Opciones - Control de código fuente.

  • Un solo clic para cambiar entre los historiales de la rama en la ventana del repositorio de Git

  • Vista y selección en una lista de soluciones del repositorio en el Explorador de soluciones después de abrir un repositorio

Preview Feature toggle to show list of Views when opening a repo
Activación/desactivación de Características en versión preliminar para mostrar la lista de vistas al abrir un repositorio
List of Views in Solution Explorer
Lista de vistas en el Explorador de soluciones

Productividad de .NET

  • Los analizadores de .NET Compiler Platform (Roslyn) inspeccionan el código de C# o Visual Basic para la seguridad, el rendimiento, el diseño y otras incidencias. A partir de .NET 5.0, estos analizadores se incluyen con el SDK de .NET. De forma predeterminada, los analizadores están habilitados para los proyectos que tienen como destino .NET 5.0 o una versión posterior. Puede habilitar el análisis de código en los proyectos que tengan como destino versiones anteriores de .NET estableciendo la propiedad EnableNETAnalyzers en true. Puede deshabilitar el análisis de código para el proyecto si establece EnableNETAnalyzers en false. También puede usar la ventana Propiedades del proyecto para habilitar o deshabilitar los analizadores de .NET. Para acceder a la ventana Propiedades del proyecto haga clic con el botón derecho en un proyecto en el Explorador de soluciones y seleccione Propiedades. Luego, seleccione la pestaña Análisis de código, donde puede activar o desactivar la casilla para Habilitar los analizadores de .NET.
Project Properties window to enable .NET Analyzers
Ventana Propiedades del proyecto para habilitar los analizadores de .NET
  • Ahora hay una refactorización que presenta la nueva sintaxis de coincidencia de patrones not de C# 9 cuando hay un operador de eliminación. Coloque el cursor en el operador de supresión. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Usar coincidencia de patrones.
Refactoring introducing C# 9 not pattern matching syntax
Refactorización que presenta la sintaxis de coincidencia que no es de patrones de C# 9
  • Ahora hay una refactorización de método insertado que permite reemplazar las utilizaciones de un método estático, de instancia y de extensión dentro de un cuerpo de instrucción único con una opción para quitar la declaración de método original. Coloque el cursor sobre la utilización del método. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione después una de las opciones siguientes:

Seleccione Inline <QualifiedMethodName> para quitar la declaración del método insertado: .

Inline Method refactoring removing declaration
Declaración de eliminación de la refactorización del método insertado

Seleccione Inline and keep <QualifiedMethodName> para conservar la declaración del método original: .

Inline Method refactoring preserving declaration
Declaración de conservación de la refactorización del método insertado
  • La creación de un archivo nuevo de C# o Visual Basic a partir de una plantilla respeta la configuración del estilo de código EditorConfig. Los estilos de código siguientes se aplicarán automáticamente al crear archivos nuevos: encabezados de archivo, ordenación mediante directivas y colocación de directivas Using dentro o fuera de los espacios de nombres.

  • Ahora hay compatibilidad de Visual Basic y C# con sugerencias de nombre de parámetro insertado que inserta elementos gráficos para literales, literales convertidos e instancias de objeto antes de cada argumento en las llamadas de función. En primer lugar, debe activar esta opción en Herramientas>Opciones>Editor de texto>C# o en Basic>Avanzado y seleccionar Mostrar sugerencias de nombre de parámetro insertado (experimental). Las sugerencias de nombre de parámetro insertado aparecerán en el archivo de C# o Visual Basic.

Inline parameter name hints
Sugerencias de nombre de parámetro insertado
  • Ahora puede extraer miembros de una clase seleccionada en una nueva clase base con la refactorización de la nueva opción Extract Base Class (Extraer a clase base). Coloque el cursor en el nombre de la clase o en un miembro resaltado. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Extraer miembros a una nueva clase base. Se abrirá el nuevo cuadro de diálogo Extract Base Class (Extraer clase base), donde puede especificar el nombre de la clase base y la ubicación donde debe colocarse. Puede seleccionar los miembros que quiere transferir a la nueva clase base y elegir que los miembros sean abstractos activando la casilla de la columna Convertir en abstracto.
Extract Base Class
Extract Base Class (Extraer clase base)

Una vez que seleccione Aceptar verá la nueva clase base agregada junto con sus miembros.

En C#, seleccione Convertir typeof en nameof:

Convert typeof to nameof
Conversión de typeof en nameof

En Visual Basic, seleccione Convertir GetType en NameOf:

Convert GetType to NameOf
Convertir GetType en NameOf
  • Limpieza de código tiene nuevas opciones de configuración que pueden aplicar las preferencias de formato y encabezado de archivo establecidas en el archivo EditorConfig en un solo archivo o en toda una solución.
Formatting and File Header support in Code Cleanup
Compatibilidad de formato y encabezado de archivo en la limpieza de código
  • Ahora hay disponible una corrección de código para quitar la palabra clave in allí donde el argumento no se deba pasar por referencia. Coloque el cursor en el error. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Remove 'in' keyword (Quitar palabra clave "in").
Remove in keyword code fix
Corrección de código para la eliminación de la palabra clave `in`
  • Ahora hay disponible una refactorización que presenta nuevos combinadores de patrones de C#9. Junto con las sugerencias de coincidencia de patrones, como la conversión de == para usar is cuando corresponda, esta corrección de código también sugiere los combinadores de patrones and, or y not en los casos de coincidencia entre varios patrones diferentes y negar valores. Coloque el cursor dentro de la instrucción. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Usar coincidencia de patrones.
Introduce C#9 Pattern Combinators
Presentación de los combinadores de patrones de C#9
  • Ahora hay disponible una corrección de código para convertir una clase en abstracta al intentar escribir un método abstracto en una clase que no lo es. Coloque el cursor sobre el error del método. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Make class 'abstract' (Convertir la clase en "abstracta").
Make Class Abstract
Conversión de la clase en abstracta
  • En 16.7 (versión preliminar 1) agregamos una finalización de IntelliSense en los literales de cadena DateTime y TimeSpan. En esta versión, esta lista de finalización aparece automáticamente cuando se escribe la primera comilla. En el pasado, era necesario escribir (Ctrl+espacio) para ver esta lista de finalización. Coloque el cursor dentro del literal de cadena DateTime o TimeSpan, y escriba la primera comilla doble. 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.
IntelliSense Completion in DateTime and TimeSpan String Literals
Finalización de IntelliSense en los literales de cadena DateTime y TimeSpan
This improvement also works for interpolated strings when you type a colon
Esta mejora también funciona para las cadenas interpoladas cuando se escribe un signo de dos puntos.
  • Ahora hay disponible una corrección de código para quitar las supresiones de pragma y los elementos SuppressMessageAttributes innecesarios. Coloque el cursor sobre la advertencia de pragma o el elemento SuppressMessageAttribute. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Remove unnecessary suppression (Quitar supresión innecesaria).
Remove Unnecessary Pragmas
Eliminación de instrucciones pragma innecesarias
Remove Unnecessary SuppressMessageAttributes
Eliminación de elementos SuppressMessageAttributes
  • Las opciones Cambiar nombre y Buscar todas las referencias ahora comprenden las referencias a los símbolos dentro de la cadena de destino de las supresiones de SuppressMessageAttribute globales.
Rename SuppressMessageAttribute
Eliminación de SuppressMessageAttribute
Find All References for SuppressMessageAttribute
Búsqueda de todas las referencias de SuppressMessageAttribute
  • Visual Basic tenía varias maneras de pasar parámetros, ByVal y ByRef, y durante mucho tiempo ByVal ha sido opcional. Ahora se atenúa ByVal para indicar que no es necesario usarlo en combinación con una corrección de código para quitar el valor ByVal innecesario. Coloque el cursor sobre la palabra clave ByVal. Presione (Ctrl+. ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione 'ByVal' keyword is unnecessary and can be removed (La palabra clave "ByVal" no es necesaria y se puede quitar).
Visual Basic Remove ByVal Refactoring
Refactorización para quitar ByVal en Visual Basic
  • Se ha agregado compatibilidad con ventanas interactivas para varios entornos de ejecución, como .NET Framework y .NET Core.
Interactive Window Support in .NET Core
Compatibilidad con ventanas interactivas en .NET Core
  • Ahora hay una nueva API RegisterAdditionalFileAction que permite a los autores de analizadores crear uno para archivos adicionales.

Ajuste del panel de detalles de la prueba del Explorador de pruebas

Esta característica muy solicitada permite al usuario seleccionar el ajuste de texto o dejar la alineación de línea de texto predeterminada. Cuando no se necesita la alineación del texto, el ajuste puede hacer que los comentarios de una serie de pruebas sean mucho más fáciles de leer y elimina la necesidad de una barra de desplazamiento horizontal. Puede habilitar esta característica en el menú de configuración del Explorador de pruebas o en el menú contextual del panel de resumen.

Wrap test details from the Test Settings menu
Menú Configuración de pruebas
Wrap test details from the right-click context menu
Ajuste de detalles de la prueba desde el menú contextual del botón derecho

Herramientas XAML (WPF, UWP y Xamarin.Forms)

Mejoras en el diagnóstico de errores de enlace XAML

Los desarrolladores que trabajan en proyectos de WPF, UWP, WinUI y Xamarin.Forms a menudo deben detectar y resolver errores de enlace de datos de XAML en sus aplicaciones. Para mejorar las herramientas de diagnóstico en este escenario, hemos agregado dos nuevas experiencias a la versión 16.8 de Visual Studio 2019 o a otra más reciente:

  • Icono de indicador de error de enlace XAML: un nuevo icono de indicador de error de enlace XAML está presente ahora en la barra de herramientas de la aplicación para los proyectos de WPF y UWP, así como en el árbol visual dinámico para todos los proyectos XAML, incluido Xamarin.Forms. Este icono mostrará un indicador rojo si se detecta al menos un error de enlace. Al hacer clic en el icono, también se le dirigirá a la nueva ventana de errores de enlace XAML.
Binding Failure Icon (in-app toolbar)
Icono de error de enlace (barra de herramientas de la aplicación)
  • Ventana de errores de enlace XAML: la nueva ventana de errores de enlace XAML ya está disponible para los proyectos de WPF, UWP, WinUI y Xamarin.Forms. Esta nueva experiencia dedicada proporciona una interfaz de usuario enriquecida a través de la información sobre el error de enlace que anteriormente solo estaba disponible en la ventana de salida. Entre las mejoras se incluye la capacidad de ver los errores como un conjunto de columnas que se pueden ordenar, personalizar y que permiten realizar búsquedas totalmente. También hemos agrupado errores similares, lo que limita el ruido que puede producirse durante una combinación determinada de errores de plantillas de enlace de datos y, al mismo tiempo, sigue permitiendo que toda la información sobre el error sin procesar original esté disponible y que se pueda copiar fácilmente a través de una opción del menú contextual (nota: se requiere la versión de Xamarin 4.5.0.266-pre3 o posterior)
  • Vaya al origen en busca de errores de enlaces:en colaboración con el equipo de WPF, hemos habilitado la posibilidad de ir al origen de los errores de enlaces para los clientes que tienen como destino WPF en .NET 5 (RC2 o más reciente).
XAML Binding Failure Window & LVT Icon
Ventana de error de enlace XAML e icono de LVT

Recarga activa de XAML

  • “Solo cambios” de Xamarin.Forms, Recarga activa de XAML ahora admite UWP: en esta versión, comenzamos a ofrecer soporte técnico de lanzamiento para una característica muy solicitada que solo permite nuevos cambios de compatibilidad con Recarga activa de XAML en los proyectos de Xamarin.Forms cuando el destino es UWP. Tenga en cuenta que esta característica aún está en desarrollo y mientras la edición de XAML desencadenará ahora las actualizaciones en la aplicación en ejecución, otras características como la barra de herramientas de la aplicación (selección de elementos, etc.) aún no están totalmente implementadas, pero lo estarán en una futura versión.
  • La configuración de Recarga activa de XAML se ha desplazado a “Depuración > Recarga activa”: En esta versión, hemos consolidado la configuración de recarga activa de XAML en WPF, UWP y Xamarin.Forms en una pantalla de configuración unificada en "Depuración > Recarga activa". También hemos habilitado por primera vez la capacidad de deshabilitar o habilitar Recarga activa de XAML en cada plataforma para darle un control total sobre la disponibilidad de esta característica. (Nota: Durante esta migración no se cambiará ninguna configuración, por lo que todas las opciones existentes seguirán en vigor solo en esta nueva ubicación)
XAML Hot Reload Consolidated Settings
Configuración consolidada de la Recarga activa de XAML

Editor de código XAML:

  • Compatibilidad con IntelliSense de WinUI 3.0:en esta versión, hemos habilitado una compatibilidad con IntelliSense mejorada para desarrolladores que crean aplicaciones con la nueva WinUI 3.0 (versión preliminar 3) o una versión más reciente. Para obtener más información sobre WinUI 3.0, consulte la documentación y para proporcionar comentarios, visite el repositorio de GitHub Windows UI XAML. Nota: Se recomienda la WinUI 3.0 (versión preliminar) más reciente en 16.9 (versión preliminar 1) para la experiencia de herramientas actualizada.
  • Mejora de la compatibilidad con MVVM: al crear un documento XAML, puede establecer d:DataContext para obtener IntelliSense de enlace precisa para el documento XAML. En el pasado, especificar manualmente el tipo de contexto de datos era engorroso; tenía que salir del documento XAML, buscar el tipo de modelo de vista deseado, copiar y pegar su espacio de nombres y nombrarlo en la declaración d:DataContext. En esta versión, se presenta una característica nueva que permite declarar rápidamente un d:DataContext a través de una bombilla que sugiere posibles candidatos de modelo de vista.
XAML IntelliSense for MVVM d:DataContext
IntelliSense en XAML para d:DataContext de MVVM

Extensibilidad

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