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


| Comunidad de desarrolladores | Requisitos del sistema | Compatibilidad | Código distribuible | Términos de licencia | Blogs | Problemas conocidos de la versión más reciente || Developer Community | System Requirements | Compatibility | Distributable Code | License Terms | Blogs | Latest Release 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 2019, versión 16.7What's New in Visual Studio 2019 version 16.7

Período de tiempo de soporte técnicoSupport Timeframe

Visual Studio 2019, versión 16.7, es la tercera base de referencia de mantenimiento de Visual Studio 2019.Visual Studio 2019 version 16.7 is the third supported servicing baseline for Visual Studio 2019. Se recomienda que aquellos clientes de Enterprise y Professional que necesiten adoptar un entorno de desarrollo estable y seguro a largo plazo estandaricen con esta versión.Enterprise and Professional customers needing to adopt a long term stable and secure development environment are encouraged to standardize on this version.  Como se explica con más detalle en el ciclo de vida y la directiva de compatibilidad, la versión 16.7 seguirá contando con correcciones y actualizaciones de seguridad durante un año después del lanzamiento de la siguiente base de referencia de mantenimiento.  As explained in more detail in our lifecycle and support policy, version 16.7 will be supported with fixes and security updates for one year after the release of the next servicing baseline.

Además, ahora que la versión 16.7 está disponible, la versión 16.4, que era la última base de referencia de mantenimiento, contará con soporte técnico durante 12 meses adicionales y dejará de recibirlo en octubre de 2021.In addition, now that version 16.7 is available, version 16.4, which was the last servicing baseline, will be supported for an additional 12 months and will go out of support in October 2021. Tenga en cuenta también que las versiones 16.5 y 16.6 ya no cuentan con soporte técnico. Note as well that versions 16.5 and 16.6 are no longer under support. Estas versiones intermediarias solo recibieron correcciones de mantenimiento hasta que se lanzó la siguiente actualización secundaria.These intermediary releases received servicing fixes only until the next minor update released.

Puede adquirir la última versión más segura de Visual Studio 2019 (versión 16.7) en la sección de descargas de my.visualstudio.com.You can acquire the latest most secure version of Visual Studio 2019 version 16.7 in the downloads section of my.visualstudio.com.  Para obtener más información sobre las líneas base con soporte técnico de Visual Studio, revise la Directiva de compatibilidad para Visual Studio 2019.  For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019.

Versiones de Visual Studio 2019, versión 16.7Visual Studio 2019 version 16.7 Releases

Notas de la versión archivadas de Visual Studio 2019Visual Studio 2019 Archived Release Notes

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.7.0Visual Studio 2019 version 16.7.0New release icon

publicado el 5 de agosto de 2020released August 5, 2020

En esta versión de Visual Studio 2019 16.7.0In This Release of Visual Studio 2019 version 16.7.0

C++C++

  • Nuestra compatibilidad remota con C++ ahora admite una gama más amplia de distribuciones y shells de Linux, como sh, csh, bash, tcsh, ksh, zsh y dash.Our remote C++ support now supports a wider range of Linux distros and shells, including sh, csh, bash, tsch, ksh, zsh, and dash. Puede invalidar el shell seleccionado para una conexión remota modificando la nueva propiedad "shell" a través de ConnectionManager.exe.You can override the choice of a shell for a remote connection by modifying the new "shell" property via ConnectionManager.exe. Esta compatibilidad se ha probado con proyectos de Linux basados en MSBuild y proyectos de CMake orientados a un sistema Linux remoto o a WSL.This support has been tested with both MSBuild-based Linux projects and CMake projects targeting a remote Linux system or WSL.
  • Ahora se puede usar Ninja (un sistema de compilación que evalúa las compilaciones incrementales con mucha rapidez) para mejorar los tiempos de compilaciones incrementales para los proyectos de Linux basados en MSBuild.You can now use Ninja (a build system that evaluates incremental builds very quickly) to improve incremental build times for MSBuild-based Linux projects. Se puede optar por esta característica al establecer "Habilitar compilación incremental" en "Con Ninja" en la página de propiedades General.You can opt into this feature by setting "Enable Incremental Build" to "With Ninja" in the General Property Page. Ninja (ninja-build) debe estar instalado en el sistema Linux remoto o WSL.Ninja (ninja-build) must be installed on your remote Linux system or WSL.
  • Se han implementado nuevas características de la biblioteca estándar de C++20.New C++20 Standard Library features have been implemented. Para obtener una lista detallada, vea el  registro de cambios de Stephan T. Lavavej en GitHub .Please refer to the STL Changelog on GitHub for a detailed list.
  • Ahora, se pueden editar y establecer conexiones remotas predeterminadas en Connection Manager.You can now edit and set default remote SSH connections in the Connection Manager. Esto significa que puede editar conexiones remotas existentes (por ejemplo, en caso de que la dirección IP haya cambiado), así como establecer conexiones predeterminadas para que se usen en CMakeSettings.json y launch.vs.json.This means you can edit an existing remote connection (e.g. if its IP address changed) and set default connections to be consumed in CMakeSettings.json and launch.vs.json. Las conexiones SSH remotas permiten compilar y depurar proyectos de C++ en un sistema Linux remoto directamente desde Visual Studio.Remote SSH connections allow you to build and debug C++ projects on a remote Linux system directly from Visual Studio.
