Visual Studio Icon Notas de la versión de Visual Studio 2019Visual Studio 2019 Release Notes


| Comunidad de desarrolladores | Requisitos del sistema | Compatibilidad | Código distribuible | Términos de licencia | Blogs | Problemas conocidos || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Known Issues |


Haga clic en un botón para descargar la última versión de Visual Studio 2019.Click a button to download the latest version of Visual Studio 2019. Para obtener instrucciones sobre cómo instalar y actualizar Visual Studio 2019, vea Actualizar Visual Studio 2019 a la versión más reciente.For instructions on installing and updating Visual Studio 2019, see the Update Visual Studio 2019 to the most recent release. Consulte también las instrucciones sobre cómo efectuar una instalación sin conexión.Also, see instructions on how to install offline.


Novedades de Visual Studio 2019What's New in Visual Studio 2019

Versiones de Visual Studio 2019Visual Studio 2019 Releases

Blog de Visual Studio 2019Visual Studio 2019 Blog

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.The Visual Studio 2019 Blog is the official source of product insight from the Visual Studio Engineering Team. Encontrará información detallada sobre las versiones de Visual Studio 2019 en las publicaciones siguientes:You can find in-depth information about the Visual Studio 2019 releases in the following posts:


Release Notes Icon Visual Studio 2019, versión 16.1.3Visual Studio 2019 version 16.1.3 New release icon

publicado el 11 de junio de 2019released June 11, 2019

Resumen de los problemas corregidos en la versión 16.1.3 de Visual Studio 2019Summary of issues addressed in Visual Studio 2019 version 16.1.3New release icon


Release Notes Icon Visual Studio 2019, versión 16.1.2 publicado el 4 de junio de 2019Visual Studio 2019 version 16.1.2 released June 4, 2019

Resumen de los problemas corregidos en la versión 16.1.2 de Visual Studio 2019Summary of issues addressed in Visual Studio 2019 version 16.1.2


Release Notes Icon Visual Studio 2019, versión 16.1.1Visual Studio 2019 version 16.1.1

publicada el 24 de mayo de 2019released May 24, 2019

Resumen de los problemas corregidos en la versión 16.1.1 de Visual Studio 2019Summary of Issues addressed in Visual Studio 2019 version 16.1.1


Release Notes Icon Visual Studio 2019 versión 16.1Visual Studio 2019 version 16.1

publicado el 21 de mayo de 2019released May 21, 2019

Resumen de las novedades de la versión 16.1 de Visual Studio 2019Summary of What's New in Visual Studio 2019 version 16.1

IDEIDE

  • 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.Visual Studio IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
  • Se ha agregado compatibilidad con el reconocimiento por monitor.Added Per-Monitor Awareness support.
  • Se han agregado nuevas correcciones de código para C#.New codefixes are available for C#.
  • Se ha agregado una lista de elementos utilizados más recientemente a la búsqueda de Visual Studio.Most Recently Used has been added to Visual Studio Search.

instantáneasDebugger

  • Se han implementado mejoras en la autenticación de los vínculos de origen.Source Link authentication improvements have been implemented.
  • Se ha agregado el servidor de símbolos nuget.org a la lista de predeterminados.Added nuget.org symbol server to the list of default symbol servers.
  • 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.Time Travel Debugging preview now includes exception stepping support.

ExtensibilidadExtensibility

  • Se ha eliminado la necesidad de disponer de un archivo .resx en proyectos VSIX (actualización de BuildTools).Removed the need for .resx file in VSIX projects (BuildTools update).
  • La plantilla de proyecto de VSIX ahora usa la nueva versión del SDK.VSIX Project template now uses the new SDK version.

