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



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

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.

Notas de la versión de Visual Studio 2019, versión 16.1

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:


Release Notes Icon Visual Studio 2019, versión 16.1.6

publicado el 9 de julio de 2019

Avisos de seguridad

CVE-2019-1077 Vulnerabilidad en la actualización automática de extensiones de Visual Studio

Existe una vulnerabilidad de elevación de privilegios cuando el proceso de actualización automática de extensiones de Visual Studio realiza determinadas operaciones de archivo de manera incorrecta. Un atacante que logra aprovechar esta vulnerabilidad podría eliminar archivos en ubicaciones arbitrarias. Para aprovechar esta vulnerabilidad, un atacante necesitaría acceso sin privilegios a un sistema vulnerable. La actualización de seguridad soluciona la vulnerabilidad al garantizar la seguridad de las ubicaciones en las que la actualización automática de extensiones de Visual Studio realiza operaciones de archivos.

CVE-2019-1075 Vulnerabilidad de suplantación de ASP.NET Core

Existe una vulnerabilidad de suplantación en ASP.NET Core que podrían dar lugar a un redireccionamiento abierto. Un atacante que aprovechara esta vulnerabilidad podría redirigir a un usuario determinado a un sitio web malintencionado. Para aprovechar esta vulnerabilidad, un atacante podría enviar un vínculo con una dirección URL diseñada especialmente y convencer al usuario para que hiciese clic en el vínculo.

La actualización de seguridad corrige la vulnerabilidad mediante la modificación de la manera en que ASP.NET Core analiza las URL. Encontrará los detalles en las notas de la versión de .NET Core.

CVE-2019-1113 La deserialización de XOML de WorkflowDesigner permite la ejecución de código

Un archivo XOML referente a determinados tipos podía provocar la ejecución de código aleatorio al abrirlo en Visual Studio. Ahora hay una restricción sobre los tipos que pueden usarse en los archivos XOML. Si se abre un archivo XOML que contiene uno de los tipos recientemente no autorizados, se mostrará un mensaje para explicarlo.

Para obtener más información, consulte https://support.microsoft.com/help/4512190/remote-code-execution-vulnerability-if-types-are-specified-in-xoml.


Release Notes IconVisual Studio 2019, versión 16.1.5:

publicado el 2 de julio de 2019

###Resumen de los problemas corregidos en la versión 16.1.5 de Visual Studio 2019


Release Notes IconVisual Studio 2019, versión 16.1.4

publicado el 25 de junio de 2019

Resumen de los problemas corregidos en la versión 16.1.4 de Visual Studio 2019


Release Notes Icon Visual Studio 2019, versión 16.1.3

publicado el 11 de junio de 2019

Resumen de los problemas corregidos en la versión 16.1.3 de Visual Studio 2019


Release Notes Icon Visual Studio 2019, versión 16.1.2

publicado el 4 de junio de 2019

Resumen de los problemas corregidos en la versión 16.1.2 de Visual Studio 2019


Release Notes Icon Visual Studio 2019, versión 16.1.1

publicada el 24 de mayo de 2019

Resumen de los problemas corregidos en la versión 16.1.1 de Visual Studio 2019


Release Notes IconVisual Studio 2019 versión 16.1

publicado el 21 de mayo de 2019

Resumen de las novedades de Visual Studio 2019, versión 16.1

IDE

  • Visual Studio IntelliCode ahora está disponible con carácter general y viene instalado con cualquier carga de trabajo que admita C#, C++, Typescript/JavaScript o XAML.
  • Se ha agregado compatibilidad con el reconocimiento por monitor.
  • Se han agregado nuevas correcciones de código para C#.
  • Se ha agregado una lista de elementos utilizados más recientemente a la búsqueda de Visual Studio.

instantáneas

  • Se han implementado mejoras en la autenticación de los vínculos de origen.
  • Se ha agregado el servidor de símbolos nuget.org a la lista de predeterminados.
  • La versión preliminar de la depuración de viaje en el tiempo ahora incluye compatibilidad con la ejecución paso a paso de excepciones.

