Notas de la versión 17.0 de 2022Logo Visual Studio 2022


Sugerencia

Vea las grabaciones del evento de lanzamiento de Visual Studio 2022 para obtener información sobre las novedades, escuchar sugerencias & trucos y descargar swag digital gratuito.

Developer Community | Guía básica de Visual Studio 2022 | Requisitos del sistema | Compatibilidad | Código distribuible | Términos de licencia | Blogs | Problemas conocidos de la versión más reciente | Novedades de la documentación de Visual Studio


Haga clic en un botón para descargar la versión más reciente de Visual Studio 2022. Para obtener instrucciones sobre cómo instalar y actualizar Visual Studio 2022, vea Actualización Visual Studio 2022 a la versión más reciente. Consulte también las instrucciones sobre cómo efectuar una instalación sin conexión.

Download Community Button Download Professional Button Download Enterprise Button

Visite la página visualstudio.microsoft.com/downloads para descargar otros Visual Studio productos de 2022.

Novedades de Visual Studio 2022, versión 17.0

Visual Studio versiones 17.0 de 2022

Blog de Visual Studio 2022

El Blog de Visual Studio 2022 es la fuente oficial de información sobre el producto que ofrece el equipo de ingeniería de Visual Studio. Encontrará información detallada sobre las versiones de Visual Studio 2022 en las publicaciones siguientes:


17.0.2.0 Visual Studio 2022, versión 17.0.1 2

publicado el 30 de noviembre de 2021

Problemas solucionados en esta versión de 17.0.2

  • Corrección de codegen silencioso y no correcto con operaciones de tipo memmove con datos superpuestos
  • Se ha agregado mensajería en la ventana de salida que aparece cuando se usan módulos de C++ o unidades de encabezado. Contiene problemas conocidos actualmente al usar módulos o unidades de encabezado con IntelliSense.
  • Se ha corregido el problema por el que las páginas de información general de CMake y el editor CMakeSettings se atascaba en "Esperando a que IntelliSense termine de inicializarse...".
  • Se ha corregido un problema que provocaba que se creara una instancia de un destructor con plantilla implicado en una jerarquía de clases con inicializadores de miembro de datos demasiado pronto, lo que podría dar lugar a diagnósticos incorrectos sobre los usos de tipos indefinidos u otros errores.
  • Se ha agregado Python 3.9.7 a la carga de trabajo de Python. Se quitó Python 3.7.8 debido a una vulnerabilidad de seguridad.
  • Se ha corregido un problema por el que Buscar siguiente (F3) y Buscar siguiente seleccionado (Ctrl+F3) a veces saltaban a la primera aparición del archivo en lugar de a la siguiente.
  • Resuelva el problema por el que las fechas de las interfaces de usuario del control de versiones no respetaban la configuración regional del sistema operativo del cliente.
  • Solucionar un problema en Windows 11 en el que los clientes establecen el Terminal Windows como predeterminado y el depurador no puede detener la depuración de una aplicación de consola correctamente e impedir futuros inicios.

De Developer Community

Developer Community tiene una lista completa de correcciones disponibles en la versión 17.0.


17.0.1.0 Visual Studio 2022, versión 17.0.1

publicado el 16 de noviembre de 2021

Problemas solucionados en esta versión de 17.0.1

  • Se ha corregido un bloqueo al usar compilaciones por lotes.
  • Se ha corregido un bloqueo al iniciar proyectos de Xamarin.Forms Recarga activa de XAML habilitado.

De Developer Community

Developer Community tiene una lista completa de correcciones disponibles en la versión 17.0.

17.0.0.0 Visual Studio 2022, versión 17.0.0

publicado el 8 de noviembre de 2021

Resumen de las novedades de esta versión de Visual Studio 2022, versión 17.0.0

64 bits

  • devenv.exe ahora es solo de 64 bits.

Azure Cloud Services

  • Ahora se admiten proyectos de Azure Cloud Service (clásico) y Azure Cloud Service (soporte extendido).

C++

  • Las herramientas de compilación v143 ahora están disponibles mediante el instalador de Visual Studio, así como las herramientas de compilación independientes.
  • La nueva experiencia Recarga activa está ahora disponible para aplicaciones nativas de C++ cuando se ejecutan en el depurador. Admite proyectos MSBuild y CMake. Para más información, consulte a continuación nuestra sección Recarga activa.
  • Ahora puede compilar y depurar de forma nativa en WSL2 sin establecer una conexión SSH. Se admiten proyectos de CMake multiplataforma y proyectos de Linux basados en MSBuild.
  • Visual Studio ahora admite la opción buildPresets.targets en CMakePresets.json. Esta opción le permite crear un subconjunto de destinos en el proyecto de CMake.
  • El menú Proyecto en los proyectos de CMake se ha simplificado y expone opciones para eliminar la caché y volver a configurarla y para ver la caché.
  • Las páginas de información general de CMake se han actualizado para admitir CMakePresets.json.
  • Marca implementada para generar dependencias de módulo de C++20 para proyectos de CMake como se describe /scanDependencies en P1689r4. Se trata de un paso hacia la compatibilidad con la creación de proyectos basados en módulos con CMake y estamos trabajando para completar esta compatibilidad en versiones posteriores.
  • Ahora puede depurar procesos que se ejecutan en sistemas remotos desde Visual Studio con LLDB.
  • Hemos actualizado la versión de CMake que se incluye con Visual Studio a la versión 3.21. Vea las notas de la versión de CMake 3.21 para obtener detalles sobre lo que está disponible.
  • Las herramientas de LLVM que se incluyen con Visual Studio se han actualizado a LLVM 12. Vea las notas de la versión de LLVM para obtener más información.
  • El conjunto de herramientas de MSVC ahora tiene como valor predeterminado el hash de origen SHA-256 en los registros de depuración. Anteriormente, en el conjunto de herramientas se usaba MD5 de forma predeterminada para el hash de origen.
  • Ahora la carga de trabajo Desarrollo de juegos con C++ instala la versión más reciente del motor Unreal con compatibilidad con Visual Studio 2022.
  • Se han realizado mejoras en IntelliSense de C++ al proporcionar resaltado de navegación y sintaxis para tipos de módulos importados y unidades de encabezado.
  • Se ha mejorado el rendimiento de IntelliSense de C++ mediante la optimización del uso de encabezados almacenados en caché y el acceso a la base de datos de símbolos, lo que proporciona tiempos de carga mejorados para acceder al código.
  • El linter de código de IntelliSense para C++ está ahora activado de manera predeterminada, lo que proporciona sugerencias instantáneas a medida que escribe y corrige sugerencias para defectos de código comunes.
  • Compatibilidad con libfuzzer en el modificador -fsanitize=fuzzer. Vea la documentación para obtener más información.
  • Hemos mejorado la detección de desreferencia de punteros nulos en nuestras herramientas de análisis de código.
  • El análisis de código ahora exige que se deben comprobar los valores devueltos de las funciones anotadas con _Check_return_ o _Must_inspect_result_.
  • Se ha agregado compatibilidad con gsl::not_null para analizar código.
  • Se ha actualizado a NDK r21 LTS en la carga de trabajo Desarrollo móvil con C++.
  • Los encabezados de AMP de C++ están en desuso. Al incluir <amp.h> en un proyecto de C++ se generarán errores de compilación. Para silenciar los errores, defina _SILENCE_AMP_DEPRECATION_WARNINGS. Consulte nuestros vínculos de desuso de AMP para obtener más detalles.

Depuración y diagnóstico

  • Mejoras en el cuadro de diálogo Asociar al proceso
  • Mejoras del asistente de excepciones
  • Force Run to Click (Forzar ejecución hasta hacer clic)
  • Análisis de diagnóstico de volcado de memoria
  • Hemos publicado un nuevo tipo de punto de interrupción denominado Punto de interrupción dependiente, que permite configurar un punto de interrupción para que se habilite solo si primero se alcanza otro punto de interrupción.
  • Hemos agregado más actualizaciones al nodo Orígenes externos; ahora puede ver el módulo en el subnodo "Módulos sin orígenes" y cargar los símbolos desde el Explorador de soluciones.
  • Mejoras en el medianil del punto de interrupción
  • Punto de interrupción temporal
  • Arrastre y colocación del punto de interrupción
  • Nodo de orígenes externos en el Explorador de soluciones
  • Mejoras en el cuadro de diálogo Asociar al proceso

Personalización

  • Pestañas de color agregadas para pestañas verticales y horizontales
  • Se ha agregado theme pack y se ha trabajado con VS Code autores de temas para iniciar la colección de temas personalizados.
  • Convertidor de temas creado para convertir VS Code temas para que funcionen en Visual Studio 2022
  • Se ha agregado la funcionalidad para sincronizar Visual Studio tema con Windows tema
  • Se han agregado nuevas funcionalidades de administración de documentos que incitar a personalizar el ancho de tabulación, el documento activo en negrita y el botón cerrar adicional en docwell.

Editor

  • Se ha agregado la navegación por subpalabra
  • El autoguardado ya está disponible como característica en versión preliminar
  • Experiencia de copiado/pegado de varios símbolos de inserción

Extensibilidad

  • Se han quitado API de los ensamblados Microsoft.VisualStudio.Language.Client
  • El SDK de VS contiene varios cambios importantes y las extensiones de Visual Studio 2019 no funcionarán en 2022. Para obtener más información, vea la documentación sobre el VSSDK.
  • Los ensamblados de referencia del SDK de VS ya no están instalados en la carpeta VSSDK\VisualStudioIntegration\Common\Assemblies. Si su compilación se basaba en estos ensamblados, realice la migración del proyecto para usar paquetes NuGet en su lugar. En el caso de escenarios sin conexión:
    1. Mantenga una fuente NuGet en la organización desde la que restaurar los paquetes NuGet.
    2. Compruebe los archivos binarios.
  • Se han agregado correcciones de cambios importantes de ILanguageClient