RendimientoPerformance

  • Experiencia de optimización del usuario para mejorar el tiempo de carga de soluciones muy grandes.User optimization experience to improve the solution load time of very large solutions.
  • Los autores de plantillas pueden agregar etiquetas personalizadas a sus plantillas.Template authors can add custom tags to their templates.
  • Se ha agregado compatibilidad de CodeLens con la interfaz de usuario personalizada.CodeLens support for custom UI.
  • Se han proporcionado actualizaciones en la implementación del protocolo de servidor de lenguaje.Provided updates to Language Server Protocol implementation.
  • Se ha actualizado el comportamiento para cambiar entre soluciones, carpetas y otras vistas.Updated behavior for switching between solutions, folders, and other views.

C++C++

F#F#

.NET.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.New .NET productivity features include one-click code cleanup on projects and solutions, a new toggle block comment keyboard shortcut, refactoring to move types to other namespaces.
  • Los usuarios pueden ahora clonar el código de un URI de SSH mediante la pantalla de clonación de la ventana de inicio.Users can now clone code from an SSH URI through the clone screen in the start window.
  • 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.Additions to .NET Productivity include intellisense completion for unimported types, toggling single-line comment/uncomment, exporting naming styles to editorconfig, and a new code style setting for preferring usings inside/outside namspaces.
  • 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.Implemented .NET SDK tooling additions around supporting WinForms and WPF projects for .NET Core 3.0 along with bug fixes and performance improvements.
  • El SDK v16.0 de Visual Studio se ha publicado en NuGet.Visual Studio SDK v16.0 released to NuGet.
  • Se ha publicado una versión preliminar del Diseñador XAML para el desarrollo de WPF en .NET Core 3.0.Released a preview of the XAML Designer for .NET Core 3.0 WPF development.

XamarinXamarin

Principales problemas corregidos en la versión 16.1 de Visual Studio 2019Top Issues Fixed in Visual Studio 2019 version 16.1

Detalles de las novedades de la versión 16.1 de Visual Studio 2019Details of What's New in Visual Studio 2019 version 16.1

  • IntelliCode ahora está disponible con carácter general y viene instalado con cualquier carga de trabajo que admita C#, C++, Typescript/JavaScript o XAML.IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or 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.Preview IntelliCode features - Custom Models, C++/TS/JS support, and Editorconfig inference - are disabled by default. Para habilitarlas, vaya a Herramientas > Opciones > IntelliCode.To enable them, go to Tools > Options > IntelliCode.
  • Se ha quitado la plantilla de Editorconfig (IntelliCode) del Asistente para nuevo elemento.Removed the Editorconfig (IntelliCode) template from the New Item Wizard. 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) .To create an inferred Editorconfig, right-click on the desired location in Solution Explorer and choose Add > New EditorConfig (IntelliCode).
  • Use la ventana de inicio para clonar el código desde un repositorio en línea mediante SSH.Use the start window to clone code from an online repository through SSH.
Clone with SSH on start window
Clonación con SSH en la ventana de inicioClone with SSH on start window
  • Visual Studio IntelliCode se instala de forma predeterminada al instalar una carga de trabajo que admita C#, XAML o C++.Visual Studio IntelliCode is installed by default when you install a workload that supports C#, XAML, or C++.
    • Los modelos básicos de C# y XAML estarán activados de forma predeterminada.C# and XAML base models will be on by default.
    • Las características en versión preliminar, como el entrenamiento de modelos y la finalización de argumentos, se pueden habilitar en Herramientas > Opciones > IntelliCode.Preview features, such as custom model training and argument completion, can be enabled via Tools > Options > IntelliCode.
  • Se ha agregado compatibilidad con el reconocimiento por monitor.Added Per-Monitor Awareness support
  • Se han agregado nuevas correcciones de código para C#.New codefixes available for C#.
  • Se ha agregado compatibilidad con el reconocimiento por monitor para WinForms según la ventana PropertyBrowser de Visual Studio.Added Per-Monitor Awareness support for WinForms based PropertyBrowser window of Visual Studio. Requiere tener instalado .NET Framework 4.8 RTM en el equipo.Requires .NET Framework 4.8 RTM version installed on the machine.
  • Los vínculos de origen ahora pueden usar la autenticación de Windows para admitir el control de código fuente de TFS local.Source Link can now use Windows Authentication to support on-premises TFS Source Control.
  • Se ha agregado el servidor de símbolos nuget.org a la lista de predeterminados.Added nuget.org symbol server to the list of default symbol servers