Edit remote connections in the Connection Manager
Edición de conexiones remotas en Connection ManagerEdit remote connections in the Connection Manager
  • Compatibilidad mejorada con IntelliSense para Clang en Windows (clang-cl) en Visual Studio.Enhanced IntelliSense support for Clang on Windows (clang-cl) in Visual Studio. Ahora, la ruta de acceso de inclusión de clang incluye las bibliotecas de clang. Hemos mejorado la visualización de subrayado ondulado en el editor al usar la biblioteca estándar y hemos agregado compatibilidad con C++2a en modo clang.The clang include path now includes the clang libraries, we've improved in-editor squiggle display when using the std library, and we've added support for C++2a in clang mode.
  • ahora puede probar errores de código subyacentes y ver más correcciones rápidas sugeridas en proyectos de C++.You can now try out underlining code errors and see more suggested quick fixes in C++ projects.Habilite esta característica en herramientas > opciones > editor de texto > C/C++ > experimental > establezca "deshabilitar el pelusa de código experimental" en false. Enable this feature under Tools > Options > Text Editor > C/C++ > Experimental > Set 'Disable Experimental Code Linter' to false. Encontrará más información en el blog del equipo de C++.Learn more on the C++ Team Blog.
IntelliSense code linter
Linter de código de IntelliSenseIntelliSense code linter
  • Hemos agregado cuatro nuevas reglas de análisis de código para incorporar más características de seguridad a C++: C26817, C26818, C26819 y C26820.We've added four new code analysis rules to incorporate additional safety features into C++: C26817, C26818, C26819, and C26820.
  • Hemos agregado compatibilidad de primer nivel para depurar proyectos de CMake en sistemas remotos con gdbserver.We've added first-class support for debugging CMake projects on remote systems with gdbserver.
  • Encuentre errores de memoria dañada fácilmente con una implementación experimental de AddressSanitizer para C++ en Visual Studio, ahora disponible para proyectos nativos de x64.Find memory corruption errors easily with an experimental implementation of AddressSanitizer for C++ in Visual Studio, now available for x64 native projects. Ahora, también se admite el uso de runtimes de depuración (/MTd,/MDd,/LDd).We also now support the use of debug runtimes (/MTd, /MDd, /LDd).
  • Ahora, IntelliSense tiene compatibilidad básica con conceptos, inicializadores designados y otras características de C++20.IntelliSense now has basic support for Concepts, designated initializers, and several other C++20 features.
  • Los archivos .ixx y. cpm ahora se reconocen como C++ y se tratarán como tales mediante el resaltado de sintaxis e IntelliSense..ixx and .cppm files are now recognised as C++ and will be treated as such by the syntax highlighter and IntelliSense.

Definición de listas de reproducción dinámicamenteDefine playlists dynamically

Ahora, se pueden definir listas de reproducción basadas dinámicamente en un proyecto, una clase o un espacio de nombres.You can now define playlists dynamically based on Project, Class, or Namespace. Esto significa que se puede configurar una lista de reproducción para que incluya todo lo que hay en un determinado proyecto, clase o espacio de nombres. Cualquier prueba nueva que se agregue a ese grupo se incluirá automáticamente en la lista de reproducción.This means you can configure a playlist to include everything in a certain project/class/namespace; any new test added to that group will automatically be included in your playlist!

  • Para crear una lista de reproducción, haga clic con el botón derecho en un proyecto, espacio de nombres o agrupación de clases en el Explorador de pruebas.Create a playlist by right clicking on a project, namespace, or class grouping in the Test Explorer.
Test Explorer: Create a playlist
Explorador de pruebas: creación de una lista de reproducciónTest Explorer: Create a playlist
  • Para editar los grupos que se incluyen en la lista de reproducción, haga clic en el botón Editar de la barra de herramientas.Edit what groups are included in the playlist by clicking on the edit button in the tool bar. Aparecerán unas casillas.Check boxes will appear. Edite los grupos según sea necesario.Edit groups as desired.
Test Explorer: Edit a playlist
Explorador de pruebas: edición de una lista de reproducciónTest Explorer: Edit a playlist
  • En vez de ser una lista estática de pruebas, estas listas de reproducción se actualizan dinámicamente en función de una serie de reglas.Instead of being a static list of tests these playlists dynamically update based on rules. Si quiere adquirir un mejor conocimiento de qué reglas están generando su lista de reproducción dinámica, guarde el archivo de lista de reproducción en el disco con el botón Guardar y vea las reglas generadas en el archivo XML.If you want to better understand what rules are generating your dynamic playlist, save the playlist file to disk with the save button and view the rules generated in the xml.