Cloud Services

  • Azurite se usará para la emulación local de Azure Storage en lugar de la anterior y ya no se desarrollará activamente Azure Storage Emulator.

Herramientas de Git

  • Compatibilidad con varios repositorios con una marca de versión preliminar para cualquier solución que abarque distintos repositorios (es decir, soluciones con proyectos hospedados en repositorios de Git diferentes)
  • Publicar en Azure DevOps ahora es totalmente compatible con la experiencia de creación del repositorio git
  • Mejoras en la barra de estado, incluida una nueva capacidad para ver y abrir repositorios desde un VS vacío y mostrar un recuento de confirmaciones no superadas
  • El menú de desbordamiento de la ventana Git Changes (Cambios de Git) ahora está disponible para repositorios solo locales con operaciones de Git adicionales
  • Barra de herramientas de diferencias unificadas que contiene el número de líneas agregadas o eliminadas y una opción de configuración reconocible
  • Mejoras en los detalles de confirmación, incluida una interfaz de usuario más dinámica y fácil de usar

Menú Ayuda

  • Durante la versión 17.0, hemos renovado el menú Ayuda con Introducción material y útiles Sugerencias/trucos.
  • Proporciona más colaboración con nuestro equipo de desarrollo mediante la adición de elementos como el acceso a Developer Community, notas de la versión, la hoja de ruta del producto Visual Studio y nuestras páginas de redes sociales.

Recarga activa experiencia

  • Recarga activa ahora está disponible para los desarrolladores de .NET a través del depurador de Visual Studio y sin el depurador para muchos tipos de aplicación de .NET 6
  • Recarga activa ahora está disponible para los desarrolladores de C++ al usar Visual Studio Debugger

Para más información, consulte el vínculo anterior.

IntelliCode

  • Las finalizaciones de línea completa predicen el siguiente fragmento de código de C# en función del contexto actual y lo presentan como una sugerencia alineada a la derecha del cursor.
  • Las finalizaciones de línea completa ahora son compatibles con las compilaciones más nuevas de JetBrains ReSharper. Tenga en cuenta que no se admite la actualización del contexto de finalización de línea basado en la selección de elementos de lista de finalizaciones personalizadas de ReSharpers; si es necesario, los usuarios de ReSharper pueden optar Visual Studio por usar intelliSense nativo en su lugar, como se documenta aquí.

JavaScript/TypeScript

  • Hemos publicado un nuevo tipo de proyecto JavaScript/TypeScript que compila proyectos de JavaScript/TypeScript independientes con herramientas adicionales. Podrá crear proyectos de Angular y React en Visual Studio con la versión del marco instalada en el equipo.
  • Las pruebas de JavaScript y TypeScript ya están disponibles en el Explorador de pruebas de Visual Studio.
  • GUI de NPM disponible, por lo que ahora puede descargar módulos de NPM de la misma manera que descarga paquetes NuGet

SDK de .NET 6

  • El SDK de .NET 6 se incluye en Visual Studio 2022

Productividad de .NET

  • Con la introducción de la refactorización de parámetros se puede mover un nuevo parámetro de la implementación del método a sus llamadores.
  • Track Value Source (Seguimiento de valor de origen) para el análisis del flujo de datos
  • Opción de subrayado de las variables que se reasignan
  • Se ha agregado la opción de búsqueda en el cuadro de diálogo Generar invalidaciones
  • La información rápida de las etiquetas XML <code> ahora conserva los espacios en blanco y los bloques CDATA
  • La ventana Buscar todas las referencias ahora agrupará los proyectos de varios destinos
  • Refactorización para quitar tipos repetitivos en Visual Basic
  • Ir a implementación ya no llevará a los miembros con declaraciones abstractas, que también se invalidan.
  • Sincronización de espacios de nombres para que coincidan con la estructura de carpetas del Explorador de soluciones
  • Configuración del análisis de código en segundo plano desde el Explorador de soluciones
  • Ahora la opción de tipos de referencia que aceptan valores NULL está habilitada de forma predeterminada para los nuevos proyectos de .NET
  • Refactorización del espacio de nombres con ámbito de archivo de C# 10.0
  • La opción Navigate to decompiled sources (Navegar a orígenes descompilados) ahora está activada de manera predeterminada
  • Refactorización para preferir la comprobación de valores NULL sobre la comprobación de tipos
  • Los comentarios XML ahora generarán automáticamente una etiqueta <exception> cuando un método inicie excepciones explícitamente
  • Ahora la opción Inheritance Margin (Margen de herencia) está habilitada de forma predeterminada

Lenguajes de programación

  • C# 10

Editor de Razor (ASP.NET Core)

  • Se han reducido las inmovilzaciones de la interfaz de usuario y se ha mejorado el rendimiento en el inicio de la solución
  • Coloración semántica más rápida hasta el doble en algunas soluciones
  • Compatibilidad con F7 (ver código) en archivos de Razor
  • Compatibilidad con fragmentos de código en archivos de Razor, por lo que se puede completar una sesión de fragmento de código pulsando una única vez el tabulador, en lugar de tener que hacerlo dos veces
  • Mejor formato en bloques de @code cuando hay componentes de Razor y HTML anidados
  • Compatibilidad con Recarga activa en archivos de Razor
  • Mejoras en el rendimiento
  • Mejoras de formato y sangría
  • Nuevos colores del editor de Razor
  • Los elementos TagHelper ahora están coloreados y tienen compatibilidad con la clasificación de información rápida e informaciones sobre herramientas de finalización
  • Resaltado de llave angular y navegación para construcciones de Razor
  • Los comentarios ahora tienen finalización automática, sangría inteligente, inclusión automática de continuaciones de comentarios y navegación por comentarios en bloque

Pruebas remotas

  • Versión preliminar experimental muy temprana de la habilitación de ejecución de pruebas en entornos remotos, como contenedores Linux, WSL y a través de conexiones SSH.