ProyectoProject

  • Ahora, el botón para cambiar la vista del Explorador de soluciones mostrará sistemáticamente un menú desplegable con todas las vistas posibles.The button for switching the Solution Explorer view will now consistently shows a dropdown menu of all possible views.
Solution switching
Cambio de la vista de la soluciónSolution view switching
  • Se ha mejorado el tiempo de carga de soluciones muy grandes.Improved the loading time for very large solutions. La mejora varía en función del tamaño de las soluciones.The improvement varies based on the size of the solutions.

  • Se ha quitado el cuadro de diálogo Convertir, en Archivo > Convertir.Removed the Convert dialog under File > Convert. Esta característica había quedado en desuso en Visual Studio 2015.This feature was previously deprecated in 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.Updated the validation rules for the task.vs.json and launch.vs.json schemas, and added descriptions for the properties.

  • Se ha agregado compatibilidad con la depuración remota de Linux mediante un programa personalizado a través de launch.vs.json.Added support for Linux remote debugging using a custom program via launch.vs.json.

ExtensibilidadExtensibility

  • 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.Users can now use the latest version of the Microsoft.VisualStudio.SDK to target Visual Studio 2019 in your extensions. Recuerde que debe usar únicamente esta versión del SDK si la versión mínima compatible de Visual Studio es la 16.0.Remember to only use this version of the SDK if the lowest supported version of Visual Studio is 16.0.
  • Los nuevos proyectos de VSIX que se creen incluirán ahora la versión 16.0 del paquete NuGet Microsoft.VisualStudio.SDK.Creating new VSIX projects will now contain the 16.0 version of the the Microsoft.VisualStudio.SDK NuGet package.
  • 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.Users can now add tags to your project templates to enable categorization and filtering in the Visual Studio 2019 New Project Dialog. Los usuarios pueden elegir entre las etiquetas integradas y sus propias etiquetas personalizadas de tipo de proyecto, plataforma y lenguaje.Users can also choose from the built-in tags or their own custom language, platform, and project type tags.
Template tagging
Etiquetado de plantillasTemplate tagging
  • Las extensiones de CodeLens ahora pueden mostrar contenido arbitrario de interfaz de usuario en el menú emergente de detalles de CodeLens.CodeLens extensions can now display arbitrary UI content in their CodeLens details popup.

  • Protocolo de servidor de lenguaje actualizado:Updated Language Server Protocol with:

    • Compatibilidad con búferes previstos para habilitar LSP para diferencias insertadas y archivos de Razor en LiveShare.Support for projected buffers to enable LSP for inline diff, and Razor files in LiveShare.
    • Compatibilidad con diagnósticos innecesarios.Support for unnecessary diagnostics.
    • Compatibilidad con textDocument/typeDefinition.Support for textDocument/typeDefinition.
    • Compatibilidad con textDocument/foldingRange (esquematización).Support for textDocument/foldingRange (outlining).
  • Se ha eliminado la necesidad de disponer de un archivo .resx en proyectos VSIX (actualización de BuildTools).Removed the need for .resx file in VSIX projects (BuildTools update)

  • 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.The Microsoft.VSSDK.BuildTools NuGet package will now provide an empty .resx file as part of the build if no .resx with MergeWithCTO property exist. 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.Most extensions don't use or need a .resx file to merge, so this will keep the project cleaner.

  • Los cambios en la detección de monitores puede afectar a algunas extensiones.Per-monitor awareness changes might affect some extensions. Más información sobre la compatibilidad de la detección de monitores para extensores de Visual Studio.Learn more about Per-Monitor Awareness support for Visual Studio extenders.