PlayList file dynamic rule set
Conjunto de reglas dinámicas de archivo de lista de reproducciónPlayList file dynamic rule set
  • Puede seguir incluyendo y excluyendo pruebas individuales, y la lista de reproducción podrá actualizar sus reglas dinámicas o volver a realizar el seguimiento de las pruebas como una lista estática.You can continue to include/exclude individual tests and the playlist will be able to either update its dynamic rules or switch back to keeping track of tests as a static list. También se pueden usar rasgos para definir un grupo dinámico, editando para ello el archivo XML de la lista de reproducción directamente.You can also use traits to define a dynamic group by editing the playlist xml file directly.

Productividad de GitGit Productivity

Para usar esta experiencia, active la característica de versión preliminar "New Git user experience" (Nueva experiencia de usuario de Git) en Herramientas | Opciones | Entorno.Toggle on the 'New Git user experience' Preview Feature in Tools | Options | Environment to use this experience.

  • Cree un nuevo repositorio de Git, empezando desde cualquier carpeta o una nuevaCreate a new Git repository, starting from any folder or a brand new folder
  • Guarde y cierre una carpeta o solución abierta antes de iniciar una nueva operación de clonación.Save and close an open folder or solution before starting a new clone operation
  • Vea los errores de confirmación o de mensaje de stash con claridad en el cuadro de texto de confirmación.View commit or stash message errors clearly in the commit text box
  • Vea y administre ramas de Git en una vista de árbol en una nueva ventana de repositorio de GitView and manage Git branches in a tree view within a new Git Repository window
  • Cambie entre gráficos del historial de cada rama e interactúe con ellos en la ventana del repositorio de GitSwitch between and interact with the history graph of each branch in the Git Repository window
  • Consulte las confirmaciones de entrada y salida en la ventana del repositorio de GitView incoming and outgoing commits in the Git Repository window
  • Blog del equipo de productividad de Git con más detalles sobre las características recientesGit Productivity team blog with more details of recent features
Manage branches and view history in a focused Git Repository window
Administre ramas y vea el historial en una ventana de repositorio de Git centradaManage branches and view history in a focused Git Repository window

Resuelva conflictos de combinación con un editor de combinación centrado en Git usando lo siguiente:Resolve merge conflicts with a Git focused merge editor using:

  • Una barra de información en los archivos que contienen conflictos de combinación en la que se le pide abrir el editor de combinaciónAn info bar in files containing merge conflicts that prompts you to open the merge editor
  • Texto y títulos más informativos, así como un editor de combinación más ordenado y despejadoMore informative titles and captions, and less clutter in the merge editor
  • Diferencias de conflictos que encajan con líneas coincidentes, visualización de las diferencias en el nivel de palabra y visualización del espacio en blanco visible cuando es la única diferenciaDiffs within conflicts that align matching lines, show word level differences, and display visible whitespace when it is the only difference.
  • Combinaciones bidireccionales en conflictos de tipo "agregar/agregar" en el nivel de archivoTwo-way merges for file level add/add conflicts
  • Posibilidad de resolver todos los conflictos a un lado u otro con un solo clicThe ability to resolve all conflicts to one side or the other with a single click
  • Opción para centrarse únicamente en los conflictos, omitiendo las diferencias que no suponen un conflictoA toggle to focus on just conflicts, ignoring non-conflicting differences
New Merge Editor Experience
Resolución de conflictos de combinación con el editor de combinaciónResolve Merge Conflicts with the Merge Editor

JavaScript/TypeScriptJavaScript/TypeScript

  • Las implementaciones de Finalización e Información rápida se han actualizado para admitir escenarios de LiveShare de mejor forma.The implementations of Completion and Quick Info have been updated to better support LiveShare scenarios.

Proceso local con KubernetesLocal Process with Kubernetes

Local Process with Kubernetes
Proceso local con KubernetesLocal Process with Kubernetes

El proceso local con Kubernetes permite escribir, probar y depurar código de .NET en su estación de trabajo de desarrollo, mientras sigue conectado al clúster de Kubernetes con el resto de la aplicación o los servicios.Local Process with Kubernetes allows you to write, test and debug your .NET code on your development workstation while connected to your Kubernetes cluster with the rest of your application or services. Al conectar la estación de trabajo de desarrollo al clúster, se acaba con la necesidad de tener que ejecutar y configurar manualmente los servicios dependientes en el equipo de desarrollo.By connecting your development workstation to your cluster, you eliminate the need to manually run and configure dependent services on your development machine. Las variables de entorno, las cadenas de conexión y los volúmenes del clúster estarán disponibles para su uso en el código de microservicio que se ejecuta localmente.Environment variables, connection strings and volumes from the cluster are available to your microservice code running locally. No es necesario disponer de recursos adicionales, como manifiestos de Kubernetes o Dockerfile.There is no need for extra assets, such as a Dockerfile or Kubernetes manifests. Ejecute, depure y pruebe el código .NET como lo haría normalmente.Run, debug, and test your .NET code as you normally would.