Compatibilidad con herramientas de prueba

  • Mostrar en el Explorador de pruebas
  • Las versiones nuevas de la plataforma de pruebas, a partir de la versión 17.0, no podrán ejecutar pruebas genéricas ni pruebas por orden. Estas características específicas solo se incluían como parte de una versión anterior de MSTestv1 y no están en MSTestv2. Se observa muy poco uso de estas características y las pruebas por orden ahora se consideran contrarias a los procedimientos recomendados de pruebas.
  • Algunas experiencias de prueba no estarán disponibles en la versión 17.0, incluida la creación de nuevos archivos TestSettings y el editor TestSettings. Las series de pruebas seguirán siendo capaces de usar archivos TestSettings, pero TestSettings se ha reemplazado por RunSettings, y animamos a los usuarios a migrar una función y un rendimiento mejorados. Más información.
  • Las pruebas de carga web y las pruebas de IU codificadas admiten actualizaciones. Pruebas de IU codificadas y [pruebas de carga web](fin del ciclo de vida del servicio de pruebas de carga basadas en la nube | Azure DevOps blog (microsoft.com) quedaron oficialmente en desuso en 2019. Para minimizar el impacto en los usuarios, hay compatibilidad mínima con estas características en Visual Studio 2022. Se recomienda encarecidamente a los usuarios que se muevan de la prueba de IU codificada y la prueba de carga web.

Rellenado del cuadro de herramientas para los SDK de extensión de UWP

  • Ahora es necesario que los SDK de extensión de UWP declaren explícitamente los tipos que quieren que aparezcan en el cuadro de herramientas; para ello, deben enumerarlos en el archivo SdkManifest.xml. El comportamiento de las versiones anteriores de Visual Studio no cambia; omitirán la lista de controles del manifiesto y, en su lugar, enumerarán de forma dinámica los tipos de control en los ensamblados del SDK.

Ubicaciones de confianza

  • Hemos renovado la funcionalidad "Configuración de confianza" y ahora podemos mostrar una advertencia cada vez que código que no sea de confianza (por ejemplo, archivos, proyectos o carpetas) esté a punto de abrirse dentro del IDE.
  • Las comprobaciones de confianza se realizan ahora en el nivel de carpeta de la solución
  • Los proyectos creados por el usuario se agregan automáticamente a la lista de confianza
  • Los usuarios pueden omitir las comprobaciones de confianza en ubicaciones temporales creadas por Visual Studio

Actualizaciones, LTSC e implementación

  • Con Visual Studio 2022, habrá varias líneas de base de servicio admitidas simultáneamente que se liberarán en el período de caída y en la primavera. Para obtener más información, consulte la documentación Visual Studio ritmo de la versión y el Visual Studio del producto de 2022.
  • El nuevo instalador que se incluye con Visual Studio 2022 ahora tiene la capacidad de configurar de dónde debe obtenerse el producto Visual Studio sus actualizaciones. Esto le permite elegir actualizaciones de una LTSC diferente o, si se encuentra en un entorno empresarial administrado, puede configurar el cliente para obtener sus actualizaciones desde un diseño. La capacidad de configurar el origen para las actualizaciones es una nueva funcionalidad que se incluye con el Instalador de Visual Studio y, por tanto, el comportamiento también es aplicable a las versiones de nivel inferior de Visual Studio, como Visual Studio 2019. Para obtener información adicional sobre cómo configurar el canal de actualización, consulte la documentación de actualización Visual Studio actualización. Para obtener información adicional sobre cómo hacer que esto funcione para los diseños de red, consulte la guía Visual Studio administradores de red.
  • Los administradores de TI ahora pueden notificar problemas sin tener Visual Studio instalado.

Interfaz de usuario

  • Los iconos predeterminados se han actualizado.

Herramientas Web

  • La página de resumen Publicar ahora tiene acciones para iniciar o detener la depuración remota y la generación de perfiles en el menú "...". de la esquina superior derecha de la sección "Hospedaje".
  • La página Servicios conectados ahora tiene una acción para iniciar Explorador de Storage.
  • La plantilla "Vacío de ASP.NET Core" que se incluye con .NET 6 usa el paradigma nuevo de "API mínimas", para el que hemos empezado a agregar compatibilidad.
  • Azurite se usará para la emulación local de Azure Storage en lugar de la anterior y ya no se desarrollará activamente Azure Storage Emulator.
  • Puede agregar autenticación a la aplicación ASP.NET Core mediante Plataforma de identidad de Microsoft la experiencia Servicios conectados de Visual Studio.

Wpf Diseñador XAML para .NET Framework

  • El Diseñador XAML de WPF actual para .NET Framework se reemplaza por otro nuevo, basado en la misma arquitectura usada para el Diseñador XAML de WPF para .NET (.NET Core). La experiencia de Visual Studio será la misma, pero los proveedores de control de terceros deben admitir el modelo nuevo de extensibilidad, ya que el modelo anterior basado en .design.dll y Microsoft.Windows.Design.Extensibility está en desuso. Si ya ha creado una extensión .designtools.dll para .NET (.NET Core), esa misma extensión funcionará en el nuevo Diseñador XAML de WPF para .NET Framework. Consulte el documento sobre migración siguiente para obtener más información sobre cómo migrar al modelo de extensibilidad nuevo.

Recarga activa de XAML

  • Cambios en Recarga activa de XAML: cambios menores en la configuración y la barra de herramientas en la aplicación

XAML Live Preview

  • La versión preliminar en directo de XAML ya está disponible para los desarrolladores de WPF, UWP, WinUI y Xamarin.Forms que ejecutan sus aplicaciones en Android Emulator o como una aplicación de escritorio para UWP. Live Preview captura una interfaz de usuario de aplicaciones en ejecución y la incluye en una ventana acoplada dentro Visual Studio. Esto facilita el uso de Recarga activa de XAML para cambiar la aplicación mientras se ven esos cambios dentro del propio Visual Studio, sin necesidad de tabular entre la aplicación en ejecución y Visual Studio mientras se hacen cambios en el código XAML en directo.

Para más información, haga clic en el vínculo anterior.

Datos de ejemplo XAML

  • Ahora se agregarán datos de ejemplo de tiempo de diseño de forma predeterminada al crear controles DataGrid, ListBox y ListView desde el cuadro de herramientas en aplicaciones WPF. Para deshabilitar este comportamiento, desactive "Automatically add sample data on element creation" (Agregar automáticamente datos de ejemplo al crear elementos) en Herramientas > Opciones > Diseñador XAML.
  • Para obtener más información sobre los datos de ejemplo, consulte la documentación de datos de ejemplo.

Experiencia de enlace XAML mejorada

  • Hemos realizado una serie de mejoras para que el enlace de datos sea rápido y sencillo, como el acceso rápido al cuadro de diálogo Enlace de datos desde el Inspector de propiedad, la capacidad de establecer el enlace desde Acciones rápidas, la capacidad de elegir la propiedad a la que enlazar dentro del cuadro de diálogo Enlace de datos.

Para más información, haga clic en el vínculo anterior.

Problemas conocidos

Desarrollo móvil con .NET

Herramientas de Python

IntelliSense para C++

Detalles de las novedades de esta versión de Visual Studio 2022, versión 17.0.0

Depuración y diagnóstico

  • Mejoras en el cuadro de diálogo Asociar al proceso
  • Nueva vista de lista de procesos primarios y secundarios a través del botón de alternancia en la parte inferior de la ventana:
    • La selección de la vista debería conservarse.
    • La pulsación izquierda en el teclado lleva al proceso primario en la vista de elementos primarios y secundarios.
    • Todas las columnas deben poder ordenarse como la vista original.
  • La columna Nueva línea de comandos está disponible en ambas vistas.
  • El nombre del grupo de aplicaciones se muestra en la "columna Título" de los procesos w3wp

![Asociar al proceso ](media/17.0/17.0_P2_attach_to _process_3.png)

  • Se ha agregado un controlador de excepciones en el bloque catch. Se mostrará el controlador de excepciones con la información de excepción pertinente cuando un paso administrado provoque una excepción y el paso se complete en un bloque catch.
  • Un nuevo botón "continuar", que muestra el controlador de excepciones en las excepciones "detectadas".

Actualizaciones del controlador de excepciones

  • Se ha agregado una opción Force run to click (Forzar ejecución hasta hacer clic) que ejecutará el depurador hasta que se alcance la posición del cursor seleccionada mientras se ignoran todos los puntos de interrupción en medio.
  • Para usar esta opción, haga clic en "Force Run to Click" (Forzar ejecución hasta hacer clic) en el menú contextual de la línea de código deseada.

Force Run to Cursor (Forzar ejecución hasta hacer clic)

  • Cuando la aplicación está en modo de depuración, también puede ejecutar "Force Run to Click" (Forzar ejecución hasta hacer clic) haciendo clic en el glifo verde que aparece junto a una línea de código cuando se desplaza el mouse mientras se mantiene presionada la tecla MAYÚS.

Glifo de Force Run to Cursor (Forzar ejecución hasta hacer clic)

  • Análisis de diagnóstico de volcado de memoria
    • Hemos mejorado el motor del analizador para encontrar más problemas de sincrónico sobre asincrónico en los volcados de memoria de ASP.NET Core.
    • Para averiguar qué partes del código consumen la mayoría de los recursos de CPU, revise los cinco subprocesos principales por tiempo de CPU.
    • Revise todo el montón administrado para ver si hay signos de presión de memoria en las generaciones 0, 1, 2 y el montón de objetos grandes.
    • Si tiene un volcado de memoria, puede encontrar rápidamente la excepción y el subproceso de segunda oportunidad que hicieron que la aplicación se bloqueara.
    • ¿Tiene dificultades para formular una hipótesis de diagnóstico? Cuando la causa exacta de un bloqueo no se conoce bien, puede usar el analizador de excepciones para buscar y revisar rápidamente todas las excepciones del montón.
    • Para aquellos momentos en los que el análisis de memoria es importante, hemos mejorado la heurística del analizador de cola del finalizador. Ahora nos centramos en el código y excluimos los objetos administrados por .NET Framework.

Punto de interrupción dependiente

Se trata de un nuevo punto de interrupción que permite al usuario configurar un punto de interrupción para que se habilite solo si primero se alcanza otro punto de interrupción. Al realizar la depuración, el depurador de Visual Studio solo pausará la aplicación en el punto de interrupción Dependiente si se ha alcanzado el punto de interrupción de requisito previo. Puede convertir cualquier punto de interrupción en Dependiente si activa la casilla "Only enable when following breakpoint is hit" (Habilitar solo cuando se llegue al punto de interrupción siguiente) en la ventana de configuración y selecciona en la lista desplegable el punto de interrupción de requisito previo en el que quiera configurar el punto de interrupción dependiente.

Punto de interrupción dependiente

Mejoras en el medianil del punto de interrupción

Se ha agregado un nuevo glifo de punto de interrupción para indicar la ubicación en la que el usuario puede establecer un punto de interrupción.

Glifo de punto de interrupción

Al hacer clic con el botón derecho en ese glifo de punto de interrupción, se mostrará un nuevo menú contextual con opciones que proporciona una manera rápida de crear puntos de interrupción avanzados (punto de interrupción condicional, punto de seguimiento y punto de interrupción temporal) en menos clics.

Menú contextual del punto de interrupción

Punto de interrupción temporal

Se trata de un nuevo punto de interrupción que permite al usuario interrumpir el código una sola vez. Al depurar, el depurador de Visual Studio solo pausará el entorno de ejecución de la aplicación una vez para este punto de interrupción y lo quitará inmediatamente después de que se haya alcanzado. Puede convertir cualquier punto de interrupción en un punto de interrupción temporal si habilita la casilla "Remove breakpoint once hit" (Eliminar punto de interrupción una vez alcanzado) en la ventana de configuración. Como alternativa, puede usar el nuevo menú contextual de clic con el botón derecho desde el medianil del punto de interrupción para establecer este punto de interrupción.

Punto de interrupción temporal

Arrastre y colocación del punto de interrupción

Hemos agregado el gesto de arrastrar y colocar para los puntos de interrupción. Ahora puede mantener el punto de interrupción y liberarlo en la línea de código deseada para mover el punto de interrupción de una ubicación a otra. Funciona para nuestro punto de interrupción avanzado siempre y cuando las variables de acción o condición estén dentro del contexto.

Arrastre y colocación del punto de interrupción

Nodo de orígenes externos en el Explorador de soluciones

Se ha agregado un nuevo nodo "External Sources" (Orígenes externos) en el Explorador de soluciones. Actualmente, esto solo aparecerá durante la depuración y mostrará los orígenes de los módulos administrados con símbolos cargados que contienen información del servidor de origen o del vínculo de origen. Durante la depuración, cualquier archivo de símbolos administrado y cargado (.pdb) que tenga información del servidor de origen presente aparecerá en este nodo. Puede examinar archivos como cualquier otra carpeta del Explorador de soluciones o hacer doble clic en un elemento para descargar el archivo desde el servidor de origen y abrirlo en el editor de VS. Nodo de orígenes externos en el Explorador de soluciones

Mejoras en el cuadro de diálogo Asociar al proceso

Se ha agregado una nueva casilla de actualización automática en el cuadro de diálogo Asociar al proceso , para que cuando haya una comprobación se actualice la lista de procesos automáticamente con los procesos disponibles. La nueva opción "Select any window from desktop" (Seleccionar cualquier ventana del escritorio) del cuadro de diálogo Asociar al proceso permite al usuario elegir cualquier ventana en ejecución del escritorio y asociarla a su proceso asociado para la depuración.

Mejoras en el cuadro de diálogo Asociar al proceso

Análisis de diagnóstico de volcado de memoria

Buscar los marcos de llamada raíz cuando se produce una excepción de desbordamiento de pila puede ser difícil y lento. Nuestros analizadores más recientes presentan una vista cómoda de la pila de llamadas y elimina los marcos repetitivos y ruidosos para un análisis de problemas más rápido.

Personalización

Convertir VS Code temas en Visual Studio temas

Hemos creado una herramienta de convertidor de temas que puede convertir VS Code temas para que funcionen en Visual Studio. Pruébelo aquí.

Nuevo paquete Visual Studio tema

Los temas VS Code predeterminados ahora están disponibles como un paquete Visual Studio tema. Echa un vistazo al paquete de temas aquí.

Sincronizar tema con Windows sistema operativo

Hemos agregado la capacidad de sincronizar el tema de Visual Studio con el tema de Windows, para que el tema se pueda ajustar en función de la cantidad de luz ambiente disponible. Para habilitarlo, vaya a Herramientas > tema > Usar configuración del sistema.

Pestañas de color

Para habilitar las pestañas de color, vaya a Herramientas > opciones > pestañas & Windows y habilite Pestañas de color.

Pestañas de color

Editor

Navegación por subpalabra

Con Ctrl+Alt+Flecha izquierda y Ctrl+Alt+Flecha derecha se desplazará por subpalabra. Por ejemplo, la cadena "HolaMundo" identifica "Hola" y "Mundo" como subpalabras. La habilitación de Subword navigation (Navegación por subpalabra) en Herramientas > Opciones > Editor de texto > General hará que los comandos relacionados con palabras (por ejemplo, TransposeWord) interactúen con subpalabras.

Autoguardado

Autoguardado ahora está disponible en Herramientas > Opciones > Entorno > Características en versión preliminar. Si está habilitada, cuando la aplicación de Visual Studio pierde el foco (por ejemplo, otra ventana obtiene el foco), todos los documentos sucios se guardarán en el disco, si es posible. Si no se puede guardar un archivo, permanecerá sucio hasta que el usuario lo guarde explícitamente (con los comandos Guardar o Guardar como...).

Experiencia de copiado/pegado de varios símbolos de inserción

Se ha mejorado la experiencia de copiado y pegado de varios símbolos de inserción. Anteriormente, al pegar varias líneas en varios símbolos de inserción, todo el Portapapeles se duplicaba en cada uno de ellos. Ahora, al pegar varias líneas en el mismo número de símbolos de inserción, cada línea se insertará en un símbolo de inserción correspondiente. Para usar la opción de varios símbolos de inserción, presione Alt+Mayús+ clic del mouse o Alt+Mayús+ . y use Ctrl+Mayús+ tecla de flecha para expandir las selecciones. A continuación, presione Ctrl+C para copiar el texto en varias selecciones. Use Alt+Mayús+ clic del mouse para crear varios símbolos de inserción para cada línea que quiera pegar en las ubicaciones deseadas. Por último, presione Ctrl+V para pegar cada línea en su propio símbolo de inserción.

Copiado y pegado de varios símbolos de inserción

Además, puede usar Alt+Mayús+ tecla de flecha arriba o abajo o Alt+Mayús+ arrastrar el mouse para seleccionar con varios símbolos de inserción. Anteriormente, estos gestos creaban la selección del cuadro. Ahora, la selección del cuadro se transforma en varios símbolos de inserción. Este método es más fácil y rápido que tener que hacer clic en ubicaciones precisas para insertar los símbolos de inserción individuales. Si prefiere seguir usando la selección del cuadro con Alt+Mayús+ teclas de flecha y Alt+Mayús+ arrastrar el mouse, cuando expanda la selección de varios símbolos de inserción, vaya a Herramientas > Opciones > Editor de texto > Avanzado y seleccione Use box selection (Usar selección de cuadro).

Opción de selección del cuadro de varios símbolos de inserción

Extensibilidad

Microsoft.VisualStudio.LanguageServer.Client presenta una nueva manera de personalizar las notificaciones cuando un cliente de lenguaje no se puede inicializar.

Ahora, el Centro de estado de tareas (TSC) realizará el seguimiento de la tarea de inicialización. Si se produce un error en la tarea de inicialización, los usuarios pueden ir al TSC para obtener más información sobre el error. Los clientes de lenguaje ahora podrán personalizar el mensaje que se muestra al usuario, proporcionando información sobre lo que representa este error para ellos y las acciones que se pueden realizar para corregirlo. Para ello, presentamos un nuevo conjunto de API en la interfaz ILanguageClient. Estas nuevas API provocarían un cambio importante en la interfaz ILanguageClient, por lo que las extensiones de lenguaje tendrán que hacer referencia al nuevo paquete para que funcionen en Visual Studio 2022.

Estas son las nuevas API:

  1. Propiedad ShowNotificationOnInitializeFailed: propiedad booleana que determinará si el servidor de lenguaje quiere que se muestre una burbuja para notificar al usuario el error de esta forma:

ShowNotificationOnInitializeFailed en el Centro de estado de tareas

Se recomienda establecer esta propiedad en true solo si el error afecta drásticamente a la experiencia del usuario para el proyecto en el que está trabajando actualmente.

  1. Método OnServerInitializedFailedAsync: este método se invocará cuando se produce un error en la inicialización del cliente de lenguaje. Se proporcionará un objeto LanguageClientInitializationInfoBase con información sobre cómo se produjo el error para que el cliente de lenguaje pueda notificar el error al usuario por su cuenta o proporcionar un mensaje personalizado con el contexto del error. Si se proporciona el mensaje, se mostrará en la Ventana de salida de Visual Studio.

Error de inicialización del cliente de lenguaje en la Ventana de salida

JavaScript/TypeScript

Ahora hay compatibilidad con un nuevo tipo de proyecto JavaScript/TypeScript que permite crear proyectos Angular, React y Vue independientes en Visual Studio. Los proyectos se crearán mediante las herramientas de la CLI del marco que ha instalado en el equipo local. Esto también significa que la versión de la plantilla se basa en las versiones de la CLI que tiene en el equipo local.

Dentro de estos nuevos proyectos, podrá ejecutar pruebas unitarias e integrarlas con proyectos de API de ASP.NET Core. Puede encontrar documentación aquí

  • Hemos publicado un nuevo tipo de proyecto JavaScript/TypeScript que compila proyectos de JavaScript/TypeScript independientes con herramientas adicionales. Aquí encontrará más información al respecto
  • La GUI de NPM está disponible, por lo que ahora puede descargar módulos NPM de la misma manera que descarga paquetes NuGet en los nuevos proyectos de JavaScript o TypeScript

GUI de NPM GUI2 de NPM

Recarga activa experiencia para desarrolladores de .NET & C++

A principios de esteaño anunciamos .NET Recarga activa , un proyecto Recarga activa a tantos desarrolladores de .NET como sea posible. Iniciamos este recorrido con una primera versión preliminar disponible en Visual Studio 2019 y nos hemos comprometido a llegar mucho más en Visual Studio 2022, donde se enviaría toda la experiencia. Hoy me complace compartir los detalles de lo que hemos completado en Visual Studio versión general de 2022.

Para cualquier persona que no Recarga activa, esta es una introducción rápida. La Recarga activa en Visual Studio funciona tanto para aplicaciones .NET administradas como para aplicaciones nativas de C++. Independientemente del tipo de aplicación en la que esté trabajando, nuestro objetivo con Recarga activa es ahorrar tantos reinicios de aplicaciones entre ediciones como sea posible, lo que le hace más productivo al reducir el tiempo que pasa esperando a que las aplicaciones se recompilen, reinicien, vuelvan a navegar a la ubicación anterior donde estaba en la propia aplicación, etc.

Para ello, le permite editar los archivos de código de las aplicaciones y aplicar esos cambios de código inmediatamente a la aplicación en ejecución, también conocida como "Recarga activa". Una vez aplicados esos cambios, simplemente vuelva a ejecutar el código mediante una acción en la propia aplicación (o a través de algún tipo de temporizador, etc.) y vea los cambios inmediatamente, sin pausar la aplicación a través de los puntos de interrupción necesarios.

Si desea ver algunas demostraciones en directo de esta característica, puede consultar uno de estos vídeos:

Recarga activa experiencia del usuario en Visual Studio

La Recarga activa para desarrolladores de .NET y C++ en Visual Studio 2022 también ha experimentado mejoras importantes. La barra de herramientas ahora tiene la implementación de destino del botón "Recarga activa" con una apariencia mejorada y más funcionalidad.

Lo primero que observará es el nuevo botón de estilo desplegable con un icono nuevo. Se cambia el nombre del comando de "aplicar cambios de código" (desde las primeras versiones preliminares) a "Recarga activa".

Recarga activa experiencia del usuario en Visual Studio 2022

La expansión de los botones revela un acceso rápido a características como reiniciar aplicaciones en ejecución, un botón de alternancia de Recarga activa al guardar y acceso rápido al nuevo panel de configuración.

Estos son más detalles sobre cada una de las nuevas características:

  • Reinicie las aplicaciones fácilmente: Ahora puede reiniciar fácilmente la aplicación en ejecución si es necesario aplicar una edición sin problemas a través de una recompilación, independientemente de si inició la aplicación con el depurador o si la inició sin el depurador (¡NUEVO para aplicaciones de .NET 6!).
  • Recarga activa en Guardar: En versiones preliminares anteriores, solo podía aplicar Recarga activa cambios al guardar en proyectos de ASP.NET, para todos los demás proyectos, tenía que hacer clic explícitamente en el Recarga activa. En la versión final, ahora es posible Recarga activa la clave de guardado para cualquier tipo de proyecto. Esta opción es opcional, pero una vez habilitada se aplicará a todas las sesiones de Visual Studio a menos que la desactive.
  • Acceso Configuración fácil: se ha agregado un panel Recarga activa opciones para ofrecer más control cuando Recarga activa está habilitado o deshabilitado. Puede acceder a esta configuración en Visual Studio "Opciones > Recarga activa de .NET / C++", o bien desde el menú desplegable de los botones Recarga activa si hace clic en Configuración.

También se ha agregado un cuadro de diálogo de edición mejorado que está disponible al ejecutar la aplicación .NET sin el depurador.

Cuadro de diálogo New Edit for Recarga activa in Visual Studio 2022

Este nuevo cuadro de diálogo tiene varias mejoras, como:

  • Una Visual Studio de sesión completa para volver a generar y aplicar cambios en cada Recarga activa editar. Una vez activada, esto se aplica a todas las modificaciones futuras hasta Visual Studio se reinicia.
  • Un comando de recompilación y aplicación de cambios de código que se puede realizar con un solo clic, en lugar de varios pasos manuales.
  • Y fácil acceso a la configuración

El cuadro de diálogo también le permite seguir editando si no desea realizar ninguna acción automatizada como antes.

Hay una limitación conocida: este nuevo cuadro de diálogo no estará disponible en la versión de disponibilidad general al usar el depurador, pero el trabajo para que esté disponible en este escenario se completará en una actualización futura.

Compatibilidad con C++

Al usar Visual Studio 2022 e iniciar la aplicación con el depurador, ahora es posible Recarga activa una aplicación nativa de C++ cuando se ejecuta en el depurador (F5) mediante el botón "Recarga activa". Recarga activa también se admite para aplicaciones creadas con proyectos de CMake y OpenFolder.

Esta experiencia está respaldada por la tecnología nativa Editar y continuar. Para ver las ediciones admitidas, consulte nuestra documentación.

Escenarios de & .NET App Framework admitidos

Desde que anunciamos Recarga activa en mayo de 2021, una pregunta muy común de los desarrolladores de .NET ha sido "¿funcionará Recarga activa con mi combinación de versión o marco de aplicaciones .NET?". Hemos realizado un gran progreso para dar la respuesta SÍ en la mayoría de las situaciones, estos son los aspectos destacados.

  • Al usar Visual Studio 2022 e iniciar la aplicación con el depurador, la experiencia básica de Recarga activa funciona con la mayoría de los tipos de aplicaciones .NET y versiones de marco, esto incluye .NET Framework, .NET Core y .NET 5+ (para C# y VB.NET, según corresponda). El tipo de aplicaciones que se admiten incluyen web (cambios de código subyacente), escritorio, móvil, nube y otros tipos de proyecto. La regla clave aquí es si usa el depurador, suponga Recarga activa está disponible para usted y pruébalo.
  • Cuando se usa Visual Studio 2022 pero no se usa el depurador (por ejemplo, mediante CTRL-F5 para iniciar la aplicación), Recarga activa ahora está disponible incluso sin el depurador al dirigirse a la mayoría de los tipos de aplicaciones de .NET 6. Esto significa que las aplicaciones que no tienen como destino .NET 6 (.NET 5 o una versión inferior) no admitirán el escenario "sin depurador" y deben usar el depurador para obtener Recarga activa compatibilidad.
  • Al usar Visual Studio 2022 con una aplicación de .NET 6, se admite la mayoría de los tipos de escenarios. Esto no se limita a la nueva característica "sin depurador" mencionada anteriormente. También incluye otras nuevas funcionalidades, como la compatibilidad con proyectos de Blazor de recarga en caliente y, por lo general, la edición de archivos de Razor en cualquier aplicación ASP.NET Core y css Recarga activa. El uso de Visual Studio 2022 y las aplicaciones que tienen como destino .NET 6 juntos le ofrecerán definitivamente la experiencia de Recarga activa más eficaz y esperamos que la pruebe.

A continuación, ampliaremos el resumen anterior y profundizaremos en más detalles.

Visual Studio 2022 con una aplicación .NET al usar el depurador

Al usar Visual Studio 2022 e iniciar la aplicación con el depurador, Recarga activa funciona con la mayoría de los marcos de trabajo de la aplicación, incluidos los tipos de aplicación típicos como Console, Windows Forms (WinForms), WPF, UWP, WinUI 3* y la mayoría de los tipos de proyectos web de ASP.NET (para las ediciones de código subyacente), incluidos ASP.NET MVC, API web e incluso versiones anteriores Web Forms Proyectos. Esta lista también es solo un ejemplo. La respuesta real es en cualquier lugar donde tenga .NET y use el depurador administrado Visual Studio, debe obtener compatibilidad básica Recarga activa.

Esto significa que incluso los proyectos como Azure Functions funcionarán muy bien en este escenario. Le recomendamos que pruebe su combinación y nos haga saber si encuentra algún problema.

*WinUI 3 usa de forma predeterminada la depuración en modo mixto que no admite Recarga activa. Puede modificarlo en la configuración del proyecto habilitando Managed Debugger, lo que permitirá que Recarga activa funcione correctamente.

Al usar Visual Studio 2022 con una aplicación .NET, pero no con el depurador

Recarga activa ahora está disponible sin el depurador al dirigirse a la mayoría de los tipos de aplicaciones de .NET 6, incluidos los tipos de proyecto como Console, WPF, Windows Forms (WinForms), ASP.NET Core MVC, Web API y Blazor. Sabemos que algunos desarrolladores tienen una buena razón o preferencia para iniciar sus aplicaciones sin el depurador y esperamos que esta característica adicional les dé valor para poco o ningún impacto en el tiempo de inicio.

Esta característica es exclusiva de .NET 6+ y las aplicaciones que no tienen como destino .NET 6 (.NET 5 o inferior) no admitirán el escenario "sin depurador" y deben usar el depurador para obtener acceso a la funcionalidad Recarga activa.

Tenga en cuenta también que no todos los tipos de proyecto se admiten para el escenario "sin depurador" en la primera versión. Concretamente:

  • Las aplicaciones para UWP no se admiten Recarga activa sin el depurador, esto es así por diseño y no hay ningún plan actual para mejorar esto.
  • Las aplicaciones de Xamarin.Forms destinadas a iOS & Android no admiten .NET Recarga activa (independientemente de si va a iniciar la aplicación con o sin el depurador), pero seguirán siendo compatibles con Recarga activa de XAML
  • .NET MAUI aplicaciones en el futuro inmediato no admitirán el escenario sin depurador, pero admitirán .NET Recarga activa a través del depurador

Al usar Visual Studio 2022 con una aplicación .NET 6, se admite la mayoría de los escenarios

Los desarrolladores que puedan usar Visual Studio 2022 y trabajen en aplicaciones destinadas a .NET 6 tendrán las ventajas de la experiencia de Recarga activa más Recarga activa.

Aspectos destacados de lo que se admite:

  • Aplicaciones Blazor (Server y WebAssembly*)
  • Edición de archivos de Razor tanto en Blazor como en sitios web ASP.NET Core normales
  • Recarga activa de CSS
  • Capacidad de obtener Recarga activa al ejecutar aplicaciones sin el depurador (como se describió anteriormente con más detalle)

Los desarrolladores que tienen como destino .NET 6 seguirán recibiendo más mejoras en futuras actualizaciones de Visual Studio 2022 y la banda de características de .NET y versiones principales. ¡Estamos empezando!

*En Visual Studio versión 2022 GA Recarga activa compatibilidad con WebAssembly de Blazor cuando se usa el depurador de Visual Studio aún no está habilitado. Todavía puede obtener Recarga activa Si inicia la aplicación a través de Visual Studio sin el depurador, y estamos trabajando para resolverlo en una futura actualización Visual Studio.

Servidores de ASP.NET Core admitidos

La experiencia Recarga activa básica ahora es ampliamente compatible con muchos ASP.NET escenarios. La característica más ampliamente disponible es la capacidad de cambiar el código subyacente y otros archivos de clase .NET para la mayoría de los tipos de aplicaciones web. Esta característica funciona al usar el depurador de Visual Studio y está presente en cualquier lugar en el que Editar y continuar estaba disponible anteriormente.

Para los ASP.NET Core que tienen como destino .NET 6 hay funcionalidades adicionales no disponibles para versiones inferiores de .NET, lo que incluye mejoras como:

  • CSHTML: La edición de un archivo CSHTML de Razor ahora admite muchos tipos de ediciones.
  • Actualización del explorador: la edición de un archivo Razor ahora actualizará automáticamente los cambios en el explorador web al realizar la depuración. Anteriormente solo estaba disponible al iniciar la aplicación sin el depurador.
  • Css Recarga activa: Ahora es posible cambiar los archivos CSS mientras se ejecuta la aplicación y los cambios se aplicarán inmediatamente a la aplicación en ejecución a medida que escriba.
  • Sin depurador: Ahora recibirá soporte técnico Recarga activa al usar Visual Studio iniciar la aplicación web sin el depurador (CTRL-F5).

Nota: Cuando se trabaja en una aplicación Blazor Wasm y se usa Visual Studio 2022 (17.0), Recarga activa para páginas de Razor solo funciona al iniciar aplicaciones sin el depurador. Agregaremos compatibilidad con el depurador en una actualización futura.

Ediciones de .NET admitidas

La experiencia Recarga activa .NET cuenta con la tecnología del mecanismo Editar y continuar y hemos realizado mejoras para admitir tipos adicionales de ediciones que van más allá de lo que era posible originalmente en versiones anteriores. Estas mejoras incluyen:

  • Adición, actualización o eliminación de atributos personalizados
  • Adición o actualización de estructuras de registros
  • Adición o actualización de directivas #line
  • Edición de expresiones Switch
  • Edición de archivos con directivas #line, incluidos los cambios en la propia directiva
  • Edición de instrucciones de nivel superior
  • Edición de código que usa cualquiera de las nuevas características de C# 10, como directivas using globales, espacios de nombres con ámbito de archivo, lambdas mejoradas y constructores de struct sin parámetros
  • Cambio de nombre de parámetros lambda
  • Cambio de nombre de los parámetros de los métodos existentes

Las mejoras anteriores están disponibles tanto para Recarga activa como para las experiencias Editar y Continuar.

Actualizaciones adicionales

  • Recarga activa y Editar y continuar con varios procesos: Ahora es posible usar de forma confiable las experiencias Recarga activa y Editar y continuar cuando se adjuntan a varios procesos. Anteriormente, esta funcionalidad no era totalmente compatible y no siempre funcionaba correctamente; esto ya se ha corregido.
  • Mensajes de error o advertencia actualizados: Hemos actualizado muchos mensajes de error o advertencia para que sean más claros cuando los mensajes se aplican tanto a EnC como a Recarga activa. Para ello, los mensajes son más genéricos para que la terminología de edición y continuación no se utilice durante operaciones de Recarga activa
  • Pruebas unitarias más rápidas de aplicaciones .NET: Recarga activa tecnología ahora se puede usar como una característica experimental para acelerar las pruebas unitarias al tener como destino .NET 6. Para más información, consulte la sección de pruebas de estas notas de la versión.

Escenarios de .NET no admitidos

Incluso en la versión final, todavía habrá algunos escenarios no admitidos que debe tener en cuenta:

  • Las aplicaciones de Xamarin.Forms no admiten los escenarios de Recarga activa de .NET en iOS y Android. Al dirigirte a una aplicación para UWP, Recarga activa algunos problemas. Esto es así de forma intencionada y no esperamos realizar ninguna otra mejora. (Nota: Recarga activa de XAML seguirá estando disponible y compatible con los clientes de Xamarin.Forms en el SDK más reciente).
  • .NET MAUI aplicaciones no se admiten en esta versión, para trabajar con .NET MAUI y Recarga activa consulte las notas de la versión de Visual Studio Update 1 Preview 1 de Visual Studio para obtener más información.
  • Las aplicaciones creadas con F# o las que tienen como .NET Native no admitirán Recarga activa.

Productividad de .NET

Ahora la refactorización de espacios de nombres de sincronización está disponible en el menú contextual de un proyecto o una carpeta del Explorador de soluciones, lo que permite sincronizar fácilmente los espacios de nombres para que coincidan con la estructura de carpetas.

Sincronización de espacios de nombres desde el Explorador de soluciones

Ahora la configuración del análisis de código en segundo plano está disponible en el menú contextual del Explorador de soluciones. Haga clic con el botón derecho en el nodo de la solución en el Explorador de soluciones y seleccione Análisis y limpieza de código. Después, seleccione Establecer ámbito del análisis a fin de configurar el ámbito para el análisis de código en segundo plano.

  • Ahora hay una refactorización que introduce un parámetro que moverá una expresión de una implementación de método a sus llamadores agregando un nuevo parámetro. Coloque el cursor en la línea que contiene la expresión o resalte la expresión. Presione (Ctrl+.) para activar el menú Quick Actions and Refactorings (Acciones rápidas y refactorizaciones). Seleccione Introduce parameter for (Introducir parámetro para) {0} o Introduce parameter for all occurrences of (Introducir parámetro para todas las repeticiones de) {0} . Ambas opciones tendrán tres opciones de control flotante para (1) insertar la expresión actualizada en todos los sitios de llamada; (2) extraer y crear un nuevo método que devuelva la expresión y agregue un argumento en los sitios de llamada; o (3) crear una sobrecarga del método que contenga la expresión y llame al método original.

Introducción de parámetros desde el menú Acciones rápidas

  • Hay un nuevo comando denominado Track Value Source (Seguimiento de origen de valor) que permite realizar el análisis del flujo de datos para determinar cómo se podrían haber pasado determinados valores en un punto determinado y dónde se podrían pasar. Haga clic con el botón derecho en cualquier miembro determinado y seleccione Track Value Source (Seguimiento de origen de valor) en el menú contextual.

Track value source (Seguimiento de origen de valor) en el menú contextual

  • Se abrirá la ventana Value Tracking (Seguimiento de valores), que le permite analizar los resultados:

Ventana Track Value Source (Seguimiento de origen de valor)

  • Se ha agregado una opción para subrayar las variables que se reasignan. Esta opción está desactivada de forma predeterminada, por lo que tendrá que activarla en Herramientas > Opciones > Editor de texto > C# o Basic > Opciones avanzadas y seleccionar Underline reassigned variables (Subrayar variables reasignadas).

Underline reassigned variables (Subrayar variables reasignadas) en el editor

  • Hemos agregado una opción de búsqueda en el cuadro de diálogo Generates Overrides (Generar invalidaciones), que le permite buscar y seleccionar rápidamente miembros para invalidar.

Búsqueda en el cuadro de diálogo Generate Overrides (Generar invalidaciones)

  • La información rápida de las etiquetas XML <code> ahora conserva los espacios en blanco y los bloques CDATA. mantenga el cursor sobre el elemento. Información rápida mostrará los estilos admitidos de los comentarios XML encima del código.

La información rápida de XML conserva los espacios en blanco

  • La ventana Buscar todas las referencias ahora agrupará proyectos de varios destinos para ayudar a reducir el ruido visual.

Los proyectos con varios destinos se agrupan en la ventana Find All Reference (Buscar todas las referencias)

  • Ahora hay una refactorización que quita los tipos repetitivos en Visual Basic.
  • Ir a implementación ya no llevará a los miembros con declaraciones abstractas, que también se invalidan.

Herramientas del lenguaje de programación C#

En C# 8.0 se han incluido tipos de referencia que admiten un valor NULL, que permiten declarar si se espera un valor NULL. Para usar tipos de referencia que admiten un valor NULL, debe agregar el elemento <Nullable>enable</Nullable> al archivo de proyecto o agregar el elemento #nullable enable pragma a cada archivo de código fuente del proyecto. Para ayudar a simplificar este proceso, ahora se incluye automáticamente el elemento <Nullable>enable</Nullable> para nuevos proyectos de .NET.

En C# 10.0 presentamos un File-scoped namespace (Espacio de nombres con ámbito de archivo) que ofrece la opción de no anidar definiciones de clase dentro de un espacio de nombres. Ahora tenemos una refactorización para convertir un espacio de nombres en un espacio de nombres con ámbito de archivo. Para usar el espacio de nombres con ámbito de archivo, primero debe agregar el elemento <LangVersion>preview</LangVersion> al archivo del proyecto. A continuación, coloque el cursor en un espacio de nombres. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Convert to file-scoped namespace (Convertir en espacio de nombres con ámbito de archivo).

Refactorización del espacio de nombres con ámbito de archivo

Ahora hay una refactorización que prefiere is not null por encima de is object cuando se aplica a los tipos de valores. Para usar esta nueva refactorización, coloque el cursor en una comprobación de tipos. Presione (Ctrl+ . ) para activar los menús Acciones rápidas y refactorizaciones. Seleccione Prefer null check over type check (Preferir comprobación NULL sobre la comprobación de tipo).

Navegación a orígenes descompilados

Ahora la opción Navigate to Decompiled Sources (Navegar a orígenes descompilados) está habilitada de forma predeterminada, lo que le permite navegar a declaraciones de tipos de biblioteca. La opción Navigate to Decompiled Sources (Navegar a orígenes descompilados) está habilitada al invocar Ir a definición en un símbolo de biblioteca en el código fuente y en orígenes descompilados.

Mejoras en el editor

Los comentarios XML ahora generarán automáticamente una etiqueta <exception> dentro de una etiqueta <summary>, lo que le permite agregar una descripción cuando un método produce excepciones explícitamente.

En Visual Studio 2019 se publicó Inheritance Margin (Margen de herencia), que agrega iconos a los márgenes que representan las implementaciones e invalidaciones del código. Al hacer clic en el icono del margen de herencia se mostrarán las opciones de herencia que puede seleccionar para navegar a ellas. En esta versión, la opción Inheritance Margin (Margen de herencia) está habilitada de forma predeterminada. Para deshabilitar esta opción, vaya a Herramientas > Opciones > Editor de texto > C# o Básico > Avanzado y anule la selección de Enable Inheritance Margin (Habilitar margen de herencia).

Margen de herencia

Lenguajes de programación

C# 10

  • Estructuras de registros y expresiones with en estructuras (record struct Point(int X, int Y);, var newPoint = point with { X = 100 };).
  • Directivas using globales: las directivas global using evitan repetir las mismas directivas using en muchos archivos del programa.
  • Asignación definitiva mejorada: el análisis de asignación definitiva y nulabilidad controla mejor patrones comunes como dictionary?.TryGetValue(key, out value) == true.
  • Cadenas interpoladas constantes: las cadenas interpoladas compuestas por constantes son en sí mismas constantes.
  • Patrones de propiedad extendidos: los patrones de propiedad permiten acceder a miembros anidados (if (e is MethodCallExpression { Method.Name: "MethodName" })).
  • Registro ToString sellado: un registro puede heredar un registro base con un objeto ToString sellado.
  • Generadores de código fuente incrementales: mejore la experiencia de generación de código fuente en proyectos grandes mediante el desglose de la canalización de generación de código fuente y el almacenamiento en caché de los resultados intermedios.
  • Deconstrucciones mixtas: se pueden combinar asignaciones de desconstrucción y declaraciones de desconstrucción ((existingLocal, var declaredLocal) = expression).
  • AsyncMethodBuilder de nivel de método: el objeto AsyncMethodBuilder que se usa para compilar un método async se puede invalidar localmente.
  • Directiva de intervalo #line: permite a los generadores de código fuente, como Razor, el control específico de la asignación de líneas con directivas #line que especifican el intervalo de destino (#line (startLine, startChar) - (endLine, endChar) charOffset "fileName").
  • Mejoras en expresiones lambda: se permiten atributos y tipos de valor devuelto en las expresiones lambda; las expresiones lambda y los grupos de métodos tienen un tipo de delegado natural (var f = short () => 1;).
  • Controladores de cadena interpolada: los tipos de controlador de cadena interpolada permiten aplicar un formato eficaz a las cadenas interpoladas en asignaciones e invocaciones.
  • Espacios de nombres con ámbito de archivo: los archivos con un único espacio de nombres no necesitan llaves adicionales ni sangría (namespace X.Y.Z;).
  • Constructores de estructuras sin parámetros: admiten constructores sin parámetros e inicializadores de campo de instancia para tipos de estructura.
  • CallerArgumentExpression: este atributo permite capturar las expresiones que se pasan a un método como cadenas.

Consulte el estado de la característica de lenguaje de C# y los cambios importantes para obtener más información.

Editor de Razor (ASP.NET Core)

  • Ahora hay compatibilidad con Recarga activa en los archivos de Razor.

Compatibilidad con la recarga en archivos Razor

  • Hemos realizado mejoras significativas en el rendimiento del editor de Razor.

  • Hemos mejorado el formato y la sangría, lo que hace que sea más confiable y bastante más rápido.

  • Hemos agregado nuevos colores de Razor. Estos colores se pueden personalizar en Herramientas > Opciones > Entorno > Fuentes y colores.

  • Los elementos TagHelper ahora están coloreados y tienen compatibilidad con la clasificación en información rápida y en informaciones sobre herramientas de finalización de IntelliSense.

Compatibilidad con la clasificación de TagHelpers

  • Hemos mejorado el resaltado de llave angular y la navegación para construcciones de Razor.

  • Los comentarios ahora tienen finalización automática, sangría inteligente, inclusión automática de continuaciones de comentarios y navegación por comentarios en bloque.

Pruebas remotas de la versión preliminar experimental temprana

Tenemos una versión preliminar experimental muy temprana de la habilitación de ejecución de pruebas en entornos remotos, como contenedores Linux, WSL y a través de conexiones SSH. Aunque se trata de una funcionalidad muy valiosa, le pedimos paciencia, ya que esta característica todavía está en una etapa experimental muy temprana mientras recopilamos comentarios. Es posible que no experimente la fluidez que normalmente obtiene, ya que, como puede imaginar, hay una gran cantidad de escenarios en cuanto a la forma en que podemos comunicar y administrar un entorno conectado desde Visual Studio. Estos son algunos requisitos para usar esta versión experimental de pruebas remotas:

  • Debe instalar las dependencias necesarias en el entorno de destino. Esto significa que, si quiere que las pruebas destinadas a .NET 3.1 se ejecuten en un contenedor de Linux, debe asegurarse de que el contenedor tenga instalado .NET 3.1 a través del Dockerfile. Algún día nos gustaría crear una experiencia de instalación que permita la adquisición fácil de cualquiera de las dependencias de prueba, pero, por ahora, estamos dejando la mayor parte del aprovisionamiento del entorno a la especificación del usuario.
  • Planee la supervisión del estado de conexión al entorno remoto a través del panel Salida > Pruebas. Por ejemplo, si el contenedor se detuvo, aparecerá un mensaje en el panel Salida > Pruebas. Es posible que no detectemos todos los escenarios, así que compruebe la salida si parece que la conexión se ha perdido. En concreto, si el panel Salida no está establecido en "Prueba", es posible que no vea inmediatamente el mensaje. Todavía estamos experimentando con el modelo de notificación mejor cuando se pierden las conexiones, por lo que agradecemos sus comentarios. Si parece que la conexión se ha perdido, puede usar la lista desplegable de entornos de pruebas remotas en el Explorador de pruebas para volver a establecer la conexión con el entorno local y, luego, seleccionar de nuevo el entorno remoto para volver a iniciar la conexión.
  • Por ahora, la versión preliminar experimental solo va dirigida a las pruebas de .NET. Somos conscientes del interés en admitir experiencias de pruebas remotas en C++ y esperamos proporcionarlas también en algún momento.

¿Cómo puedo probar las pruebas remotas?

  • Los documentos oficiales llegarán después del período experimental. Por ahora, esto es lo que necesita para empezar las pruebas.
  • Los entornos se especifican mediante testenvironments.json en la raíz de la solución. La estructura de archivos JSON sigue el esquema siguiente:
{
    "version": "1", // value must be 1
    "environments": [
        { "name": "<unique name>", ... },
        ...
    ]
}
  • Conexiones de contenedor local
    • Para conectarse a un contenedor que se ejecuta localmente, debe tener Docker Desktop en la máquina local. Opcionalmente, habilite la integración con WSL2 para mejorar el rendimiento.
    • Para Dockerfile, el entorno se puede especificar en testEnvironments.json en la raíz de la solución:
          {
          "name": "<name>",
          "localRoot": "<path to local environment>", // optional
          "type": "docker",
          "dockerImage": "<docker image tag>",
          }
      
      Por ejemplo:
      {
      "version": "1",
      "environments": [
          {
          "name": "linux dotnet-core-sdk-3.1",
          "type": "docker",
          "dockerImage": "testenv"
          }
      ]
      }
      
    • Este es un ejemplo de Dockerfile para ejecutar pruebas destinadas a .NET 3.1.
      FROM mcr.microsoft.com/dotnet/core/sdk:3.1
      
    • Compile el contenedor con el siguiente comando (incluya el "." al final): docker build -t <docker image name> -f <path to Dockerfile> .
  • Conexiones WSL2 locales
    • Debe habilitar la integración con WSL2 en la máquina local.
    • El entorno se puede especificar en testEnvironments.json en la raíz de la solución mediante este esquema:
      {
      "version": "1",
      "environments": [
          {
          "name": "WSL-Ubuntu",
          "type": "wsl",
          "wslDistribution": "Ubuntu"
          }
      ]
      }
      
  • Conexiones SSH
    • Vaya a Herramientas > Opciones > Multiplataforma > Administrador de conexiones para agregar o quitar conexiones SSH. Al seleccionar "Agregar", podrá escribir el nombre de host, el puerto y las credenciales que necesite.
    • El entorno se puede especificar en testEnvironments.json en la raíz de la solución de la manera siguiente:
      {
      "version": "1",
      "environments": [
          {
          "name": "ssh-remote",
          "type": "ssh",
          "remoteUri": "ssh://user@hostname:22"
          }
      ]
      }
      
  • El entorno activo se selecciona a través de una lista desplegable de la barra de herramientas del Explorador de pruebas. Actualmente, solo un entorno de prueba puede estar activo a la vez.

Lista desplegable del entorno de pruebas remotas en el Explorador de pruebas

  • Una vez seleccionado un entorno, las pruebas se detectan y se ejecutan en el nuevo entorno.

Las pruebas se detectan y ejecutan en entornos remotos

  • Ahora puede ejecutar y depurar las pruebas dentro del entorno remoto.

    Visualización de los resultados de pruebas de un entorno remoto en el Explorador de pruebas

  • El Explorador de pruebas puede solicitarle que instale algunos requisitos previos del entorno que faltan y que intente instalarlos, pero en última instancia, dejamos la mayor parte del aprovisionamiento del entorno remoto a la especificación del usuario.

Recarga activa en el Explorador de pruebas [experimental]: Ahora es posible probar una nueva característica experimental que agiliza la experiencia de pruebas mediante la tecnología de Recarga activa en segundo plano. Esto significa que, después de la primera ejecución de pruebas en la que todavía se requiere una compilación completa, puede realizar pequeños cambios, ejecutar las pruebas y todas esas actualizaciones se reflejarán sin tener que volver a realizar una compilación completa. Para empezar a trabajar y conocer más advertencias, consulte los detalles siguientes:

La recarga activa del Explorador de pruebas en Visual Studio permite ejecutar pruebas sin necesidad de una compilación entre ediciones secundarias

  • Esta experiencia solo está disponible para los proyectos que tienen como destino .NET 6 y debe ir a "Herramientas > Opciones > Prueba"

Captura de pantalla de Visual Studio que muestra la opción Habilitar recarga activa en Herramientas > Opciones > Prueba.

  • Cuando esta opción está habilitada, las pruebas se actualizan incluso con cambios no guardados en el editor. No estamos compilando, por lo que los archivos binarios del disco de la carpeta bin están obsoletos. Esto significa que es posible que vea discrepancias entre lo que hay en el disco y los resultados de las pruebas en Visual Studio. Para resolverlos y antes de insertar en el repositorio, asegúrese de realizar una compilación completa con (Ctrl+Mayús+B). Cualquier compilación explícita reemplazará los resultados de las pruebas de recarga activa por los resultados de pruebas de compilación completa normales.

  • Hay ciertos tipos de ediciones que la recarga activa no puede recoger y, en esos casos, volverá al comportamiento anterior de realizar una compilación completa de forma predeterminada. Tenga en cuenta también que solo se realiza un seguimiento de los cambios en Visual Studio, los casos opacos en el editor, como el cambio de destinos, pueden volver a requerir una compilación completa de forma predeterminada.

  • Ciertos cambios grandes (como cambiar el nombre de más de 1000 nombres de método) pueden tardar más tiempo en generar una recargar activa que simplemente volver a compilar. En estos casos, se mostrará un mensaje en la salida que solicita a los usuarios que realicen una nueva compilación completa en lugar de esperar a la recarga activa.

  • Los seguimientos de la pila aún no están disponibles con la recarga activa en el Explorador de pruebas. Si necesita usar el seguimiento de la pila, le recomendamos que realice una compilación completa.

Herramientas de prueba

  • Mostrar en el Explorador de pruebas (Ctrl+E,S) : es la capacidad de saltar desde la posición del cursor en un método de prueba en el editor hasta la posición de la prueba en el Explorador de pruebas. Esto puede recordarle una característica similar denominada Sincronizar con el documento activo que mantiene resaltado el documento en el que trabaja actualmente en el Explorador de soluciones. Este fue uno de los elementos más votados en Developer Community, por lo que agradecemos a todos los usuarios que han votado y nos han ayudado a priorizar esta característica. Mostrar en el Explorador de pruebas también está disponible en el menú contextual del editor, el glifo de prueba de CodeLens y el clic con el botón derecho en el Explorador de soluciones.

    Mostrar en el Explorador de pruebas desde el menú contextual Mostrar en el Explorador de pruebas desde CodeLens

  • Actualización de compatibilidad con pruebas de carga web y pruebas de IU codificadas: la grabadora de pruebas de carga web está disponible Visual Studio 2022. La grabadora de pruebas automatizadas de IU no se incluirá en Visual Studio 2022. Todavía podrá ejecutar pruebas automatizadas de IU y crear pruebas si escribe código en Visual Studio 2022, pero la grabadora se basa en dependencias de 32 bits que no se pueden portar. Todavía puede instalar Visual Studio 2019 en paralelo para usar la grabadora de pruebas automatizadas de IU. Como recordatorio, la prueba de carga web y la prueba automatizada de IU quedaron en desuso en 2019 y tenemos previsto quitarlas del producto cuando podamos minimizar el impacto en los usuarios. Animamos encarecidamente a los usuarios interesados en las pruebas de IU web a que adopten el nuevo marco de pruebas web multiplataforma y de código abierto Playwright. Además de admitir todos los exploradores principales y un mejor control del código asincrónico, Playwright también tiene integrada la funcionalidad de grabación de pruebas.

Ubicaciones de confianza

  • Como parte de la revisión "Trust Configuración", quitamos la comprobación "Marca de la web" y agregamos un cuadro de diálogo de advertencia que se muestra al intentar abrir código (por ejemplo, archivos, proyectos o carpetas) que no ha sido de confianza previamente.
  • Ahora se puede confiar en el código en la carpeta actual o en la ubicación de la carpeta primaria.
  • Los proyectos creados por el usuario se agregan automáticamente a la lista de ubicaciones de confianza del usuario.
  • Puede omitir las comprobaciones de confianza para las ubicaciones temporales creadas Visual Studio funcionalidad.

Antes de que el contenido (por ejemplo, solución, proyecto, archivo o carpeta) se abra dentro del IDE, comprobaremos si la ubicación de la carpeta ha sido de confianza previa.

Si se detecta código que no es de confianza, se mostrará un cuadro de diálogo de advertencia que le avisará de las implicaciones de seguridad y le pedirá que confíe en el código antes del funcionamiento normal del IDE.

Nota: Aunque esta característica está desactivada actualmente de forma predeterminada, se puede habilitar a través de Opciones > Trust Configuración > requre una decisión de confianza antes de abrir el contenido.

Actualizaciones del nodo Orígenes externos

El nodo Orígenes externos del Explorador de soluciones ahora también tiene compatibilidad con C++. Además, se ha agregado un nuevo subnodo que le ofrece todos los módulos con símbolos que aún no se han cargado.

Nodo de orígenes externos en el Explorador de soluciones compatible con C++

También puede usar el menú contextual para cargar los símbolos directamente desde el Explorador de soluciones para que los módulos puedan aparecer en los nodos de origen externos. Ahora los archivos del nodo Orígenes externos también se ordenan alfabéticamente.

Menú de orígenes externos

Iconografía actualizada

  • Como parte de nuestro objetivo de actualizar la interfaz de usuario de Visual Studio 2022, encontrará iconos recién actualizados en todo el IDE atendiendo a la coherencia, la legibilidad y la familiaridad.

Ejemplos de iconos nuevos con fondos oscuros y claros

Recarga activa de XAML

Hemos actualizado la configuración de Recarga activa de XAML y las barras de herramientas en la aplicación para proporcionar claridad de que la configuración y las experiencias de la aplicación están relacionadas con Recarga activa de XAML y no con .NET Recarga activa.

Barra de herramientas actualizada en la aplicación en aplicaciones XAML

También hemos simplificado el panel de configuración para organizar mejor las opciones comunes.

Panel de opciones en Configuración XAML actualizado

XAML Live Preview

Xaml Live Preview ya está disponible para desarrolladores de WPF, UWP, WinUI y Xamarin.Forms que ejecutan sus aplicaciones en Android Emulator o como una aplicación de escritorio para UWP. Live Preview captura una interfaz de usuario de aplicaciones en ejecución y la incluye en una ventana acoplada dentro Visual Studio. Esto facilita el uso de Recarga activa de XAML para cambiar la aplicación mientras se ven esos cambios dentro de Visual Studio, sin necesidad de tabular entre la aplicación en ejecución y Visual Studio mientras se hacen cambios en el código XAML en directo.

Live Preview (Vista previa dinámica) de la interfaz de usuario de aplicaciones de escritorio XAML

Primeros pasos:

  • Iniciar una aplicación compatible mediante el depurador
  • Active XAML Live Preview, ya sea mediante una búsqueda rápida escribiendo "XAML Live Preview" o usando las barras de herramientas de la aplicación "Mostrar en vista previa en vivo de XAML".

Una vez iniciada la experiencia, estarán disponibles las siguientes características:

  • Desplazamiento y zoom: puede desplazarse y acercar la ventana que captura la interfaz de usuario de la aplicación, lo que le permite ajustarla a sus necesidades para mostrar la aplicación completa o solo las partes que intenta editar. El desplazamiento funciona con un panel táctil (desplazamiento con dos dedos), la rueda de desplazamiento del mouse o Ctrl+Clic para arrastrar el contenido.
  • Reglas: puede agregar una o varias reglas horizontales o verticales para superponer la aplicación en ejecución. Estas líneas se pueden mover a su posición con el mouse o el teclado. Al mover las reglas con el teclado, use las teclas de dirección para un posicionamiento preciso y Ctrl+tecla de flecha para un posicionamiento rápido. También puede eliminar reglas seleccionándolas (haciendo clic en ellas) y presionando la tecla de eliminación.
  • Selección de elementos y sugerencias de información: con la selección de elementos, puede seleccionar el elemento XAML que quiere editar con la misma característica a la que podría estar acostumbrado desde el Árbol visual dinámico o la barra de herramientas de la aplicación. Una vez seleccionado, también puede habilitar la nueva característica "sugerencias de información" para obtener información adicional sobre el elemento seleccionado, como la fuente, el color, la información de margen o relleno, etc. Al usar Selección de elementos, considere la posibilidad de habilitar Vista previa del elemento seleccionado (ya sea a través del botón de la barra de herramientas Árbol visual dinámico o mediante Depurar > Opciones > Hot Reload settings (Configuración de Recarga activa) para ir al XAML de origen.
  • Cambio de ventana: puede controlar cuál de las ventanas de la aplicación se captura.

Experiencia de enlace XAML mejorada

  • Se han mejorado los iconos de enlace de datos en el Inspector de propiedades. Ahora puede acceder rápidamente al cuadro de diálogo enlace de datos haciendo clic en un icono de "cilindro" junto a una propiedad y puede borrar el enlace haciendo clic en el icono "x".

Iconos de enlace en el Inspector de propiedades

  • Se ha agregado la pestaña Enlace en Acciones rápidas para que pueda crear enlaces con solo unos pocos clics desde el diseñador XAML.

Pestaña Enlace en Acciones rápidas

  • Se ha agregado el cuadro combinado Propiedad de destino al cuadro de diálogo Enlace de datos para seleccionar la propiedad en cualquier lugar.

Cuadro combinado Actualizar enlace de datos con propiedad de destino

Problemas más votados de Developer Community

Vea nuestra lista completa de correcciones de Developer Community en esta versión.


Problemas conocidos

Vea todos los problemas abiertos y las soluciones alternativas disponibles en Visual Studio 2022 en el vínculo siguiente.


Comentarios y sugerencias

Nos encantaría que nos diera su opinión. Puede notificar un problema o sugerir una característica Feedback Icon mediante el icono Enviar comentarios en la esquina superior derecha del instalador o el IDE de Visual Studio, o desde Ayuda > Enviar comentarios. Puede realizar un seguimiento de sus incidencias en Developer Community de Visual Studio, donde puede agregar comentarios o encontrar respuestas. También puede obtener ayuda gratuita para la instalación a través de nuestro servicio de soporte técnico de chat en directo.


Blogs

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


Principio de página