Extensibilidad

  • Se ha eliminado la necesidad de disponer de un archivo .resx en proyectos VSIX (actualización de BuildTools).
  • La plantilla de proyecto de VSIX ahora usa la nueva versión del SDK.

Rendimiento

  • Experiencia de optimización del usuario para mejorar el tiempo de carga de soluciones muy grandes.
  • Los autores de plantillas pueden agregar etiquetas personalizadas a sus plantillas.
  • Se ha agregado compatibilidad de CodeLens con la interfaz de usuario personalizada.
  • Se han proporcionado actualizaciones en la implementación del protocolo de servidor de lenguaje.
  • Se ha actualizado el comportamiento para cambiar entre soluciones, carpetas y otras vistas.

C++

F#

.NET

  • Entre las nuevas características de productividad de .NET se incluyen la limpieza de código con un solo clic en proyectos y soluciones, el nuevo método abreviado de teclado Alternar comentario de bloque y la refactorización para mover tipos a otros espacios de nombres.
  • Los usuarios pueden ahora clonar el código de un URI de SSH mediante la pantalla de clonación de la ventana de inicio.
  • Entre las incorporaciones a la productividad de .NET se incluyen la finalización de IntelliSense de tipos no importados, la alternancia entre poner y quitar comentarios de una sola línea, la exportación de estilos de nombres a editorconfig y una nueva opción de estilo de código para dar preferencia a instrucciones using dentro y fuera de los espacios de nombres.
  • Se han implementado incorporaciones de herramientas del SDK de .NET en torno a proyectos auxiliares de WinForms y WPF para .NET Core 3.0, además de correcciones de errores y mejoras de rendimiento.
  • El SDK v16.0 de Visual Studio se ha publicado en NuGet.
  • Se ha publicado una versión preliminar del Diseñador XAML para el desarrollo de WPF en .NET Core 3.0.

Xamarin

Principales problemas corregidos en la versión 16.1 de Visual Studio 2019

Detalles de las novedades de la versión 16.1 de Visual Studio 2019

  • IntelliCode ahora está disponible con carácter general y viene instalado con cualquier carga de trabajo que admita C#, C++, Typescript/JavaScript o XAML.
  • Las características de IntelliCode en versión preliminar, como modelos personalizados, compatibilidad con C++/TS/JS e inferencia de Editorconfig, están deshabilitadas de forma predeterminada. Para habilitarlas, vaya a Herramientas > Opciones > IntelliCode.
  • Se ha quitado la plantilla de Editorconfig (IntelliCode) del Asistente para nuevo elemento. Para crear un archivo Editorconfig deducido, haga clic con el botón derecho en la ubicación deseada del Explorador de soluciones y elija Agregar > Nuevo EditorConfig (IntelliCode).
  • Use la ventana de inicio para clonar el código desde un repositorio en línea mediante SSH.
Clone with SSH on start window
Clonación con SSH en la ventana de inicio
  • Visual Studio IntelliCode se instala de forma predeterminada al instalar una carga de trabajo que admita C#, XAML o C++.
    • Los modelos básicos de C# y XAML estarán activados de forma predeterminada.
    • Las características en versión preliminar, como el entrenamiento de modelos personalizados y la finalización de argumentos, se pueden habilitar en Herramientas > Opciones > IntelliCode.
  • Se ha agregado compatibilidad con el reconocimiento por monitor.
  • Se han agregado nuevas correcciones de código para C#.
  • Se ha agregado compatibilidad con el reconocimiento por monitor para WinForms según la ventana PropertyBrowser de Visual Studio. Requiere tener instalado .NET Framework 4.8 RTM en el equipo.
  • Los vínculos de origen ahora pueden usar la autenticación de Windows para admitir el control de código fuente de TFS local.
  • Se ha agregado el servidor de símbolos nuget.org a la lista de predeterminados.

Proyecto

  • Ahora, el botón para cambiar la vista del Explorador de soluciones mostrará sistemáticamente un menú desplegable con todas las vistas posibles.