EditorEditor

  • 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.Visual Studio Search will now display on focus the three most recently used actions invoked through Visual Studio Search, as shown in this sample mockup. (Nota: Los iconos y los elementos de línea específicos no están actualizados en la imagen de ejemplo).
    (Note: icons and specific line items have not been fully updated in this mock-up.)
    Visual Studio Search
    Imagen de ejemplo de la búsqueda en Visual StudioMock-up of Visual Studio Search

C++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.Use local Windows Subsystem for Linux (WSL) installation with C++ natively in Visual Studio without additional configuration or SSH connection.
Windows Subsystem for Linux
Subsistema Windows para LinuxWindows Subsystem for Linux
  • AddressSanitizer ahora está integrado en Visual Studio para proyectos de Linux y WSL.AddressSanitizer is now integrated into Visual Studio for Linux projects and WSL.
ASan integration
Integración de ASanASan integration
  • 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.Users can now separate remote build machines from remote debug machines when targeting Linux in both MSBuild and CMake projects.
  • 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.Quick Info tooltips now contain a link to search for online docs to learn more about the code construct. En el caso de código subrayado en rojo, el vínculo de información rápida buscará el error en línea.In the case of red-squiggled code, the link in Quick Info will search for the error online.
  • Ahora el código dentro de la información rápida está coloreado para reflejar su color en el editor.Code within Quick Info tooltips is now colorized to reflect its colorization in the editor.
Colorized code in Quick Info tooltips
Código coloreado en la información rápidaColorized code in Quick Info tooltips
  • 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.Automatic quick fixes for the Code Analysis warnings C6001: using uninitialized memory <variable> and C26494 VAR_USE_BEFORE_INIT are available via the lightbulb menu on relevant lines, enabled by default in the Microsoft Native Minimum ruleset and C++ Core Check Type rulesets, respectively.
New Code Analysis quick fixes
Nuevas correcciones rápidas de análisis de códigoNew Code Analysis quick fixes
  • 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, including support for Windows Subsystem for Linux (WSL) and configurations from existing caches, changes to the default build and install roots, and support for environment variables in Linux CMake configurations.
Improvements to the CMake Settings Editor
Mejoras en el Editor de configuración de CMakeImprovements to the CMake Settings Editor
  • 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 makes it easier to diagnose issues with cross-platform development.