Para habilitar el proceso local con Kubernetes, vaya a Herramientas > Opciones > Entorno > Características en versión preliminar y seleccione "Enable local debugging for Kubernetes services" (Habilitar depuración local para servicios de Kubernetes).To enable Local Process with Kubernetes, go to Tools > Options > Envrionment > Preview Features and select "Enable local debugging for Kubernetes services".

Enable Preview Features
Habilitar características en versión preliminarEnable Preview Features

En el caso de las aplicaciones de consola .NET, se requiere un paso más.For .NET console applications, an additional step is required. Instale el paquete Nuget "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets".Install the "Microsoft.VisualStudio.Azure.Kubernetes.Tools.Targets" Nuget Package.

Productividad de .NET.NET Productivity

Ahora hay una corrección de advertencia y otra de código cuando un operador de supresión está presente pero no tiene ningún efecto.There is now a warning and code fix when a suppression operator is present but has no effect. También hay disponible una segunda corrección de código que sugiere la expresión de negación correcta.A second code fix suggesting the correct negating expression is also available. Coloque el cursor en el operador de supresión.Place your cursor on the suppression operator. Presione (Ctrl + . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl + .) to trigger the Quick Actions and Refactorings menu. A continuación, seleccione una de las siguientes opciones:Next, select from one of the following:

  • Para quitar el operador por completo, seleccione Quitar operador (conservar semántica) :To remove the operator completely, select Remove operator (preserves semantics):
Code fix to remove suppression operator
Corrección de código para quitar el operador de supresiónCode fix to remove suppression operator
  • Para negar la expresión, seleccione Negar expresión (cambiar semántica) :To negate the expression, select Negate expression (change semantics):
Code fix to negate expression
Corrección de código para negar expresiónCode fix to negate expression
  • También se puede negar la expresión con el nuevo patrón de C# 9 not si está disponible en el proyecto:You can also negate the expression with the new C# 9 not pattern if it is available in your project:
Code fix to negate expression using not
Corrección de código para negar expresión con notCode fix to negate expression using not

Ya se puede generar propiedades al generar un constructor en un tipo.You can now generate properties when generating a constructor in a type. Coloque el cursor sobre la instancia.Place your cursor on the instance. Presione (Ctrl + . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl + .) to trigger the Quick Actions and Refactorings menu. Seleccione Generar constructor en <QualifiedName> (con propiedades) .Select Generate constructor in <QualifiedName> (with properties).

Generate properties when generating constructor
Generar propiedades al generar constructorGenerate properties when generating constructor
  • Ahora, Información rápida muestra el identificador de diagnóstico junto con un vínculo de ayuda que le llevará fácilmente a nuestra documentación para obtener más información sobre las advertencias y errores sobre el código.Quick Info now displays the diagnostic ID along with a help link where you can easily navigate to our documentation to learn more about warnings and errors in your code.