Solution switching
Cambio de la vista de la solución
  • Se ha mejorado el tiempo de carga de soluciones muy grandes. La mejora varía en función del tamaño de las soluciones.

  • Se ha quitado el cuadro de diálogo Convertir, en Archivo > Convertir. Esta característica había quedado en desuso en Visual Studio 2015.

  • Se han actualizado las reglas de validación de los esquemas de launch.vs.json y task.vs.json, y se han agregado descripciones de las propiedades.

  • Se ha agregado compatibilidad con la depuración remota de Linux mediante un programa personalizado a través de launch.vs.json.

Extensibilidad

  • Los usuarios pueden ahora usar la versión más reciente de Microsoft.VisualStudio.SDK para que el destino de las extensiones sea Visual Studio 2019. Recuerde que debe usar únicamente esta versión del SDK si la versión mínima compatible de Visual Studio es la 16.0.
  • Los nuevos proyectos de VSIX que se creen incluirán ahora la versión 16.0 del paquete NuGet Microsoft.VisualStudio.SDK.
  • Los usuarios pueden ahora agregar etiquetas a las plantillas de proyecto para habilitar la categorización y el filtrado en el cuadro de diálogo Nuevo proyecto de Visual Studio 2019. Los usuarios pueden elegir entre las etiquetas integradas y sus propias etiquetas personalizadas de tipo de proyecto, plataforma y lenguaje.
Template tagging
Etiquetado de plantillas
  • Las extensiones de CodeLens ahora pueden mostrar contenido arbitrario de interfaz de usuario en el menú emergente de detalles de CodeLens.

  • Protocolo de servidor de lenguaje actualizado:

    • Compatibilidad con búferes previstos para habilitar LSP para diferencias insertadas y archivos de Razor en LiveShare.
    • Compatibilidad con diagnósticos innecesarios.
    • Compatibilidad con textDocument/typeDefinition.
    • Compatibilidad con textDocument/foldingRange (esquematización).
  • Se ha eliminado la necesidad de disponer de un archivo .resx en proyectos VSIX (actualización de BuildTools).

  • El paquete NuGet Microsoft.VSSDK.BuildTools ahora ofrece un archivo .resx vacío como parte de la compilación si no existe ningún .resx con la propiedad MergeWithCTO. La mayoría de extensiones no usan ni necesitan un archivo .resx para realizar la combinación, de modo que el proyecto se mantendrá más limpio.

  • Los cambios en la detección de monitores puede afectar a algunas extensiones. Más información sobre la compatibilidad de la detección de monitores para extensores de Visual Studio.

Editor

  • La búsqueda de Visual Studio destacará las tres acciones usadas más recientemente, invocadas a través de la búsqueda en Visual Studio, como se muestra en esta imagen de ejemplo. (Nota: Los iconos y los elementos de línea específicos no están actualizados en la imagen de ejemplo).
Visual Studio Search
Imagen de ejemplo de la búsqueda en Visual Studio

C++

  • Use la instalación local del Subsistema de Windows para Linux (WSL) con C++ de forma nativa en Visual Studio sin configuración adicional ni conexión SSH.
Windows Subsystem for Linux
Subsistema de Windows para Linux
  • AddressSanitizer ahora está integrado en Visual Studio para proyectos de Linux y WSL.
ASan integration
Integración de ASan
  • Los usuarios pueden ahora separar las máquinas de compilación remota de las máquinas de depuración remota cuando el destino es Linux, tanto para proyectos MSBuild como CMake.
  • La información rápida contiene ahora un vínculo para buscar documentación en línea y así aprender más sobre la construcción de código. En el caso de código subrayado en rojo, el vínculo de información rápida buscará el error en línea.
  • Ahora el código dentro de la información rápida está coloreado para reflejar su color en el editor.
Colorized code in Quick Info tooltips
Código coloreado en la información rápida
  • Correcciones rápidas automáticas de las advertencias de análisis de código C6001: el uso de <variables> de memoria no inicializada y C26494 VAR_USE_BEFORE_INIT está ahora disponible mediante el menú de bombilla en las líneas pertinentes y está habilitado de forma predeterminada en el conjunto de reglas mínimas nativas de Microsoft y los conjuntos de reglas de tipo C++ Core Check, respectivamente.