Improved logging for remote connections
Registro mejorado para conexiones remotasImproved logging for remote connections
  • 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).You can now separate your remote build machine from your remote debug machine when targeting Linux (specific to MSBuild projects, coming soon for 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.The Template Bar can populate the dropdown menu based on instantiations of that template in your codebase.
New Template Bar dropdown menu
Nuevo menú desplegable Barra de plantillasNew Template Bar dropdown menu
  • C++ IntelliCode se incluye ahora de forma predeterminada y puede habilitarse en Herramientas > Opciones > IntelliCode > General.C++ IntelliCode now ships in-box and can be enabled under Tools > Options > IntelliCode > General. Esta versión de IntelliCode ha mejorado en precisión e incluye compatibilidad con funciones libres.This version of IntelliCode has improved accuracy and includes support for free-functions.
  • La integración de CMake ahora admite la cadena de herramientas Clang/LLVM para proyectos destinados a Windows o Linux.CMake integration now supports the Clang/LLVM toolchain for projects targeting Windows and/or Linux. Ahora es posible compilar, editar y depurar proyectos de CMake que usan Clang, MSVC o GCC.You can now build, edit, and debug CMake projects that use either Clang, MSVC, or GCC.
CMake integration supports the Clang/LLVM toolchain
Integración de CMake compatible con la cadena de herramientas Clang/LLVMCMake integration supports the Clang/LLVM toolchain
  • 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.Lightbulbs for missing #includes that can be installed by vcpkg, and autocompletion of available packages for the CMake find_package directive.
Autocompletion of available packages
Finalización automática de paquetes disponiblesAutocompletion of available packages
  • Se ha actualizado la versión de CMake que se incluye con Visual Studio a la versión 3.14.Updated the CMake version that ships with Visual Studio to 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.This version adds built-in support for MSBuild generators targeting Visual Studio 2019 projects as well as file-based IDE integration APIs.

  • 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.The General Property Pages for C++ projects has been revised, splitting out some options under a new Advanced page. 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).The Advanced page also includes additional properties for preferred toolset architecture, debug libraries, the MSVC toolset minor version, and Unity (jumbo) builds.

  • 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:The following C++20 preview features have been added to our implementation of the C++ Standard Library, available under /std:c++latest:

    • starts_with() y ends_with() para basic_string/basic_string_view.starts_with() and ends_with() for basic_string/basic_string_view.
    • contains() para contenedores asociativos.contains() for associative containers.
    • remove(), remove_if() y unique() para list y forward_list ahora devuelven size_type.remove(), remove_if(), and unique() for list and forward_list now return size_type.
    • Se han agregado shift_left() y shift_right() a <algorithm>.shift_left() and shift_right() added to <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:The following C++20 preview features have been implemented in the C++ compiler, available under /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).Increased ability to find function templates via argument-dependent lookup for function call expressions with explicit template arguments (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 }.Designated initialization (P0329R4), which allows specific members to be selected in aggregate initialization, e.g. using the Type t { .member = expr } syntax.
  • Se ha revisado la compatibilidad con expresiones lambda para corregir un gran número de errores pendientes de corregir.Lambda support has been overhauled, addressing a large number of long-standing bugs. Este cambio está habilitado de forma predeterminada al usar /std:c++latest.This change is enabled by default when using /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.In other /std:c++* language modes and under the default mode, the new parser can be enabled via /experimental:newLambdaProcessor, e.g. /std:c++17 /experimental:newLambdaProcessor.

  • Documentación en el editor para CMakeIn-editor documentation for 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.Completions and quick info for built-in CMake commands, variables, and properties make it easier to edit your CMakeLists.txt files.

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

F# y herramientas de F#F# and F# tools

Esta es una versión relativamente secundaria del lenguaje F# y sus herramientas, pero con algunas sorpresas.This is a relatively minor release for the F# language and tools, but it's not without some goodies! 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.As with the VS 16.0 update, this release also focused on performance of editor tooling.