Quick Info Diagnostic ID and Help Link
Identificador de diagnóstico y vínculo de ayuda de Información rápidaQuick Info Diagnostic ID and Help Link
  • Ahora, hay una acción rápida para agregar un atributo de visualización del depurador a una clase.There is now a quick action to add a debugger display attribute to a class. Esto permite anclar propiedades del depurador mediante programación en el código.This allows you to pin properties within the debugger programmatically in your code. Coloque el cursor en el nombre de clase.Place your cursor on the class name. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Seleccione Agregar atributo "DebuggerDisplay" .Select Add ‘DebuggerDisplay` attribute. Esto agregará el atributo de visualización del depurador a la parte superior de la clase y generará un método automático que devuelve ToString(), que puede editarse para devolver el valor de propiedad que quiera anclar en el depurador.This will add the debugger display attribute to the top of your class and generate an auto method that returns ToString() which you can edit to return the property value you want pinned in the debugger.
Add Debugger Display Attribute
Adición de un atributo de visualización del depuradorAdd Debugger Display Attribute
  • Ahora, hay una corrección de código de comparaciones o asignaciones accidentales a la misma variable.There is now a code fix for accidental assignments or comparisons to the same variable. Coloque el cursor en la advertencia.Place your cursor on the warning. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. En el caso de las asignaciones accidentales, seleccione Asignar a .value.For accidental assignments, select Assign to .value. En el caso de comparaciones accidentales, seleccione Comparar con .value.For accidental comparisons, select Compare to .value.
Accidental Assignments Code Fix
Corrección de código de asignaciones accidentalesAccidental Assignments Code Fix
Accidental Comparisons Code Fix
Corrección de código de comparaciones accidentalesAccidental Comparisons Code Fix
  • Ahora, se pueden generar operadores de comparación para tipos que implementan IComparable.You can now generate comparison operators for types that implement IComparable. Coloque el cursor en la clase o en IComparable.Place your cursor either inside the class or on IComparable. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Seleccione Generate comparison operators (Generar operadores de comparación).Select Generate comparison operators. Se generará texto reutilizable con los operadores de comparación.A boiler plate will be generated for you with the comparison operators.
Generate Comparison Operators
Generación de operadores de comparaciónGenerate Comparison Operators
  • Ahora, se pueden generar operadores IEquatable al generar .Equals para structs.You can now generate IEquatable operators when generating .Equals for structs. Ya había una refactorización para Generar "Equals" y GetHashCode en relación con los tipos de valor.We already had a refactoring to Generate Equals and GetHashCode for value types. Ahora, con los structs, agregaremos el elemento IEquatable automáticamente, así como los operadores Equals y Not Equals.Now with structs we will automatically add the IEquatable as well as the equals and not equals operators for you. Coloque el cursor dentro del struct.Place your cursor within the struct. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Seleccione Generar "Equals(object)" .Select Generate Equals(object).
Generate IEquatable Operators
Generación de operadores IEquatableGenerate IEquatable Operators
  • Ahora, se pueden crear y asignar propiedades o campos para todos los parámetros de constructor sin usar.You can now create and assign properties or fields for all unused constructor parameters. Ya había una acción rápida que permitía hacer esto con un parámetro individual, pero ahora se puede llevar a cabo con todos los parámetros sin usar a la vez.We already had a quick action that allowed you to do this on an individual parameter, but now you can do it for all unused parameters at once. Coloque el cursor en cualquiera de los parámetros restantes.Place your cursor on any of the remaining parameters. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Para crear e inicializar propiedades, seleccione Create and assign remaining as properties (Crear y asignar el resto como propiedades).To create and initialize properties, select Create and assign remaining as properties. Para crear e inicializar campos, seleccione Create and assign remaining as fields (Crear y asignar el resto como campos).To create and initialize fields, select Create and assign remaining as fields.
Create and Assign Remaining Fields
Creación y asignación de campos restantesCreate and Assign Remaining Fields
Create and Assign Remaining Properties
Creación y asignación de propiedades restantesCreate and Assign Remaining Properties
  • Ahora, hay una finalización de IntelliSense en los literales de cadena DateTime y TimeSpan.There is now IntelliSense completion in DateTime and TimeSpan string literals. Coloque el cursor dentro del literal de cadena DateTime o TimeSpan y presione (Ctrl+barra espaciadora).Place your cursor inside the DateTime or TimeSpan string literal and press (Ctrl+Space). Aparecerán las opciones de finalización y una explicación de lo que cada carácter significa.You will then see completion options and an explanation as to what each character means. Se proporcionará el formato de fecha y hora y un ejemplo.Both the date time format and an example will be provided.
IntelliSense Completion in DateTime and TimeSpan
Finalización de IntelliSense en los literales de cadena DateTime y TimeSpanIntelliSense Completion in DateTime and TimeSpan string literals
  • Ahora, se puede agregar un parámetro en el cuadro de diálogo Cambiar firma.You can now add a parameter within the Change Signature dialog. Coloque el cursor dentro de la firma del método.Place your cursor within the method’s signature. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones.Press (Ctrl+.) to trigger the Quick Actions and Refactorings menu. Seleccione Cambiar firma.Select Change signature. Se abrirá el siguiente cuadro de diálogo, en el que ahora podrá seleccionar Agregar para agregar un parámetro.The following dialog will open where you can now select Add to add a parameter. Cuando seleccione Agregar, se abrirá el nuevo cuadro de diálogo Agregar parámetro,Once you select Add, the new Add Parameter dialog will open. que permite agregar un nombre de tipo y un nombre de parámetro.The Add Parameter dialog allows you to add a type name and a parameter name. Puede optar por hacer que el parámetro sea obligatorio u opcional con un valor predeterminado.You can choose to make the parameter required or optional with a default value. Tras ello, puede agregar un valor en el sitio de llamada y elegir un argumento con nombre para ese valor, o bien introducir una variable TODO.You can then add a value at the call site and choose a named argument for that value or you can introduce a TODO variable. La variable TODO coloca un elemento TODO en el código para recorrer cada error y pasar por cada sitio de llamada de manera independiente y decidir qué omitir y qué no.The TODO variable puts a TODO in your code so you can visit each error and go through each call site independently and decide what to pass. En el caso de los parámetros opcionales, existe la opción de omitir el sitio de llamada por completo.For optional parameters you have the option to omit the call site completely.
Change Signature Dialog
Cuadro de diálogo Cambiar firmaChange Signature Dialog
Add Parameter Dialog
Cuadro de diálogo Agregar parámetroAdd Parameter Dialog
  • Ahora, los autores de analizadores pueden usar CompletionProviders en las finalizaciones de IntelliSense al enviar sus analizadores con NuGet.Analyzer authors can now use CompletionProviders for IntelliSense completions when shipping their analyzers with NuGet. Antes, los autores de bibliotecas debían crear un elemento VSIX por separado, ya que CompletionProviders solo estaba disponible en VSIX.Before, library authors would have to create a separate VSIX since CompletionProviders was only available in VSIX. Ahora, los autores de bibliotecas pueden implementar finalizaciones de IntelliSense en el paquete NuGet en el que se encuentran los analizadores, y no tienen que hacerlo por separado.Now library authors can implement IntelliSense completions in the NuGet package where their analyzers are, and they don’t need to do it separately. Los proveedores de finalización implementados en paquetes NuGet también harán sugerencias específicas de proyectos individuales y funcionarán automáticamente en cada IDE compatible con la característica.Completion providers implemented in NuGet packages will also provide suggestions specific to individual projects and will automatically work in each IDE supporting the feature.

RazorRazor

Pruebe el nuevo editor de Razor, que todavía se encuentra en fase experimental e incluye el Protocolo de servidor de lenguaje (LSP), con todos los archivos de Razor (.cshtml/.razor). Para activarlo, active la opción Enable experimental Razor editor (Habilitar editor de Razor experimental), en versión preliminar.Try out the new experimental Language Server Protocol (LSP) powered Razor editor with all Razor files (.cshtml/.razor) by selecting the Enable experimental Razor editor preview feature.

Explorador de pruebasTest Explorer

Se han agregado las opciones Run/Debug All Tests In View (Ejecutar/Depurar todas las pruebas en la vista) al Explorador de pruebas.Run/Debug All Tests In View have been added to the Test Explorer. Reemplazan los comandos Ejecutar todas las pruebas y Depurar todas las pruebas en el Explorador de pruebas.These commands replace where the Run All Tests and Debug All Tests commands appeared in the Test Explorer. El objetivo de este cambio es aclarar que estos comandos respetan los filtros del Explorador de pruebas, de modo que solo se ejecutan las pruebas visibles en la ventana.This change clarifies that these commands honor the filters of the Test Explorer so that only tests visible in window are run. Esto incluye los filtros de las columnas y los de los cuadros de búsqueda.This includes both column filters and search box filters.

Test Explorer Run/Debug All Tests in View commands
Comandos Ejecutar/depurar todas las pruebas en la vista del Explorador de pruebasTest Explorer Run/Debug All Tests in View commands

Los comandos Ejecución global/Depurar todas ahora solo aparecerán en el menú de pruebas de nivel superior.The Global Run/Debug All commands will now only appear in the top-level Test menu. Ya no se incluyen en la barra de herramientas del Explorador de pruebas ni en el menú contextual de ninguna vista de las ventanas de pruebas.They are no longer included in the Test Explorer toolbar or context menu of any test window view. Cuando se desencadena desde el Explorador de pruebas, el comando Analizar cobertura de código para todas las pruebas ahora se aplica también a las vistas de las ventanas de pruebas.When triggered from the Test Explorer, the Analyze Code Coverage for All Tests now applies to the test window views as well.

Teclas de método abreviado:Short-cut Keys:

  • Ctrl+R, A: Ejecutar todas las pruebas; el comando global siempre ejecuta todas las pruebas.Ctrl R, A - Run All Test - Global command always runs all tests
  • Ctrl+R, V: Run All Tests In View (Ejecutar todas las pruebas en la vista); solo es un comando válido si una ventana de pruebas (Explorador de pruebas, Lista de reproducción, Ventana de Live Unit Testing) se encuentra activa.Ctrl R, V - Run All Tests In View - Only a valid command when a test window (Test Explorer, Playlist, Live Unit Testing Window) are active windows
  • Ctrl+R, Ctrl+A: Depurar todas las pruebas; el comando global siempre depura todas las pruebas.Ctrl R, Ctrl A - Debug All Test - Global command always debugs all tests
  • Ctrl+R, Ctrl+V: Debug All Tests In View (Depurar todas las pruebas en la vista); solo es un comando válido si una ventana de pruebas (Explorador de pruebas, Lista de reproducción, Ventana de Live Unit Testing) se encuentra activa.Ctrl R, Ctrl V - Debug All Tests In View - Only a valid command when a test window (Test Explorer, Playlist, Live Unit Testing Window) are active windows

instantáneasDebugger

Visualización de objetos COM administrados mediante punteros nativosViewing Managed COM Objects Through Native Pointers

Esta característica descodifica automáticamente los objetos COM administrados a los que hacen referencia los punteros nativos, lo que permite inspeccionar por completo los valores en la ventana de variables locales.This feature automatically decodes managed COM objects referenced by native pointers allowing you to fully inspect values in the Locals window. Puede encontrar información más detallada aquí, en el blog de Visual Studio.You can find more details here at the Visual Studio blog.

generador de perfilesProfiler

Nueva herramienta Contadores de rendimiento de .NETNew .NET Performance Counters Tool

.NET Performance Counters Tool
Herramienta Contadores de rendimiento de .NET.NET Performance Counters Tool

Visualice contadores de dotnet directamente desde el generador de perfiles de Visual Studio mediante la herramienta de contadores de rendimiento de .NET.Visualize dotnet counters right from within the Visual Studio Profiler using the .NET Performance Counters Tool. Para probar la herramienta, vaya a Depurar -> Generador de perfiles de rendimiento y marque la herramienta de contadores de rendimiento de .NET (.NET Performance Counters Tool).To try out the tool go to Debug -> Performance Profiler -> Checkmark .NET Performance Counters Tool.

XamarinXamarin

  • Se han introducido correctores de código para los tipos más comunes de problemas que experimentan los usuarios con archivos de diseño de Android.Code fixers have been introduced for the most common types of problems experienced by users with Android layout files.
  • La experiencia de selección de plantillas de Xamarin.Forms ahora tiene un aspecto moderno y más ilustrativo, y las plantillas Control flotante y Pestañas ahora usan Shell.The Xamarin.Forms template selection experience now has a fresh and more illustrative look, and the Flyout and Tabbed templates now utilize Shell. Lea más información acerca de Shell aquí.Read more about Shell here. Si por alguna razón no desea usar Shell, use la plantilla Aplicación en blanco.If for some reason you don't wish to use Shell, use the Blank template.
New Xamarin.Forms template selection experience
Eligiendo una plantilla de Xamarin.FormsChoosing a Xamarin.Forms template

Herramientas XAML (WPF, UWP y Xamarin.Forms)XAML Tools (WPF, UWP & Xamarin.Forms)

Recarga activa de XAML:XAML Hot Reload:

  • Mejoras en la barra de herramientas en la aplicación: Hemos refinado aún más la experiencia de la barra de herramientas en la aplicación que forma parte del flujo de trabajo de las herramientas de Recarga activa de XAML para WPF y UWP.In-app Toolbar Improvements: We have further refined the in-app toolbar experience that is part of the XAML Hot Reload tooling workflow for WPF & UWP. Los cambios incluyen una barra de herramientas más corta para que ya no abarque la aplicación en ejecución y un cambio en el mecanismo de contraer que, al hacer clic en él, contraerá el texto de Recarga activa de XAML primero y contraerá la barra por completo al segundo clic.Changes include a shorter toolbar so that it no longer covers the running application, and a change in the collapse mechanism which when clicked will now collapse the XAML Hot Reload text first, then collapse the bar fully on the second click.

Diseñador XAML:XAML Designer:

  • Compatibilidad expandida de datos en tiempo de diseño para WPF y UWP: En esta versión, se presenta una nueva característica de datos en tiempo de diseño para los desarrolladores de WPF .NET Core y UWP.Expanded Design-time Data Support for WPF & UWP: In this release we are introducing a new design-time data feature for WPF .NET Core and UWP developers. Esta nueva funcionalidad ampliará la lista actual de propiedades de tiempo de diseño accesibles mediante el uso del prefijo "d:".This new capability will extend the current list of accessible design-time properties through the use of the d: prefix. Esta característica resultará familiar a los desarrolladores de Xamarin.Forms, ya que ofrece el mismo enfoque de usar un prefijo "d:" para indicar una propiedad que solo se debe representar en tiempo de diseño y que nunca se compila en la aplicación en ejecución, lo que hace que sea muy seguro usarla para realizar pruebas.This feature will be familiar to Xamarin.Forms developers, as it makes available the same approach of using a “d:” prefix to indicate a property that should only be rendered at design-time and never gets compiled into the running app making it very safe to use for design time UI validation. En esta versión se admiten todos los controles de serie de WPF y UWP y, en futuras versiones, está previsto admitir controles personalizados y de terceros.In this release we support all the out-of-the-box controls for WPF and UWP and plan to support 3rd party and custom controls in future releases.
  • Botón de actualización del Diseñador XAML: Hemos agregado un botón de actualización al Diseñador XAML; este nuevo icono se encuentra en el área de iconos inferior izquierda cerca del indicador de nivel de zoom.XAML Designer Refresh Button: We have added a refresh button to the XAML designer, this new icon can be found in the bottom-left icon area near the zoom level indicator. Esta acción de actualización realiza el restablecimiento equivalente a cerrar la vista de diseñador y volver a abrirla para las situaciones excepcionales en las que esto sea necesario para resolver un problema de representación.This refresh action does the equivalent reset of closing the designer view and re-opening it for the rare situations where this is required to resolve a rendering issue. Esta característica está disponible para los desarrolladores de WPF .NET Core y UWP.This feature is available for WPF .NET Core and UWP developers.

Editor de código XAML:XAML Code Editor:

  • Visualizador de colores: Hemos refinado aún más nuestro nuevo visualizador de color en el editor de código XAML para los proyectos WPF .NET Core, WPF .NET Framework y Xamarin.Forms.Color Visualizer: We have further refined our new color visualizer in the XAML code editor for WPF .NET Core, WPF .NET Framework and Xamarin.Froms projects. En esta versión se ha agregado compatibilidad para la visualización de colores procedentes de recursos, anteriormente no admitida en la última versión preliminar.In this release we have added support for visualizing colors coming from resources, which was previously not supported in the last preview.
Inline Color Previews in XAML Code Editor
Vistas previas de color en línea en el editor de código XAMLInline Color Previews in XAML Code Editor

Mostrar elementos del cuadro de herramientas de un paquete NuGet sin una referencia de paqueteShow Toolbox items from a NuGet package without having a package reference

Muchos autores de bibliotecas de controles quieren que sus controles se vean en el cuadro de herramientas, incluso cuando el proyecto actual no haya hecho referencia aún a dicha biblioteca, ya que ello contribuye a la capacidad de detección.Many control library authors want their controls to be seen in the Toolbox even when the current project hasn't referenced the library yet, as this helps with discoverability. Históricamente, los SDK de .NET Framework de WPF han logrado esto usando entradas del Registro, pero esto no es viable en .NET Core.WPF .NET Framework SDKs have historically accomplished this using registry entries, but this is not supported by .NET Core. En .NET Core de WPF, ahora el cuadro de herramientas se puede rellenar con controles de los archivos VisualStudioToolsManifest.xml que están en paquetes NuGet de .NET Core de WPF, en carpetas de reserva de NuGet.For WPF .NET Core, Toolbox can now be populated with controls from VisualStudioToolsManifest.xml files found within WPF .NET Core NuGet packages in NuGet fallback folders. Para obtener más información, vea la documentación del repositorio de GitHub de extensibilidad del diseñador XAML.For more details, see the documentation in the XAML Designer Extensibility GitHub repo.

Windows FormsWindows Forms

Diseñador de Windows Forms para .NET CoreWindows Forms Designer for .NET Core

El diseñador de Windows Forms para los proyectos de .NET Core ya está disponible.The Windows Forms designer for .NET Core projects is now available. Para habilitar el diseñador en Visual Studio, vaya a Herramientas > Opciones > Entorno > Características de versión preliminar y seleccione la opción Usar la versión preliminar del diseñador de Windows Forms para aplicaciones .NET Core.To enable the designer in Visual Studio, go to Tools > Options > Environment > Preview Features and select the Use the preview Windows Forms designer for .NET Core apps option.

Ahora, esta versión admite los siguientes controles, aparte de otras mejoras:In this release the following controls are now supported along with other improvements:

  • UserControl e infraestructura de controles personalizadosUserControl and custom controls infrastructure
  • TableLayoutPanelTableLayoutPanel
  • Aspectos básicos de compatibilidad de controles de tercerosFundamentals for third-party controls support
  • Aspectos básicos de compatibilidad de enlace de datosFundamentals for data binding support
  • Mejoras en la interacción del diseñador con TableLayoutPanelImprovements in designer interaction with the TableLayoutPanel

Correcciones de erroresBug Fixes

Principales problemas corregidos en Visual Studio 2019, versión 16.7.0Top Issues Fixed in Visual Studio 2019 version 16.7.0

  • Se ha corregido el error de instalación del componente del proveedor de WMI.Fixed WMI Provider component installation failure.
  • Se ha corregido un problema que provocaba que los usuarios no pudiesen ver el progreso de la ejecución de la prueba haciendo clic con el botón izquierdo en la parte inferior de la barra.Fixed an issue where users were not able to see test run progress by clicking the left button at the bottom of the bar.
  • Rendimiento mejorado del descubrimiento de planes de facturación disponibles de Visual Studio Codespace.Improved performance of discovering available Visual Studio Codespace billing plans.
  • Al crear una instancia de Visual Studio Codespace, se ha cambiado el tiempo de suspensión predeterminado de 30 minutos a 3 horas.When creating a Visual Studio Codespace, we changed the default suspend time from 30minutes to 3 hours.
  • Se ha corregido un error que provocaba que la ventana de cambios de Git informase al usuario de que tenía confirmaciones entrantes o salientes, cuando no las había.Fix bug where the Git Changes window informs the user they have incoming/outgoing commits, when in fact they have none.
  • Estabilidad mejorada de las Herramientas de diagnóstico y el Generador de perfiles de rendimiento.Improved stability of the Diagnostic Tools and Performance Profiler.
  • Se ha solucionado una incidencia que provocaba que la extensión de Visual Studio de Azure Sphere no se actualizase automáticamente debido a un error de coincidencia de versión secundaria.Addressed an issue where Azure Sphere Visual Studio extension will not be automatically updated due to a minor version mismatch. Con la corrección, Azure Sphere se podrá actualizar automáticamente durante la ejecución del actualizador automático de VSIX.With the fix, Azure Sphere will be able to get automatically updated when the VSIX auto updater runs.

De Developer CommunityFrom Developer Community


Problemas conocidosKnown Issues

Consulte todos los problemas abiertos y las soluciones alternativas disponibles en Visual Studio 2019 en el vínculo siguiente.See all open issues and available workarounds in Visual Studio 2019 by following the below link.


ComentariosFeedback

Estaríamos encantados de ayudarle.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.


Parte superior de la página

Top of Page