New Code Analysis quick fixes
Nuevas correcciones rápidas de Code Analysis
  • Mejoras en el Editor de configuración de CMake (por ejemplo, compatibilidad con el subsistema de Windows para Linux (WSL) y las configuraciones de las cachés existentes), cambios en las raíces predeterminadas de compilación e instalación, y compatibilidad con variables de entorno en las configuraciones de CMake de Linux.
Improvements to the CMake Settings Editor
Mejoras en el Editor de configuraciones de CMake
  • Se ha mejorado el registro para las conexiones remotas, lo que facilita el diagnóstico de problemas con desarrollo multiplataforma.
Improved logging for remote connections
Registro mejorado para conexiones remotas
  • Ahora se puede separar la máquina de compilación remota de la máquina de depuración remota cuando el destino es Linux (para proyectos de MSBuild; próximamente estará disponible para CMake).
  • La Barra de plantillas puede rellenar el menú desplegable en función de las instancias que haya de esa plantilla en el código base.
New Template Bar dropdown menu
Nuevo menú desplegable Barra de plantillas
  • C++ IntelliCode se incluye ahora de forma predeterminada y puede habilitarse en Herramientas > Opciones > IntelliCode > General. Esta versión de IntelliCode ha mejorado en precisión e incluye compatibilidad con funciones libres.
  • La integración de CMake ahora admite la cadena de herramientas Clang/LLVM para proyectos destinados a Windows o Linux. Ahora es posible compilar, editar y depurar proyectos de CMake que usan Clang, MSVC o GCC.
CMake integration supports the Clang/LLVM toolchain
Integración de CMake compatible con la cadena de herramientas Clang/LLVM
  • Se han agregado bombillas para cuando faltan instrucciones #include que pueden instalarse mediante vcpkg, y la finalización automática de paquetes disponibles para la directiva find_package de CMake.
Autocompletion of available packages
Finalización automática de paquetes disponibles
  • Se ha actualizado la versión de CMake que se incluye con Visual Studio a la versión 3.14. Esta versión agrega compatibilidad integrada con generadores de MSBuild destinados a proyectos de Visual Studio 2019, así como API para la integración de IDE basada en archivos.

  • Se han revisado las páginas de propiedades generales para proyectos de C++, y algunas opciones se han dividido en una página nueva de opciones avanzadas. La página Opciones avanzadas también incluye propiedades adicionales para la arquitectura preferida del conjunto de herramientas, las bibliotecas de depuración, la versión secundaria del conjunto de herramientas MSVC y las compilaciones de Unity (jumbo).

  • Se han agregado las siguientes características en versión preliminar de C++20 a la implementación de la biblioteca estándar de C++, disponible en /std:c++latest:

    • starts_with() y ends_with() para basic_string/basic_string_view.
    • contains() para contenedores asociativos.
    • remove(), remove_if() y unique() para list y forward_list ahora devuelven size_type.
    • Se han agregado shift_left() y shift_right() a <algorithm>.
  • Se han implementado las siguientes características en versión preliminar de C++20 en el compilador de C++, disponible en /std:c++latest:

    • Se ha aumentado la capacidad de encontrar las plantillas de función a través de la búsqueda dependiente de argumentos para las expresiones de llamada de función con argumentos de plantilla explícitos (P0846R0).
    • Se ha agregado la inicialización designada (P0329R4), que permite seleccionar miembros específicos en inicialización agregada, por ejemplo, con la sintaxis Type t { .member = expr }.
  • Se ha revisado la compatibilidad con expresiones lambda para corregir un gran número de errores pendientes de corregir. Este cambio está habilitado de forma predeterminada al usar /std:c++latest. En otros modos de lenguaje /std:c++* y en el modo predeterminado, el nuevo analizador puede habilitarse a través de /experimental:newLambdaProcessor, por ejemplo, /std:c++17 /experimental:newLambdaProcessor.

  • Documentación en el editor para CMake

  • Las finalizaciones y la información rápida de los comandos integrados de CMake, las variables y las propiedades facilitan la edición de los archivos CMakeLists.txt.

Tooltip info for add_subdirectory CMake command
Información en pantalla sobre el comando add_subdirectory CMake