Compilador de F# y F# interactivoF# compiler and F# interactive
  • Se ha agregado compatibilidad con P/Invoke a F# interactivo en .NET Core (#6544).Added P/Invoke support to F# interactive on .NET Core (#6544)
  • Se ha agregado una optimización del compilador para Span<'T> cuando se usa en un bucle for (#6195).Added a compiler optimization for Span<'T> when used in a for loop (#6195)
  • Se ha agregado una optimización para evitar asignaciones Some extrañas para opciones de F# en diversos escenarios (#6532)Added an optimization to avoid an extraneous Some allocations for F# options in various scenarios (#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).Changed the execution order of expressions used in the instantiation of Anonymous Records to be top-to-bottom, rather than alphabetical, to match the current experience with normal Records (#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).A bug where very large literal expressions or very large struct declarations could cause the compiler to stack overflow on build has been resolved (#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).A bug where breakpoints would no longer trigger when debugging a function with an Anonymous Records has been fixed (#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).A bug where Anonymous Records passed to constructs expecting an obj parameter caused a compiler crash has been fixed (#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).A bug where for var expr1 to expr2 do ... loops could result in bizarrely valid (and discarded) syntax has been fixed (#6586)
  • Se ha corregido un error donde no se podían usar registros anónimos correctamente con eventos (#6572).A bug where Anonymous Records could not be used properly with events has been fixed (#6572)
  • Se ha resuelto un antiguo error donde se generaban analizadores extremadamente grandes en FsLexYacc (más de 100 millones de líneas) (#5967.A longstanding bug where extremely large generated parsers in FsLexYacc (over 100 million lines) has been resolved (#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).A longstanding issue in the Type Provider plugin component of the compiler that could leave the door open for a memory leak caused by a type provider has been resolved (#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).Support for --pathmap was added to the F# compiler by Saul Rennison, which resolves an issue where the resulting executable from a compilation would include absolute paths to source files in the embedded F# signature file resource (#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).An optimization to the F# AST that improves its consumption via other tools and enviroments (e.g., Fable) has been added by 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)An optimization around traversing information when resolving members has been added by 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)An improvement to error messages such that when a type implementation is missing necessary overrides a list of those missing overrides is reported has been added by Gauthier Segay (#4982)
Herramientas de F#F# tools
  • 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.The Target Framework dropdown for F# projects in the .NET SDK will now include values for all available .NET Core, .NET Standard, and .NET Framework values to ease migrating to .NET Core from .NET Framework on the .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).A bug where renaming generic type parameters produces double backtick-escaped names has been fixed (#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).A longstanding problem where Type Providers were redundantly reinstantiated, causing massive allocations over time, has been resolved (#5929)
  • Se ha resuelto un antiguo problema donde al leer el IL se asignaban innecesariamente 20 MB durante un corto período (#6403).A longstanding issue where reading IL needlessly allocated 20MB over a short period of time was been resolved (#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).A bug where the method GetToolTipText in the F# compiler service could show the same XML signature for several member overloads has been resolved by Vasily Kirichenko (#6244)
Infraestructura de código abierto de F#F# open source infrastructure

Por último, se ha mejorado la experiencia de contribución de la siguiente manera:Finally, we improved the contribution experience by doing the following:

  • 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 CoreCompleted our build from source process so that the F# compiler and core library can be built with the .NET Core source build repository
  • Se ha quitado nuestra dependencia de netstandard1.6 para que todo el código base se dirija uniformemente a netstandard2.0 y net472.Removed our dependency on netstandard1.6 so that the entire codebase uniformly targets netstandard2.0 and 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.Added a .vsconfig file to the root of the repository so that contributors using Visual Studio don't have to know everything that needs installing up front
  • 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.Rewrote our project's README to remove potentially confusing information, include a quickstart for getting started with contributing, and attempting to be more inclusive in our messaging about the kinds of changes we'd love to take

Productividad de .NET.NET Productivity

  • Existe ahora una finalización de IntelliSense para tipos no importados.There is now experimental intellisense completion for unimported types! 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.Uers now receive intellisense suggestions for types in dependencies in projects even if they have not yet added the import statement to the file. Active esta opción en Herramientas > Opciones > Editor de texto > C# > IntelliSense.Turn this option on in Tools > Options > Text Editor > C# > Intellisense.
Intellisense completion for unimported types
Finalización de IntelliSense en tipos no importadosIntellisense completion for unimported types
  • Ahora la alternancia entre poner y quitar marca de comentario está disponible mediante el método abreviado de teclado (Ctrl+K,/).Toggle Single Line Comment/Uncomment is now available through the keyboard shortcut (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.This command will add or remove a single line comment depending on whether your selection is already commented.
  • 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.Ability to export naming styles with the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
  • 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.Ability to use a new editorconfig code style rule to require or prevent usings inside a namespace. 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.This setting will also be exported when using the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
Editorconfig rule for usings outside/inside namespaces
Regla de editorconfig para instrucciones using dentro o fuera de los espacios de nombresEditorconfig rule for usings outside/inside namespaces
Tools Options setting for usings inside/outside namespace
Configuración de opciones de herramientas para las instrucciones using dentro o fuera del espacio de nombresTools Options setting for usings inside/outside namespace
  • 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.The Find All References “Kind” column now has more filter options and is aware of namespaces and types.
Find All References Kind column has more filter options
La columna Buscar todas las referencias "Tipo" ahora tiene más opciones de filtradoFind All References Kind column has more filter options
  • Se ha agregado una corrección de código para las instrucciones de división o combinación "if".Added a codefix for split/merge if statements.
Split or merge if statements
Instrucciones de división o combinación "if"Split or merge if statements
  • Se ha agregado una corrección de código para el encapsulado de expresiones binarias.Added a codefix for wrapping binary expressions.
Wrap binary expressions
Encapsulado de expresiones binariasWrap binary expressions
  • 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.A regex completion list can now be accessed through the intellisense menu (Ctrl + space) when inside a regex string. Dichas finalizaciones también incluyen una descripción en línea de lo que hace la sugerencia.These completions also include an in-line description of what the suggestion does.
Regex completion offered in Intellisense with (Ctrl + space)
Finalización de expresiones regularesRegex completion
  • Se ha agregado una corrección de código para quitar el sello de una clase.Added a codefix for unsealing a class.
Unseal a class codefix
Operación para quitar el sello de una claseUnseal a class
  • Utilice la limpieza de código con un solo clic en proyectos y soluciones.Use one-click code cleanup for projects and solutions. 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 on projects or the solution in the Solution Explorer and select ‘Run Code Cleanup’.
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ónRight-click to run code cleanup over the entire solution
You will see a dialog box while cleanup is applied to each file
Cuadro de diálogo que aparece mientras se limpia cada archivoA dialog is present box while cleanup is applied to each file
  • Ahora hay un cuadro de diálogo de refactorización que permite mover el tipo al espacio de nombres o la carpeta.Now use a refactoring dialog to move type to namespace or folder. 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".Place your cursor in the class name and type (Ctrl + .) to open the quick actions and refactorings menu and select ‘Move to namespace.’ Esto inicia un cuadro de diálogo donde se puede seleccionar el espacio de nombres de destino al que se quiera mover el tipo.This launches a dialog where you can select the target namespace you would like to move the type to.
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 refactorizacionesPlace cursor in class name and type (Ctrl+.) to view refactorings
Select the destination namespace
Selección del espacio de nombres de destinoSelect the destination namespace
  • 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.Toggle Block Comment/Uncomment is now available through the keyboard shortcut (Ctrl+Shift+/) or through Edit > Advanced > Toggle Block Comment. Este comando agregará o quitará los comentarios de bloque en función de lo que se haya seleccionado.This command will add or remove block comments depending on what you have selected.
Toggle block comment with (Ctrl+Shift+/)
Alternancia de comentario de bloque con Ctrl+Mayús+/Toggle block comment with (Ctrl+Shift+/)
  • Ahora hay una corrección de código que permite escribir en los campos struct de solo lectura.There is now a codefix for making readonly struct fields writable. 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".Place your cursor in the struct name, type (Ctrl+.) to open the quick actions and refactorings menu, and select ‘Make readonly fields writable.’
  • 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.The codefix to add a private field from a constructor and vice versa is easier to discover and will show when any portion of the field name is selected. Esta refactorización ahora ofrece también todos los constructores posibles.This refactoring now also offers all possible constructors.

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

  • Existe una versión preliminar del Diseñador XAML para desarrolladores que crean aplicaciones de WPF en .NET Core 3.0 en Visual Studio.There is an early preview of the XAML Designer for developers building .NET Core 3.0 WPF applications in Visual Studio. En este momento, muchas de las características de tiempo de diseño no están disponibles.Many design-time features will be unavailable at this time. 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.Since this is an early preview, if you encounter issues such as crashes, please submit Visual Studio feedback for the team to improve the experience going forwards.
  • 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.With each update to Visual Studio 2019, we will continue implementing more of the features that were previously available in the XAML Designer for .NET Framework WPF applications.

Herramientas de .NET SDK.NET SDK tooling

En esta versión costaba mucho mostrar el uso de WPF en .NET Core:This release included a lot of work to unblock the use of WPF on .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).An issue where an error dialog popped up whenever you add a new item to a .NET Core WinForms or WPF project was been resolved (#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.Support for XAML files in .NET SDK projects (#1467) which includes many smaller items of work aimed at achieving experience parity with old-style .NET projects.
  • Compatibilidad con elementos de menú contextual de Windows Forms en .NET Core (#137): Windows Form, Control de usuario, Componente y Clase.Context menu item support for WinForms on .NET Core (#137): Windows Form, User Control, Component, and Class.
  • Compatibilidad con elementos de menú contextual de WPF en .NET Core (#137): Ventana, Página, Control de usuario, Diccionario de recursos.Context menu item support for WPF on .NET Core (#137): Window, Page, User Control, Resource Dictionary.
  • 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.The Data Sources window is now enabled for .NET SDK projects, enabling common data management scenarios for WinForms (#4479.

Por separado, se han agregado en esta versión otras diversas correcciones:Separately, a variety of other fixes were added in this release:

  • Los proyectos de .NET SDK admiten ahora archivos .razor (#4468)..NET SDK projects now support .razor files (#4468).
  • Se ha agregado texto de ayuda accesible a la propiedad Debug, que permite su lectura en lectores de pantalla (#4568).Accessible help text was added to the Debug property page, allowing it to be read by screen readers (#4568).
  • Se ha agregado una opción que permite deshabilitar la acción de doble clic para abrir un archivo de proyecto (#4493).We added a setting that allows you to disable double-click to open a project file (#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).The context menu option to edit a project file no longer includes the project name, fixing an issue where the context menu could get too wide due to a very long project name (#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).A bug where creating a Data Source with the Data Binding UI created two .datasource fileas has been fixed (#4485).
  • Se ha resuelto un error donde el uso de archivos vinculados podía provocar que el comprobador de actualizaciones produjera un error (#4580).A bug where using linked files could cause the up-to-date checker to fail has been resolved (#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).A variety of bugs involving package resolution and the display of their resolved/unresolved state in the Dependencies node have been fixed (#2924,#4577).

Puede ver una lista completa de problemas cerrados en el hito 16.1 de GitHub.You can see a full list of closed issues by going to the 16.1 milestone on GitHub.

XamarinXamarin

  • Se ha actualizado la experiencia de Android predeterminada a API 28 para plantillas, creación de dispositivos, instaladores y mucho más.Updated the default Android Experience to API 28 for templates, device creation, installers, and more.
  • IntelliSense en Windows ahora muestra recomendaciones para los atributos en tiempo de diseño al escribir XAML de Xamarin.Forms.IntelliSense on Windows now shows recommendations for design-time attributes when writing Xamarin.Forms XAML.

Problemas conocidosKnown Issues

Consulte todos los problemas y las soluciones alternativas disponibles de la versión 16.1 de Visual Studio 2019 en el vínculo siguiente.See all issues and available workarounds in Visual Studio 2019 version 16.1 by following the below link.

Visual Studio 2019 Known Issues


ComentariosFeedback

Nos encantaría que nos diera su opinión.We would love to hear from you! 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.For issues, let us know through the Report a Problem option in the upper right-hand corner of either the installer or the Visual Studio IDE itself. A la claseThe Feedback Icon icono se encuentra en la esquina superior derecha.icon is located in the upper right-hand corner. 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.You can make a product suggestion or track your issues in the Visual Studio Developer Community, where you can ask questions, find answers, and propose new features. También puede obtener ayuda gratuita para la instalación a través de nuestro servicio de soporte técnico de chat en directo.You can also get free installation help through our Live Chat support.


BlogsBlogs

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.Take advantage of the insights and recommendations available in the Developer Tools Blogs site to keep you up-to-date on all new releases and include deep dive posts on a broad range of features.


Historial de notas de la versión de Visual Studio 2019Visual Studio 2019 Release Notes History

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.For more information relating to past versions of Visual Studio 2019, see the Visual Studio 2019 Release Notes History page.


Principio de página
Top of Page