F# y herramientas de F#

Esta es una versión relativamente secundaria del lenguaje F# y sus herramientas, pero con algunas sorpresas. Al igual que con la actualización VS 16.0, esta versión también se centra en el rendimiento de las herramientas del editor.

Compilador de F# y F# interactivo
  • Se ha agregado compatibilidad con P/Invoke a F# interactivo en .NET Core (#6544).
  • Se ha agregado una optimización del compilador para Span<'T> cuando se usa en un bucle for (#6195).
  • Se ha agregado una optimización para evitar asignaciones Some extrañas para opciones de F# en diversos escenarios (#6532)
  • Se ha cambiado el orden de ejecución de las expresiones usadas en la creación de instancias de registros anónimos y ahora es de arriba a abajo, en lugar de alfabético, para que coincida con la experiencia actual con registros normales (#6487).
  • Se ha resuelto un error donde expresiones literales muy grandes o declaraciones de estructura muy grandes podían causar el desbordamiento de la pila del compilador durante la compilación (#6258).
  • Se ha corregido un error donde ya no se desencadenaban puntos de interrupción al depurarse una función con un registro anónimo (#6512).
  • Se ha corregido un error donde los registros anónimos pasados a construcciones que esperaban un parámetro obj provocaban un bloqueo del compilador (#6434).
  • Se ha corregido un error donde los bucles for var expr1 to expr2 do ... podían dar lugar a una sintaxis extrañamente válida (y descartada) (#6586).
  • Se ha corregido un error donde no se podían usar registros anónimos correctamente con eventos (#6572).
  • Se ha resuelto un antiguo error donde se generaban analizadores extremadamente grandes en FsLexYacc (más de 100 millones de líneas) (#5967.
  • Se ha resuelto un antiguo problema del componente de complemento Proveedor de tipos del compilador que podía dejar la puerta abierta a fugas de memoria ocasionadas por un proveedor de tipos (#6409).
  • Se ha agregado compatibilidad con --pathmap al compilador de F# gracias a Saul Rennison, que resuelve un problema donde el archivo ejecutable resultante de una compilación incluía rutas de acceso absolutas a los archivos de origen en el recurso de archivo de firma de F# (#5213).
  • Se ha agregado una optimización al AST de F# que mejora su consumo mediante otras herramientas y entornos (por ejemplo, Fable). Su autor es ncave (#6333).
  • Se ha agregado una optimización en torno al recorrido de información cuando se resuelven miembros. Su autor es Steffen Forkmann (#4457)
  • Se ha agregado una mejora en los mensajes de error de modo que cuando en una implementación de tipos faltan invalidaciones necesarias, se notifica una lista de estas. Su autor es Gauthier Segay (#4982)
Herramientas de F#
  • La lista desplegable de plataformas de destino para proyectos de F# en .NET SDK ahora incluirá valores para todos los valores disponibles de .NET Core, .NET Standard y .NET Framework a fin de facilitar la migración a .NET Core desde .NET Framework en .NET SDK.
  • Se ha corregido un error donde al cambiar el nombre de los parámetros de tipo genérico se generan nombres con escape de comillas dobles (#5389).
  • Se ha resuelto un antiguo problema donde se creaban instancias redundantes de los proveedores de tipos, lo que provocaba asignaciones masivas con el tiempo (#5929).
  • Se ha resuelto un antiguo problema donde al leer el IL se asignaban innecesariamente 20 MB durante un corto período (#6403).
  • Se ha resuelto un error donde el método GetToolTipText en el servicio de compilador de F# podía mostrar la misma firma XML con varias sobrecargas de miembros. Su autor es Vasily Kirichenko (#6244).
Infraestructura de código abierto de F#

Por último, se ha mejorado la experiencia de contribución de la siguiente manera:

  • Se ha completado nuestra compilación del proceso de código fuente de forma que el compilador de F# y la biblioteca principal se pueden crear con el repositorio de compilación de código fuente de .NET Core
  • Se ha quitado nuestra dependencia de netstandard1.6 para que todo el código base se dirija uniformemente a netstandard2.0 y net472.
  • Se ha agregado un archivo .vsconfig a la raíz del repositorio para que los colaboradores que usan Visual Studio no tengan que conocer todo lo que hay que instalar de antemano.
  • Se ha reescrito el archivo Léame de nuestro proyecto para quitar información posiblemente confusa, incluir un inicio rápido para comenzar a contribuir e intentar ser más inclusivo en nuestra mensajería sobre los tipos de cambios que nos gustaría acometer.

Productividad de .NET

  • Existe ahora una finalización de IntelliSense para tipos no importados. Los usuarios ahora recibirán sugerencias de IntelliSense sobre los tipos de dependencias en el proyecto aunque no hayan agregado aún la instrucción de importación al archivo. Active esta opción en Herramientas > Opciones > Editor de texto > C# >IntelliSense.
Intellisense completion for unimported types
Finalización de código de IntelliSense para tipos no importados
  • Ahora la alternancia entre poner y quitar marca de comentario está disponible mediante el método abreviado de teclado (Ctrl+K,/). Este comando agrega o quita una única línea de comentario en función de si la selección ya tiene marcas de comentarios.
  • Posibilidad de exportar estilos de nombres con el botón "Generar archivo editorconfig" ubicado en Herramientas > Opciones > Editor de texto > C# > Estilo de código.
  • Posibilidad de usar una nueva regla de estilo de código de editorconfig para exigir o impedir instrucciones using dentro de un espacio de nombres. Esta configuración también se exportará al usar el botón "Generar archivo editorconfig" que se encuentra en Herramientas > Opciones > Editor de texto > C# > Estilo de código.
Editorconfig rule for usings outside/inside namespaces
Regla de editorconfig para instrucciones using dentro o fuera de los espacios de nombres
Tools Options setting for usings inside/outside namespace
Configuración de opciones de herramientas para las instrucciones using dentro o fuera del espacio de nombres
  • La columna Buscar todas las referencias "Tipo" ahora tiene más opciones de filtrado y tiene en cuenta los espacios de nombres y los tipos.
Find All References Kind column has more filter options
La columna Buscar todas las referencias "Variante" ahora tiene más opciones de filtrado
  • Se ha agregado una corrección de código para las instrucciones de división o combinación "if".
Split or merge if statements
Instrucciones de división o combinación "if"
  • Se ha agregado una corrección de código para el encapsulado de expresiones binarias.
Wrap binary expressions
Encapsulado de expresiones binarias
  • Ahora es posible acceder a una lista de finalización de expresiones regulares a través del menú de IntelliSense (Ctrl + espacio) al trabajar con una cadena de expresiones regulares. Dichas finalizaciones también incluyen una descripción en línea de lo que hace la sugerencia.
Regex completion offered in Intellisense with (Ctrl + space)
Finalización de expresiones regulares
  • Se ha agregado una corrección de código para quitar el sello de una clase.
Unseal a class codefix
Operación para quitar el sello de una clase
  • Utilice la limpieza de código con un solo clic en proyectos y soluciones. Haga clic con el botón derecho en el proyecto o la solución en el Explorador de soluciones y seleccione "Ejecutar limpieza de código".
Right-click to run code cleanup over the entire solution
Clic con el botón derecho para ejecutar la limpieza de código en toda la solución
You will see a dialog box while cleanup is applied to each file
Cuadro de diálogo que aparece mientras se limpia cada archivo
  • Ahora hay un cuadro de diálogo de refactorización que permite mover el tipo al espacio de nombres o la carpeta. Coloque el cursor en el nombre de clase y presione Ctrl + . para abrir el menú Acciones rápidas y refactorizaciones; luego, seleccione "Mover al espacio de nombres". Esto inicia un cuadro de diálogo donde se puede seleccionar el espacio de nombres de destino al que se quiera mover el tipo.
Place cursor in class name and type (Ctrl+.) to view refactorings
Colocación del cursor en el nombre y tipo de clase (Ctrl +.) para ver las refactorizaciones
Select the destination namespace
Selección del espacio de nombres de destino
  • La opción Alternar comentario de bloque/Quitar marca de comentario está ahora disponible mediante método abreviado de teclado Ctrl + Mayús + / o en Editar > Opciones avanzadas > Alternar comentario de bloque. Este comando agregará o quitará los comentarios de bloque en función de lo que se haya seleccionado.
Toggle block comment with (Ctrl+Shift+/)
Alternancia de comentario de bloque con Ctrl+Mayús+/
  • Ahora hay una corrección de código que permite escribir en los campos struct de solo lectura. Coloque el cursor en el nombre del struct y presione Ctrl + . para abrir el menú Acciones rápidas y refactorizaciones; luego, seleccione "Mover al espacio de nombres".
  • La corrección de código para agregar un campo privado desde un constructor y viceversa es más fácil de detectar y se mostrará al seleccionar cualquier parte del nombre del campo. Esta refactorización ahora ofrece también todos los constructores posibles.

Versión preliminar del Diseñador XAML para el desarrollo de WPF en .NET Core 3.0

  • Existe una versión preliminar del Diseñador XAML para desarrolladores que crean aplicaciones de WPF en .NET Core 3.0 en Visual Studio. En este momento, muchas de las características de tiempo de diseño no están disponibles. Puesto que se trata de una versión preliminar, si tiene problemas, por ejemplo, bloqueos, envíe sus comentarios sobre Visual Studio para que el equipo mejore la experiencia en el futuro.
  • Con cada actualización a Visual Studio 2019, seguiremos implementando más de las características que estaban anteriormente disponibles en el Diseñador XAML para aplicaciones de WPF en .NET Framework.

Herramientas de .NET SDK

En esta versión costaba mucho mostrar el uso de WPF en .NET Core:

  • Se ha resuelto un problema en el que cada vez que se agrega un nuevo elemento a un proyecto de WinForms o WPF en .NET Core se mostraba un cuadro de dialogo de error (#4486).
  • Compatibilidad con archivos XAML en proyectos de .NET SDK (#1467), lo que incluye muchos elementos de trabajo más pequeños dirigidos a conseguir una experiencia equiparable a los proyectos .NET del estilo antiguo.
  • Compatibilidad del elemento de menú contextual con WinForms en .NET Core (#137): Windows Form, Control de usuario, Componente y Clase.
  • Compatibilidad de elementos de menú contextual para WPF en .NET Core (#137): Ventana, Página, Control de usuario, Diccionario de recursos.
  • La ventana Orígenes de datos está ahora habilitada para proyectos de .NET SDK, de forma que se habilitan escenarios comunes de administración de datos para WinForms (#4479.

Por separado, se han agregado en esta versión otras diversas correcciones:

  • Los proyectos de .NET SDK admiten ahora archivos .razor (#4468).
  • Se ha agregado texto de ayuda accesible a la propiedad Debug, que permite su lectura en lectores de pantalla (#4568).
  • Se ha agregado una opción que permite deshabilitar la acción de doble clic para abrir un archivo de proyecto (#4493).
  • La opción de menú contextual para editar un archivo de proyecto ya no incluye el nombre del proyecto, lo que corrige un problema donde el menú contextual podía volverse demasiado ancho debido a nombres de proyecto muy largos (#1492).
  • Se ha corregido un error en el que al crear un origen de datos con la interfaz de usuario de enlace de datos se creaban dos archivos .datasource (#4485).
  • Se ha resuelto un error donde el uso de archivos vinculados podía provocar que el comprobador de actualizaciones produjera un error (#4580).
  • Se han corregido diversos errores relacionados con la resolución de paquetes y la visualización de su estado resuelto/sin resolver en el nodo Dependencias (#2924,#4577).

Puede ver una lista completa de problemas cerrados en el hito 16.1 de GitHub.

Xamarin

  • Se ha actualizado la experiencia de Android predeterminada a API 28 para plantillas, creación de dispositivos, instaladores y mucho más.
  • IntelliSense en Windows ahora muestra recomendaciones para los atributos en tiempo de diseño al escribir XAML de Xamarin.Forms.

Problemas conocidos

Consulte todos los problemas y las soluciones alternativas disponibles de la versión 16.1 de Visual Studio 2019 en el vínculo siguiente.

Visual Studio 2019 Known Issues

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