Partager via


logo Visual Studio Notes de publication de Visual Studio 2022

Nous sommes heureux d’annoncer la disponibilité de Visual Studio 2022 v17.12. Cette mise à jour se concentre sur la fourniture d’expériences de développement fantastiques pour travailler avec projets .NET 9 et de nouvelles fonctionnalités de productivité d’IA , ainsi que des améliorations continues tout autour.

Fonctionnalités

Liste des fonctionnalités de 17.12 publiée le 12 novembre 2024.

Productivité

copie
à partir de la liste d’erreurs 📣

Copie d’une erreur à partir de la liste d’erreurs copie désormais uniquement la description au lieu de la ligne entière dans le Presse-papiers.

Vous voyez une erreur dans la liste d’erreurs que vous ne savez pas comment corriger. Par conséquent, vous le sélectionnez et appuyez sur Ctrl+C pour copier la description d’une recherche web. Une fois que vous l’avez collé dans le moteur de recherche, vous réalisez qu’il a copié tous les en-têtes de colonne et les valeurs de ligne au lieu de la description uniquement. Vous devez maintenant supprimer tout sauf la description d’erreur avant de pouvoir effectuer la recherche web. C’est fastidieux, mais maintenant nous avons un correctif !

correction de la copie de liste d’erreurs

Lorsque vous copiez une erreur à partir de la liste d’erreurs à l’aide de Ctrl+C, seule la description est copiée dans le Presse-papiers. Cela facilite la recherche de l’erreur en ligne ou de la partager avec d’autres personnes.

Vous pouvez toujours copier la ligne entière en cliquant avec le bouton droit sur l’erreur et en sélectionnant Copier le de ligne dans le menu contextuel ou en appuyant sur Ctrl+Maj+C.

Si ce que vous vouliez faire avec la description d’erreur était d’effectuer une recherche web, appuyez simplement sur Ctrl+F1 pour rechercher des informations sur l’erreur en ligne.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Accéder à la ligne n’importe où dans la recherche de code 📣

Dans recherche de code, vous pouvez désormais accéder à une ligne spécifique dans le document actif ou dans un autre document spécifié.

Parfois, vous savez qu’il y a un problème sur une certaine ligne dans votre code et que vous souhaitez y accéder rapidement. Peut-être avez-vous été informé d’une erreur levée sur la ligne 43 d’un fichier, ou vous souhaitez accéder au bas d’un fichier spécifique.

recherche de code prend désormais en charge la navigation rapide vers une ligne spécifique dans votre code.

Ouvrez recherche de code et accédez à une ligne dans le document actuel à l’aide du signe deux-points + numéro de ligne. Par exemple, :39 accédez à la ligne 39 dans le fichier actif.

Accéder à la ligne dans le document actif

Vous pouvez également accéder à une ligne dans un autre document à l’aide du nom de fichier + deux-points + numéro de ligne. Par exemple, Order:43 accède à la ligne 43 dans Order.cs. Si vous ne spécifiez pas le nom exact du fichier, la recherche tentera de trouver la meilleure correspondance.

Accéder à la ligne dans différents documents

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Ancrer la fenêtre Recherche de code 📣

Vous pouvez maintenant positionner librement la fenêtre Recherche de code avec des fonctionnalités telles que l’ancrage et le masquage automatique.

Si vous avez besoin de code ou de recherche de fonctionnalités pour rester hors de votre chemin, vous avez maintenant plus de contrôle sur le comportement de la fenêtre de recherche.

Vous pouvez maintenant ancrer la fenêtre de recherche et effectuer des actions de fenêtre d’outil avec celle-ci, telles que l’Explorateur de solutions et d’autres.

recherche ancrée dans la partie inférieure

Après avoir ouvert de recherche de code ou de recherche de fonctionnalités, cliquez sur l’icône de zone située en haut à droite pour la convertir en fenêtre outil. Vous pouvez choisir de l’ancrer ailleurs, de le faire apparaître, de masquer automatiquement, etc. Vous pouvez revenir à la fenêtre contextuelle ignorée en cliquant sur l’icône en haut à droite.

En haut à droite de la fenêtre, la deuxième icône est l’icône de fenêtre outil

Nous avons également simplifié et nettoyé l’expérience de préversion dans la recherche. Il existe maintenant un bouton, indiqué avec une icône d’œil, pour activer et désactiver l’aperçu.

En haut à droite de la fenêtre, la première icône est l’icône du panneau d’aperçu

La position du panneau d’aperçu s’ajuste également en fonction des dimensions de la fenêtre de recherche.

recherche ancrée à droite

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Personnaliser l’indicateur de texte réduit 📣

Définir des couleurs personnalisées pour l’indicateur de texte réduit dans l’éditeur Visual Studio.

Vous pouvez désormais personnaliser votre expérience d’éditeur encore plus loin avec les nouvelles options permettant de personnaliser l’indicateur de texte réduit :

indicateurs de texte développés et réduits personnalisés dans l’éditeur Visual Studio

Pour essayer et définir des couleurs de premier plan et d’arrière-plan personnalisées pour chacun, accédez à Outils > Options > Environnement > Polices et couleurs.

entrées d’indicateur de texte réduit dans la page Polices et couleurs

Là, vous trouverez deux nouveaux éléments pour la personnalisation :

  • indicateur de texte réduit (réduit)
  • indicateur de texte réduit (développé)

Vous pouvez définir les couleurs des indicateurs réduits et développés indépendamment des autres à l’aide de couleurs prédéfinies ou de couleurs personnalisées de votre choix.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Actualiser les résultats de recherche 📣

Vous pouvez maintenant actualiser les résultats dans une recherche précédente pour obtenir up-tocorrespondances de recherche date.

Nous avons entendu beaucoup d’utilisateurs qu’il est frustrant de rouvrir la fenêtre Rechercher et de passer par les mouvements de rétablissement d’une recherche pour obtenir des résultats mis à jour. Peut-être que vous venez de refactoriser du code et de confirmer que tout a été modifié comme prévu, ou vous avez extrait certaines modifications récentes et avez besoin de votre opération de recherche récente pour refléter ces mises à jour.

Après avoir terminé Rechercher dans les fichiers, vous avez maintenant la possibilité d’actualiser les résultats de recherche dans la fenêtre. Vous obtiendrez vos résultats mis à jour sans avoir à rétablir la recherche.

bouton Actualiser la recherche à droite de l' Arrêter la recherche

Nous avons également repensé l’ancienne option Repeat Find pour la distinguer de l’actualisation. Il est désormais représenté sous forme De modification de la recherche avec une icône de crayon. Ce bouton rouvrira toujours Rechercher dans les fichiers avec les mêmes critères de recherche que ceux que vous avez utilisés pour cette fenêtre de résultats.

bouton Modifier la recherche à l’extrême droite de la barre d’outils

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Plus d’espace pour la barre de défilement horizontale 📣

Vous pouvez maintenant contrôler la visibilité des indicateurs de niveau fichier dans CodeLens.

La zone avec la barre de défilement horizontale peut être assez encombrée dans Visual Studio. Nous vous aidons à le nettoyer plus facilement en désactivant les indicateurs de niveau fichier dans CodeLens par défaut.

indicateur CodeLens au niveau du fichier dans la marge de l’éditeur inférieur

Si vous souhaitez activer l’option, vous trouverez l’option Afficher l’indicateur CodeLens au niveau du fichier sous Outils > Options > Éditeur de texte >avancé. Cette option affecte la visibilité des types de fichiers qui ont le contrôle CodeLens au niveau du fichier dans la marge de l’éditeur inférieur, comme XAML, HTML et CSS, et n’affecte pas les fichiers qui contiennent codeLens inline.

option pour afficher l’indicateur CodeLens au niveau du fichier

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

nettoyage de code non bloquant lors de l’enregistrement

Lorsque le nettoyage du code est exécuté sur l’enregistrement, il fonctionne désormais de manière non bloquante, pour une expérience de codage plus fluide.

Auparavant, quand un nettoyage du code est exécuté sur l’enregistrement, vous ne pouvez effectuer aucune action dans l’IDE. Nous avons maintenant amélioré cela pour fonctionner de manière non bloquante.

Le processus de nettoyage s’exécute en arrière-plan et peut être automatiquement annulé si vous reprenez la saisie, ce qui garantit une expérience de codage plus fluide et plus réactive.

nettoyage du code lors de l’enregistrement

dépendances transitives dans l’interface utilisateur du Gestionnaire de package au niveau de la solution

Lorsque vous examinez l’onglet Installé dans l’interface utilisateur du gestionnaire de package de Visual Studio au niveau de la solution, il affiche désormais les packages directs et transitifs.

Auparavant, sous l’onglet Installé dans l’interface utilisateur du gestionnaire de package de Visual Studio, vous pouviez voir les dépendances directes et transitives uniquement pour vos projets. Avec cette version, nous avons également ajouté la possibilité de voir les dépendances transitives pour le niveau solution.

dépendances transitives au niveau de la solution

dépendances transitives avec des vulnérabilités dans l’Explorateur de solutions

Lorsque vous définissez NuGetAuditMode sur all, l’Explorateur de solutions affiche des indicateurs pour les dépendances transitives avec des vulnérabilités.

NuGet Audit, d’abord ajouté dans Visual Studio 17.8 (et .NET 8), fournit des avertissements lors de la restauration si des packages utilisés par votre projet présentent des vulnérabilités connues.

Pour plus d’informations sur NuGet Audit, y compris toutes les options de configuration, consultez la documentation sur nuGet Audit.

Ces vulnérabilités peuvent être dans vos dépendances directes ainsi que dans les dépendances transitives (les packages dont dépendent vos dépendances). Maintenant, si vous définissez NuGetAuditMode sur all, l’Explorateur de solutions affiche des indicateurs non seulement pour les dépendances directes, mais également pour les dépendances transitives avec des vulnérabilités.

vulnérabilités des dépendances transitives dans l’Explorateur de solutions

GitHub Copilot

Poser des questions supplémentaires sur GitHub

Recherche sur GitHub pour rechercher des validations, des problèmes, des demandes de tirage, des référentiels et des rubriques, directement à partir de Visual Studio.

Vous pouvez maintenant utiliser GitHub Copilot Chat pour rechercher des validations, des problèmes, des demandes de tirage, des dépôts et des rubriques dans GitHub.

Vous pouvez poser des questions telles que :

  • @github Quelles sont toutes les demandes de tirage ouvertes qui m’ont été affectées ?
  • @github Quels sont les derniers problèmes qui m’ont été attribués ?
  • @github Quand était la dernière version ?
  • @github Me montrer les demandes de tirage fusionnées récentes de @davidfowl

nouvelles compétences GitHub

Cette fonctionnalité est disponible pour tous les utilisateurs de GitHub Copilot. En savoir plus sur les gitHub Skills disponibles dans la documentation GitHub Copilot.

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


instructions personnalisées pour gitHub Copilot

Créer un fichier qui ajoute automatiquement des informations à toutes les questions que vous posez à GitHub Copilot Chat.

Avec GitHub Copilot, vous pouvez recevoir des réponses de conversation adaptées au flux de travail de votre équipe, aux outils préférés et aux spécificités du projet, simplement en fournissant le contexte. Au lieu d’ajouter ces détails contextuels à chaque requête de conversation, vous pouvez créer un fichier qui fournit ces informations automatiquement. Bien que ce contexte supplémentaire n’apparaisse pas dans la conversation, il est disponible pour GitHub Copilot, ce qui lui permet de générer des réponses plus précises et pertinentes.

instructions personnalisées GitHub Copilot

Guide pratique pour activer des instructions personnalisées
  1. Activez la fonctionnalité via Tools > Options > GitHub > Copilot> et vérifiez (préversion) Activez les instructions personnalisées à charger à partir de fichiers .github/copilot-instructions.md et ajoutés aux requêtes.
  2. Ajoutez copilot-instruction.md à la racine de votre respository dans le fichier .github, créez le fichier s’il n’existe pas déjà.

GitHub Copilot Activer les instructions personnalisées

En savoir plus sur la création d’instructions personnalisées ici

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


sélection de modèle
dans gitHub Copilot Chat

GitHub Copilot vous permet désormais de choisir votre modèle.

OpenAI o1-preview et o1-mini sont désormais disponibles pour tous les utilisateurs de GitHub Copilot Chat dans Visual Studio.

Vous pouvez maintenant essayer ces modèles en utilisant o1-preview, o1-mini ou le modèle GPT-4o par défaut pour power GitHub Copilot Chat. Avec le changement de modèle disponible, vous pouvez passer de l’explication des API ou de la génération de code de base à l’élaboration d’algorithmes complexes ou de débogage d’erreurs logiques.

Visitez le gitHub Changelog pour en savoir plus sur cette fonctionnalité.

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


compréhension contextuelle améliorée

compréhension contextuelle améliorée dans GitHub Copilot offre des réponses plus précises.

Compréhension contextuelle améliorée dans GitHub Copilot

GitHub Copilot offre désormais une compréhension contextuelle améliorée pour offrir des réponses encore plus précises. Avec cette mise à jour, GitHub Copilot peut interpréter intuitivement les caractéristiques clés de votre code, en adaptant les suggestions aux besoins uniques de votre projet. Cette approche plus intelligente de l’assistance au code est conçue pour vous aider à travailler plus efficacement, sans avoir besoin d’ajustements de contexte fréquents.

Essayez-le avec GitHub Copilot aujourd’hui !

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


mises à jour d’exclusion de contenu

Exclusion de contenu prend désormais en charge les sous-modules et les référentiels imbriqués.

Nous avons amélioré la façon dont notre système gère les sous-modules et les référentiels imbriqués, ce qui vous permet de travailler plus facilement avec des structures de projet complexes.

En outre, nous avons ajouté la prise en charge des dépôts non Git, en développant la flexibilité de votre flux de travail et en vous permettant d’intégrer en toute transparence un plus large éventail de projets.

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


'inspection intelligente des variables ia

Optimiser votre flux de travail de débogage avec l’inspection des variables IA intégrées.

L’inspection et l’analyse des valeurs à partir de locals, d’autos et de datatips n’a jamais été plus facile avec Ask GitHub Copilot dans Visual Studio. Il vous suffit de cliquer avec le bouton droit sur n’importe quelle valeur pour obtenir des insights détaillés basés sur l’IA sur les erreurs, les résultats inattendus ou les anomalies, sans jamais quitter votre IDE.

recherche de variables ai

Cette fonctionnalité améliore considérablement la vitesse de résolution des problèmes en analysant les variables en temps réel dans votre IDE chaque fois que des valeurs inattendues se produisent.

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


du visualiseur IEnumerable alimenté par l’IA

expressions LINQ modifiables basées sur l’IA dans le visualiseur IEnumerable.

Nous avons amélioré la fonctionnalité d’expression modifiable dans le visualiseur IEnumerable à l’aide de l’IA. La nouvelle fonctionnalité de Ask Copilot permet aux utilisateurs de tirer parti de l’IA directement dans la zone de texte d’expression modifiable pour créer des expressions LINQ complexes.

'expression modifiable IA IEnumerable Visualizer

Pour accéder à la conversation GitHub Copilot, cliquez simplement sur l’icône GitHub Copilot située en bas à droite de la section d’expression modifiable. Dans la conversation, vous trouverez des exemples de syntaxe LINQ. En outre, vous pouvez décrire votre requête en langage naturel et GitHub Copilot génère la requête LINQ correspondante. Pour appliquer le filtrage de requêtes LINQ au visualiseur, utilisez le bouton Afficher dans le visualiseur dans la conversation.

Il fournit des commentaires et des conseils instantanés, ce qui rend le processus de création de filtres et de transformations complexes plus intuitifs et plus efficaces.

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


tests de débogage avec gitHub Copilot

Obtenir de l’aide sur le débogage des tests ayant échoué à l’aide des tests de débogage avec GitHub Copilot.

Vous avez besoin d’aide pour déboguer vos tests unitaires défaillants. À présent, GitHub Copilot peut vous aider en vous fournissant un plan de débogage et en vous guidant tout au long du débogage du test qui a échoué pour vous rapprocher du passage en cliquant sur le bouton Déboguer avec Copilot dans l’Explorateur de tests.

Déboguer avec GitHub Copilot

Une fois que vous avez lancé la fonctionnalité, GitHub Copilot vous fournira un plan de débogage, définissez les points d’arrêt appropriés et regardez les variables et lancez la session de débogage. Lorsqu’il atteint le point d’arrêt, il fournit à GitHub Copilot des valeurs pour les variables surveillées et détermine votre prochaine étape, continuez à déboguer ou à résoudre le code du problème. Vous pouvez continuer avec cette conversation jusqu’à ce que vous ayez un test réussi.

GitHub Copilot Chat avec plan de débogage et étapes suivantes

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


corriger le code avec gitHub Copilot 📣

GitHub Copilot vous aide à résoudre les problèmes de code.

GitHub Copilot est désormais intégré à la liste des ampoules et des erreurs, ce qui vous fournit des correctifs rapides et des explications détaillées sur les problèmes de code. Que vous développiez en C# ou C++, cette fonctionnalité vous aide à comprendre et à résoudre les problèmes de votre codebase plus efficacement.

Pour commencer, appelez simplement l’ampoule et sélectionnez Correctif avec Copilot. Cela lancera une conversation inline avec GitHub Copilot, vous offrant un correctif disponible.

corriger le code avec GitHub Copilot à partir du lightbulb

Vous pouvez également sélectionner l’icône GitHub Copilot dans la liste d’erreurs pour ouvrir le panneau de conversation, où vous trouverez des explications détaillées et des solutions pour l’erreur à la main.

corriger le code avec GitHub Copilot à partir de la liste d’erreurs

En tirant parti de LLMs, GitHub Copilot fournit des explications et des correctifs utiles directement dans la liste des ampoules et des erreurs, ce qui améliore votre expérience de codage.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


Amélioration des achèvements IA pour le C#

GitHub Copilot apporte un contexte supplémentaire à partir de fichiers sources pertinents afin d’améliorer les achèvements pour C#.

Les saisies semi-automatique de code GitHub Copilot fournissent des suggestions de saisie semi-automatique au fur et à mesure que vous codez. Ces suggestions sont générées en fonction du contenu de votre fichier actif et de tous les autres fichiers ouverts dans votre éditeur. Toutefois, nous avons découvert que l’incorporation d’un contexte plus pertinent améliore considérablement ces suggestions.

Pour améliorer l’expérience des développeurs C#, nous avons mis à jour GitHub Copilot pour inclure un contexte C# supplémentaire, tel que les types et méthodes disponibles dans les achèvements.

Avec la dernière version de Visual Studio, GitHub Copilot considère désormais automatiquement les fichiers sémantiquement pertinents pour un contexte supplémentaire, même si ces fichiers ne sont pas ouverts dans votre éditeur. Cette amélioration permet de réduire les hallucinations tout en offrant des suggestions plus pertinentes et précises.

Avant: les fichiers sémantiquement pertinents ne sont pas considérés comme contexte pour les saisies semi-automatiques GitHub Copilot

fichiers sémantiquement pertinents ne sont pas considérés comme contexte pour les GitHub Copilot Completions

Après: les fichiers sémantiquement pertinents sont considérés comme contexte pour les saisies semi-automatiques GitHub Copilot

fichiers sémantiquement pertinents sont considérés comme contexte pour les GitHub Copilot Completions

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


code de référence
dans gitHub Copilot

présentation du référencement de code dans GitHub Copilot, ce qui vous permet d’autoriser les suggestions de code contenant des correspondances de code public tout en recevant des informations détaillées sur la correspondance.

Nous sommes heureux d’annoncer que le référencement de code est désormais disponible dans GitHub Copilot dans Visual Studio !

Exemple de code public référencé

Cette nouvelle fonctionnalité offre une transparence aux développeurs en les informant lorsque les suggestions De Copilot GitHub correspondent au code public. Vous pouvez maintenant voir le code correspondant, son fichier source et toutes les informations de licence associées, ce qui les aide à prendre des décisions plus éclairées lors du codage.

Le référencement de code vous permet de bloquer ou d’autoriser des suggestions contenant des correspondances de code public, améliorant ainsi le contrôle et la personnalisation.

En intégrant le référencement de code dans GitHub Copilot, nous encourageons le partage des connaissances, l’amélioration de la transparence et vous permet de créer en toute confiance. Que vous soyez développeur individuel ou membre d’une équipe plus grande, cette fonctionnalité améliore votre flux de travail et vous aide à naviguer facilement dans la complexité du code public.

Essayez GitHub Copilot dans Visual Studio aujourd’hui et prenez le contrôle de votre processus de développement avec une plus grande transparence et confiance !

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


conversation guidée dans gitHub Copilot

Présentation d’un nouveau moyen conversationnel de discuter avec GitHub Copilot.

Nous introduisons un nouveau moyen conversationnel d’interagir avec GitHub Copilot Chat !

exemple d’expérience de conversation guidée

Nous avons introduit un moyen plus interactif et conversationnel d’utiliser GitHub Copilot Chat. Maintenant, au lieu de vous sentir bloqué ou non sûr, GitHub Copilot vous guidera avec des questions de clarification lorsque le contexte n’est pas clair, garantissant ainsi des réponses plus précises et utiles.

Cette expérience de conversation guidée permet d’affiner vos requêtes, d’offrir des suggestions et de garantir des interactions plus douces et plus productives. Avec cette nouvelle modalité de conversation, vous profiterez d’un GitHub Copilot plus intelligent et plus intuitif qui s’adapte à vos besoins au fur et à mesure que vous codez.

Donnez à la nouvelle expérience de conversation guidée un essai aujourd’hui et voyez la différence pour vous-même !

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


intégration de GitHub Copilot

bien démarrer plus rapidement dans GitHub Copilot Chat !

Vous avez besoin d’aide pour bien démarrer avec GitHub Copilot Chat ? Nous avons introduit deux nouvelles fonctionnalités d’intégration pour vous aider à commencer plus rapidement.

Invites de démarrage

Envoyez votre premier message à GitHub Copilot en cliquant sur l’une des invites de démarrage ! Utilisez ces invites pour voir quelles fonctionnalités GitHub Copilot vous offre dans votre flux de travail.

démarrage GitHub Copilot invite

Bibliothèque d’invites

Si vous devez référencer à nouveau certaines invites prédéfinies, cliquez sur le bouton bibliothèque d’invites (icône de livre) pour afficher la liste de toutes les invites disponibles. Cette bibliothèque contient des invites couramment utilisées, un simple clic !

invite GitHub Copilot

Que vous explorez de nouvelles tâches de codage ou que vous recherchiez simplement de l’inspiration, nos invites sont ici pour vous aider à plonger directement et commencer à tirer le meilleur parti de GitHub Copilot Chat.

Donnez-lui un coup et voyez où il vous prend !

Important

Pour utiliser cette fonctionnalité, veillez à activer GitHub Copilot


.FILET

Obtenir plus avec .NET 9 📣

.NET 9 élève le développement d’applications cloud natif et intelligent, en se concentrant sur les améliorations de productivité, les déploiements rationalisés et l’intégration accélérée de l’IA.

.NET 9 élève le développement d’applications cloud natives et intelligentes, en se concentrant sur les améliorations de productivité, les déploiements rationalisés et l’intégration accélérée de l’IA, ce qui offre des performances supérieures dans un large éventail d’applications. Avec une prise en charge complète de .NET 9 dans Visual Studio 17.12, vous pouvez facilement tirer parti de toutes les dernières améliorations. Pour plus d’informations sur les nouveautés, consultez Nouveautés de .NET 9.

.NET 9

En outre, vous trouverez des mises à jour des fonctionnalités autour de l’IDE qui facilitent l’utilisation de .NET et ASP.NET plus productives que jamais.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.


Supprimer les avertissements pour des avis GitHub spécifiques respectés dans Visual Studio

NuGet permet de supprimer des avertissements pour des avis GitHub spécifiques et les supressions sont respectées dans Visual Studio.

NuGet Audit fournit des avertissements lorsqu’un package utilisé dans le projet présente une vulnérabilité connue. Il est toujours recommandé de procéder à une mise à niveau vers une nouvelle version du package, mais si la mise à niveau est impossible et que vous êtes certain que le logiciel n’est pas à risque, vous pouvez supprimer des avertissements pour des avis GitHub spécifiques en ajoutant NuGetAuditSuppress éléments au fichier projet.

<Project Sdk="Microsoft.NET.Sdk">
  <ItemGroup>
    <NuGetAuditSuppress Include="https://github.com/advisories/GHA1234" />
  </ItemGroup>
</Project>

Possibilité de configurer nuget.org en tant que source d’audit

Vous pouvez maintenant définir nuget.org en tant que source d’audit pour obtenir des informations sur les vulnérabilités même lors de l’utilisation d’autres flux NuGet.

NuGet Audit nécessite une source de package qui fournit une base de données de vulnérabilité. nuget.org fournit des informations sur les vulnérabilités de la base de données GitHub Advisories.

À compter de Visual Studio 17.12, il est désormais possible de spécifier des sources d’audit dans fichiers NuGet.Config. Il n’est donc plus nécessaire d’utiliser nuget.org en tant que source de package.

Si vous n’utilisez pas nuget.org en tant que source de package et que vous souhaitez utiliser NuGet Audit pour la création de rapports de packages vulnérables lors de la restauration, ajoutez ce qui suit à un fichier NuGet.Config dans votre répertoire de solution :

<confiuration>
  <!-- any existing config, including <packageSources> -->
  <auditSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
  </auditSources>
</configuration>

Débogage des diagnostics &

débogage blazor WebAssembly 📣

Une expérience de débogage améliorée pour les applications Blazor WebAssembly ciblant .NET 9 ou version ultérieure.

Visual Studio offre désormais une expérience de débogage améliorée pour les applications Blazor WebAssembly ciblant .NET 9 ou version ultérieure :

  • Les types de données affichés dans le débogueur correspondent désormais aux types de données .NET attendus.
  • Les membres de type et la visibilité des membres utilisent les icônes attendues.
  • La pile d’appels affichée est nettoyée pour afficher uniquement la pile des appels .NET et respecte correctement le paramètre Simplement mon code.
  • La fenêtre modules est désormais prise en charge.
  • La prise en charge de l’évaluation des expressions dans la fenêtre Exécution et pour les montres et les points d’arrêt conditionnels est développée et améliorée.

améliorations du débogage blazor

Pour activer la nouvelle expérience de débogage en préversion :

  • Activez le paramètre Activer le nouveau débogueur Mono .NET 9+.
  • Installez le dernier Kit de développement logiciel (SDK) .NET 9.
  • Mettez à jour votre application Blazor pour cibler .NET 9.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

histogramme du compteur
dans le du profileur

Insights améliorés sur les performances à l’aide de l’histogramme du compteur du profileur.

L’amélioration récente de la suite de profilage des performances de Visual Studio introduit la fonctionnalité d’histogramme de compteur. Cet outil vous permet d’identifier et d’analyser les données d’histogramme générées par les instruments d’histogramme. Lors de l’enregistrement de données à partir de ces instruments, les résultats de l’histogramme sont visualisés, fournissant une représentation claire de la distribution des données.

outil compteur d’histogrammes

En outre, le graphique de couloir offre une vue détaillée et segmentée des métriques de performances, ce qui améliore votre capacité à identifier et à résoudre efficacement les problèmes de performances.

méthode Display retourne des valeurs 📣

Le débogueur affiche désormais des valeurs de retour inline avec une assistance IA pour améliorer l’efficacité.

Le débogueur Visual Studio affiche désormais des valeurs inline pour les instructions de retour, répondant à l’une des fonctionnalités les plus demandées de la communauté des développeurs.

Cette amélioration vous permet de voir les valeurs exactes retournées par les fonctions directement dans le code, ce qui élimine la nécessité d’un code supplémentaire ou de variables temporaires pour inspecter les valeurs de retour.

valeurs de retour inline

Avec GitHub Copilot, vous pouvez l’utiliser à l’aide de l’option Demander à Copilot sur le pointage pour analyser les valeurs de retour directement dans Visual Studio, ce qui vous permet de résoudre les problèmes immédiatement.

Il est pris en charge dans le code natif et managé.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Exporter des groupes de points d’arrêt avec facilité 📣

Importation et exportation sans effort des groupes de points d’arrêt.

Les groupes de points d’arrêt Visual Studio prennent désormais en charge les fonctionnalités d’importation et d’exportation, ce qui vous permet de gérer et de gérer facilement vos structures de points d’arrêt dans plusieurs projets ou environnements.

groupes d’arrêt exportez les d’importation

Cette nouvelle fonctionnalité vous permet d’exporter vos groupes de points d’arrêt avec leurs configurations et de les importer ultérieurement dans différentes solutions, ce qui garantit une configuration de débogage cohérente sans avoir à recréer manuellement les groupes de points d’arrêt.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

IntelliSense pour le visualiseur IEnumerable 📣

visualiseur IEnumerable amélioré avec IntelliSense pour accélérer les requêtes LINQ.

Le visualiseur IEnumerable a été amélioré avec IntelliSense, fournissant des suggestions de code en temps réel et une autocomplétion, ce qui rend l’écriture d’expressions LINQ plus rapide et plus précise.

visualiseur IEnumerable IntelliSense

Cette amélioration simplifie le processus de création et de modification de requêtes en offrant des recommandations de code intelligent, en réduisant la probabilité d’erreurs et en accélérant le temps de développement.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Analyser l’utilisation de la mémoire au fil du temps

Sélectionner et comparer deux instantanés de mémoire à l’aide de la fenêtre Outil diagnostics.

La fenêtre Outil diagnostics prend désormais en charge la comparaison des instantanés de mémoire, ce qui facilite l’analyse des modifications de mémoire au fil du temps.

Pour utiliser cette fonctionnalité, vérifiez que vous avez au moins deux instantanés de mémoire capturés sous l’onglet Mémoire dans la fenêtre Outil diagnostics.

Sélection d’instantanés pour la comparaison
  • Maintenez la touche Ctrl enfoncée, puis cliquez sur les lignes d’instantanés pour sélectionner deux instantanés.
  • Vous pouvez également conserver la touche Maj et utiliser les touches de direction up/down pour sélectionner deux instantanés consécutifs.
Désélection des instantanés
  • Maintenez la touche Ctrl enfoncée, puis cliquez sur l’instantané que vous souhaitez désélectionner.
Affichage de la différence

Une fois que vous avez sélectionné les instantanés de mémoire pour la comparaison, cliquez sur le bouton Afficher la différence situé au-dessus de la liste d’instantanés pour afficher les différences entre eux.

View Diff Snapshot MMA

Outils Git

Gérer le changement de nom de fichier avec Git 📣

n’oubliez pas quand vous renommez des fichiers avec une nouvelle notification.

Lorsque vous renommez des fichiers à partir de l’Explorateur de solutions, vous serez rappelé à l’étape de vos modifications pour voir les renommages dans Git. Cela améliore votre confiance que Git reconnaît la modification de votre fichier et le suivi correctement. Nous avons constaté qu’il s’agit d’un point de confusion pour de nombreux clients, donc nous avons travaillé avec des personnes de la Communauté des développeurs pour produire une nouvelle notification.

notification Git mv

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

brouillons et modèles de demande de tirage (pull request) 📣

Créer des brouillons de demande de tirage et démarrer vos descriptions avec des modèles dans Visual Studio.

Vous pouvez maintenant créer des brouillons de demande de tirage et démarrer vos descriptions avec des modèles GitHub dans Visual Studio. Il s’agissait des deux principales requêtes pour la création d’une expérience de demande de tirage.

Brouillon de demandes de tirage

Utilisez le menu déroulant du bouton Créer pour créer en tant que brouillon.

Créer une option brouillon de demandes de tirage (pull requests)

Modèles de demande de tirage

Votre modèle de demande de tirage par défaut sera utilisé lors de la création d’une demande de tirage pour GitHub et Azure DevOps. En savoir plus sur l’ajout d’un modèle de demande de tirage à votre dépôt dans la documentation gitHub et documentation Azure DevOps.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.Et prenez cette enquête pour vous aider à améliorer encore la fonctionnalité.

créer des dépôts GitHub internes 📣

Visual Studio prend désormais en charge la création de dépôts internes et inclut des conseils pour chaque type de référentiel afin de vous donner plus de confiance lors du démarrage d’un nouveau projet.

Visual Studio prend désormais en charge les dépôts internes pour vos organisations GitHub. Nous avons également inclus des conseils pour chaque type de référentiel pour vous donner plus de clarté sur la visibilité du nouveau projet en fonction du compte que vous utilisez.

boîte de dialogue Nouveau référentiel

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Copier le lien Git 📣

Vous pouvez obtenir un lien GitHub ou Azure DevOps vers une ligne de code spécifique pour faciliter le partage avec vos collègues.

Chaque fois que vous partagez quelques lignes de code avec un collègue, il peut souvent être utile d’obtenir un contexte supplémentaire à partir de votre référentiel. Toutefois, s’ils travaillent sur quelque chose d’autre, cela peut prendre trop de temps et perturber leur travail pour extraire votre branche.

À présent, vous pouvez mettre en surbrillance le code que vous souhaitez partager dans votre éditeur, ouvrir le menu contextuel en cliquant avec le bouton droit, puis, sous le sous-menu Git, obtenir un lien partageable vers votre code dans GitHub ou Azure DevOps. Cela simplifie et facilite la collaboration, et facilite le flux entre l’IDE et vos dépôts distants sur le web.

copier le menu contextuel de l’URL Git

Vous pouvez également obtenir des liens partageables directement à partir de l’historique de validation. Cela permet au code actuellement non extrait d’être référencé aussi facilement.

Copier l’URL Git dans la fenêtre de référentiel Git

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

prise en charge des référentiels multiples Git 📣

Vous pouvez désormais créer des demandes de tirage (pull requests) et lier des éléments de travail dans des scénarios multi-référentiels pour GitHub et Azure DevOps.

Vous pouvez maintenant créer des demandes de tirage (pull requests) et lier des éléments de travail dans des scénarios multi-référentiels. Pour GitHub et Azure DevOps, nous prenons en charge vos intégrations lorsque vous utilisez le sélecteur de référentiels pour vous concentrer sur un référentiel particulier dans vos scénarios de multirépo.

sélecteur de référentiels

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Personnaliser le message de validation Git IA 📣

Vous pouvez ajouter des instructions supplémentaires à l’invite de génération de votre message de validation Git avec GitHub Copilot.

Vous pouvez maintenant ajouter des instructions supplémentaires à l’invite de génération de votre message de validation Git avec GitHub Copilot. Cela vous permet de personnaliser le message de validation pour mieux répondre aux normes de votre flux de travail et de votre équipe. Vous pouvez spécifier le nombre de lignes à générer, la longueur des lignes et même fournir un exemple de style de validation. Modifiez le message dans le champ d’invite sous Tools > Options > GitHub > Copilot > Source Control Integration.

personnaliser le de message Git

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

IDE

configuration de lancement à plusieurs projets 📣

Simplifiez le débogage en configurant et en enregistrant des profils de lancement pour des projets spécifiques dans des solutions multi-projets. Partagez facilement des configurations avec votre équipe.

La fonctionnalité Configuration de lancement multi-projet vous permet de configurer et d’enregistrer des profils pour lancer des projets spécifiques dans une solution multi-projet dans des états prédéfinis pour le débogage.

configuration de lancement à plusieurs projets

Cela simplifie le processus d’utilisation de solutions complexes, améliore l’efficacité du débogage et facilite le partage des configurations entre les membres de l’équipe.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Note

Cette fonctionnalité doit être activée sous outils -> Gérer les fonctionnalités en préversion


avertissements de sécurité MotW

Marquer des avertissements de sécurité web (MotW) sont désormais intégrés à la fonctionnalité d’approbation globale.

Visual Studio affiche un avertissement de sécurité lorsqu’il détecte que vous tentez d’ouvrir le contenu marqué avec la marque de l’identificateur Web (MotW).

Ce nouvel avertissement lié à l’approbation transmet les risques d’ouverture de contenu à partir de sources potentiellement dangereuses telles que les téléchargements Internet.

boîte de dialogue Approbation signalant les risques de sécurité liés à l’ouverture de téléchargements web dans Visual Studio

Vous pouvez modifier l’expérience d’approbation par défaut en accédant au paramètres d’approbation sous Outils > Options > Environnement.

paramètres d’approbation vous permettent de personnaliser l’expérience d’approbation par défaut

Teams Toolkit new AI templates

Le Kit de ressources Teams intègre de nouveaux modèles d’application Teams IA.

Teams Toolkit ajoute trois nouveaux modèles d’application Teams AI :

Elles sont les suivantes :

modèles d’application IA Teams

  1. bot de conversation AI de base - vos propres copilotes dans Microsoft Teams créés avec teams AI Library

  2. Chat With Your Data - modèle de chatbot intelligent avec des connaissances de domaine à partir d’une source de données personnalisée.

    Teams Toolkit vous permet désormais de créer custom Copilot, qui est un chatbot alimenté par l’IA avec une fonctionnalité RAG capable de comprendre le langage naturel et de récupérer des données de domaine pour répondre à des questions spécifiques au domaine. Ce modèle prend en charge l’accès à vos données personnalisées dans l’application Copilot personnalisée.

    Lorsque vous sélectionnez ce modèle, vous pouvez sélectionner deux façons de vous connecter à vos données :

    un. azure AI Search: votre chatbot peut accéder aux données sur le service de recherche Azure AI et l’utiliser dans la conversation avec les utilisateurs.

    b. source de données personnalisée: vous pouvez ajouter la source de données souhaitée à l’application Copilot personnalisée, par exemple le système de fichiers ou la base de données vectorielle.

  3. l’agent IA - un agent IA dans Teams qui peut prendre des décisions et effectuer des actions basées sur le raisonnement LLM.

Essayez les nouveaux modèles d’application IA pour démarrer votre parcours IA dans Teams !

Copier des fichiers entre des instances 📣

Vous pouvez maintenant copier des fichiers et des dossiers de l’Explorateur de solutions dans une instance de Visual Studio vers une autre.

Nous sommes ravis d’introduire une fonctionnalité hautement demandée dans Visual Studio ! Vous pouvez désormais copier et coller en toute transparence des fichiers et dossiers de code entre différentes instances de Visual Studio à l’aide de l’Explorateur de solutions. Sélectionnez simplement le fichier ou le dossier souhaité, utilisez Ctrl+C ou Ctrl+X, basculez vers une autre instance de Visual Studio et utilisez Ctrl+V pour inclure ces fichiers ou dossiers dans votre nouvelle solution. Toutes les modifications seront reflétées avec précision dans le système de fichiers.

Outre la copie et le collage, vous pouvez également faire glisser les fichiers et dossiers d’une instance de Visual Studio vers un autre.

Copier des fichiers entre des instances Visual Studio

Auparavant, cette fonctionnalité n’était disponible que pour quelques types de projet, mais nous l’avons maintenant développée pour inclure tous les principaux types de projets dans Visual Studio.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Nuage

Azure App Service publie les mises à jour de sécurité

publication sur Azure App Service en toute sécurité à l’aide des mises à jour de sécurité intégrées.

Les conseils de publication d’Azure App Service conseillent aux clients de désactiver l’authentification de base et d’activer la publication via l’authentification intégrée.

de publication sécurisée d’Azure Tools

La nouvelle fonctionnalité de Visual Studio 2022 désactive l’authentification de base et active la sécurité intégrée pour la publication sur Azure App Service. Cela garantit que la publication des informations d’identification est gérée en toute sécurité, ce qui réduit les risques associés à l’authentification de base.

Lors de la publication sur azure App Service avec l’authentification de base activée (ce qui n’est pas recommandé), les utilisateurs voient l’option Activer l’authentification de base et elles ne sont pas cochées par défaut. Les clients qui doivent conserver l’authentification de base peuvent cocher la case, mais étant donné la recommandation de désactiver l’authentification de base, cette option est désactivée par défaut. Par conséquent, vous commencer à sécuriser si c’est la première fois que vous publiez ou, vous obtenir une sécurisée une fois que vous passez par le processus de publication après avoir mis à jour Visual Studio.

publication sécurisée d’Azure Tools désactivée

Si vous avez créé l’application web récemment via le portail ou cette version ultérieure de Visual Studio, l’authentification de base est désactivée par défaut. Pour toute application web déjà désactivée par l’authentification de base, nous contournons par inadvertance l’application web moins sécurisée en désactivant complètement la case à cocher, de sorte que vous restez sécurisé.

la publication sécurisée Azure Tools activée

prise en charge d’Azure WebJobs Linux 📣

publication sur Azure WebJobs sur Linux est désormais prise en charge par un clic droit sur publier dans Visual Studio.

Les applications console .NET 5.0+ multiplateformes sont prises en charge sur Azure WebJobs Linux. Vous pouvez également cliquer avec le bouton droit sur publier votre code sur Azure WebJobs sur Linux à partir de Visual Studio.

boîte de dialogue Publier affichant le cible Linux

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

azure Functions Flex Consumption

publier sur le plan d’hébergement Azure Flex Consumption, actuellement en préversion.

Si vous essayez le nouveau plan d’hébergement Azure Functions Flex Consumption, actuellement en préversion, vous pouvez cliquer avec le bouton droit sur Publier sur Flex à partir de Visual Studio.

Flex Consumption étendra davantage les fonctionnalités de vos applications et vous fournira les éléments suivants :

  • Intégration de réseau virtuel sans frais supplémentaires
  • Mise à l’échelle rapide et prévisible avec choix de taille d’instance et par contrôle d’accès concurrentiel d’instance
  • Serverless avec mise à l’échelle à zéro et vous payez uniquement pour les instances pendant qu’elles sont actives
  • Atténuation du démarrage à froid avec la fonctionnalité facultative d’instances Always Ready

En savoir plus sur Flex Consumption dans le billet de blog d’annonce ou de documentation et essayer l’un de nos exemples de .

publication Flex Consumption d’Azure Functions

mise à jour de sécurité des services connectés

Rendre vos applications et vos expériences de développement plus sécurisées.

Dans cette mise à jour des services connectés, vous pouvez maintenant connecter votre code de projet aux ressources Azure, telles que stockage Azure, sans avoir besoin de secrets ou de chaînes de connexion dans votre code ou configuration.

À présent, vous donnerez un nom à votre connexion, les points de terminaison sont conservés dans la configuration au lieu de la chaîne de connexion complète. Cela signifie que moins de secrets sur le disque, votre temps de développement sera plus sécurisé par défaut et subira moins d’erreurs lors de la validation des secrets dans le contrôle de code source.

boîte de dialogue Se connecter au stockage Azure

Nous utilisons également les derniers kits de développement logiciel (SDK) Azure. Vous bénéficiez donc d’une prise en charge de la connexion à vos ressources Azure à l’aide de votre connexion Visual Studio (ou Azure CLI) au lieu de vous connecter via une chaîne de connexion. Lors de l’exécution locale, votre code utilise vos informations d’identification connectées pour accéder aux ressources. Lors de l’exécution dans Azure, le Kit de développement logiciel (SDK) Azure utilise l’identité managée du service d’application pour accéder aux ressources.

Les services connectés le configurent pour vous et injectent le code approprié pour utiliser l’identité intégrée au lieu des secrets. Lors de la publication, votre application est configurée avec l’identité et les rôles appropriés requis pour accéder aux ressources.

Bureau

outils MSIX améliorés pour les applications UWP sur .NET 9 📣

Visual Studio fait désormais référence aux nouveaux outils MSIX de projet autonome pour empaqueter des applications UWP sur .NET 9.

Dans la préversion initiale de la prise en charge UWP pour .NET 9, nous avons utilisé WindowsAppSDK pour fournir les outils MSIX pour empaqueter des applications à l’aide de la configuration de projet unique (par opposition à l’utilisation d’un projet d’empaquetage d’applications Windows, c’est-à-dire un fichier .wapproj). Cela a introduit plusieurs problèmes, le principal étant que la dépendance transitive WebView2 de WindowsAppSDK a été automatiquement ajoutée à toutes les applications UWP, même si ce n’est pas nécessaire.

Nous avons maintenant entièrement découplé l’outil MSIX du projet unique et l’avons publié en tant que nouveau package NuGet autonome : Microsoft.Windows.SDK.BuildTools.MSIX. Cela inclut tout ce qui est nécessaire pour générer, déployer et exécuter des applications UWP sur .NET 9, ainsi que la génération de packages MSIX à publier dans le Microsoft Store ou le chargement indépendant. Les outils UWP sur .NET 9 dans Visual Studio ajoutent automatiquement ces deux références de package si nécessaire :

outils MSIX

Cette opération supprime entièrement la dépendance transitive WebView2 et l’erreur de génération qui était présente pour les nouveaux projets dans les versions préliminaires précédentes quand vous ne définissez pas manuellement la propriété WindowsSdkPackageVersion dans le fichier .csproj. Avec cette modification, de nouveaux projets vont simplement générer et s’exécuter sans avoir besoin de modifications supplémentaires !

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

composants WinUI améliorés

améliorer la configuration du projet WinUI avec une recherche améliorée de Visual Studio Installer, ce qui simplifie l’emplacement des composants pour les développeurs.

Simplifiez la configuration de votre projet WinUI avec notre dernière mise à jour du programme d’installation de Visual Studio ! Les développeurs peuvent désormais localiser rapidement les composants winUI, ce qui élimine la frustration précédente de naviguer dans un résultat de recherche vide. Cette amélioration simplifie la configuration de l’environnement de développement, ce qui permet une expérience utilisateur plus intuitive et efficace.

Image montrant la nouvelle recherche de composants Individuels WinUI dans Visual Studio Installer

Ouvrez Visual Studio Installer, accédez à composants individuels onglet et recherchez les mots clés liés à WinUI (WinUI, WinRT) !

prise en charge du Kit de développement logiciel (SDK) .NET 9 pour UWP 📣

Visual Studio inclut désormais le Kit de développement logiciel (SDK) .NET 9 avec la prise en charge UWP prête à l’emploi.

L’une des étapes nécessaires pour essayer UWP sur .NET 9 dans la préversion initiale a été d’installer une build nocturne du Kit de développement logiciel (SDK) .NET 9. Avec cette nouvelle version de Visual Studio, cela n’est plus nécessaire.

Visual Studio inclut désormais le Kit de développement logiciel (SDK) .NET 9, qui a toute la nouvelle prise en charge de UWP sur .NET 9 (en particulier, logique pour référencer les projections XAML UWP et configurer CsWinRT pour les types de projets pour les applications XAML UWP). Vous pouvez maintenant générer et exécuter UWP sur des projets .NET 9 avec le Kit de développement logiciel (SDK) .NET installé automatiquement avec Visual Studio.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

.csproj simplifié pour les 📣 UWP

UseUwpTools est désormais défini automatiquement par Visual Studio pour les projets UWP modernes sur .NET 9.

Les applications et bibliothèques UWP utilisant .NET 9 utilisées pour exiger deux propriétés dans leurs fichiers .csproj : UseUwp, qui configure le Kit de développement logiciel (SDK) .NET pour les applications XAML UWP et UseUwpTools, ce qui permet à tous les nouveaux outils de Visual Studio de générer et d’exécuter des applications XAML UWP.

La propriété UseUwpTools est désormais automatiquement définie par Visual Studio quand UseUwp est définie pour rendre le fichier .csproj moins détaillé dans le scénario courant. Pour les scénarios avancés, il est toujours possible de désactiver manuellement UseUwpTools.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

RID pour UWP dans le 📣 fixe .NET 9

UWP sur les bibliothèques de classes .NET 9 définissent correctement les RID sur les valeurs appropriées pour L’AOT natif.

Nous avons résolu un bogue dans les outils APPX pour les bibliothèques de classes UWP (et les composants WinRT) sur .NET 9, qui appliquait les identificateurs d’exécution de UWP sur .NET Native par défaut (c’est-à-dire à l’aide du préfixe win10- et notamment des plateformes qui ne sont plus prises en charge, telles que arm).

Les outils APPX définissent désormais les ID appropriés pour les projets .NET 9 par défaut : win-x86;win-x64;win-arm64. Il est toujours possible de spécifier manuellement ces éléments, si vous le souhaitez.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

création de projet UWP fixe 📣

Nous avons résolu l’Assistant Modèle universel qui entraînait l’absence d’une boîte de dialogue d’erreur lors de la création de nouveaux projets UWP sur .NET 9.

Si vous utilisez le préversion de VSIX avec les nouveaux modèles de projet pour UWP sur .NET 9, vous avez peut-être remarqué qu’une boîte de dialogue d’erreur s’affichait correctement lors de la création d’un projet. Cela était particulièrement problématique lors de la création d’une solution, car Visual Studio ne l’ouvrirait pas correctement après avoir créé le projet. Ce problème a été résolu et la création de nouveaux projets ciblant UWP sur .NET 9 fonctionne désormais correctement.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Web

variables de requête
dans les fichiers HTTP 📣

Les fichiers HTTP prennent désormais en charge les variables de requête. C’est là que vous pouvez envoyer une demande, puis utiliser des données de la réponse ou de la demande, dans les futures demandes.

Lorsque vous utilisez fichiers HTTP, un scénario courant appelle un point de terminaison, en prenant une valeur de la réponse et en envoyant une requête ultérieure. Par exemple, vous pouvez appeler un point de terminaison pour authentifier un utilisateur, puis sur les appels ultérieurs, vous pouvez transmettre le jeton retourné à partir du point de terminaison de connexion. Avant cette version, cette version n’était pas possible dans Visual Studio. Dans l’extrait de code ci-dessous, vous pouvez voir un exemple de fonctionnement dans un fichier HTTP.

# @name login
POST {{TodoApi_HostAddress}}/users/token
Content-Type: application/json

{
  "username": "{{myusername}}",
  "password": "{{mypassword}}"
}

###

GET {{TodoApi_HostAddress}}/todos
Authorization: Bearer {{login.response.body.$.token}}

###

Dans l’extrait de code ci-dessus, il existe deux requêtes, la première appel au point de terminaison /users/token pour authentifier l’utilisateur. Immédiatement au-dessus de la ligne de requête, vous verrez le commentaire # @name login. Cette syntaxe donne un nom à la demande (login dans ce cas) et la configure en tant que variable de requête. Lorsque la requête est envoyée, vous pouvez accéder aux valeurs à partir de la réponse ou de la demande, dans toute requête ultérieure envoyée à partir de ce fichier HTTP. Étant donné qu’il s’agit d’une demande de connexion, veillez à sécuriser vos secrets. Dans Visual Studio, nous prenons en charge l’accès aux secrets de manière sécurisée. Consultez cette section sur la documentation pour plus d’informations sur la gestion des secrets.

La deuxième demande appelle un point de terminaison authentifié, /todos, qui retourne les éléments todo pour cet utilisateur. Dans la requête, le jeton est transmis en tant qu’en-tête avec la ligne.

Authorization: Bearer {{login.response.body.$.token}}

Le point de terminaison /users/token retourne une réponse au format JSON. Le jeton est extrait avec une expression JSON Path, $.token, dans le corps de la réponse. Si vous utilisez un point de terminaison qui retourne du code XML, au lieu d’une expression JSON Path, vous pouvez passer une expression XPath. La prise en charge de Visual Studio a été inspirée par l’extension OSS existante pour client REST disponible pour Visual Studio Code. Vous pouvez en savoir plus sur les variables de requête. Nous allons bientôt ajouter de la documentation pour discuter de ce support plus en détail.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

prise en charge de Vitest dans JavaScript et TypeScript 📣

Lorsque vous utilisez des projets JavaScript et TypeScript, vous pouvez désormais créer des cas de test avec Vitest.

Dans les projets JavaScript et TypeScript (JSTS), les projets qui ont l’extension .esproj, nous avons ajouté la prise en charge de la découverte et de l’exécution de tests créés avec Vitest. Pour commencer à utiliser les tests Vitest, dans un projet JSTS, ajoutez le package vitest à l’aide de npm dans l’Explorateur de solutions, puis modifiez le fichier projet pour que les propriétés suivantes aient été déclarées.

    <JavaScriptTestRoot>test\</JavaScriptTestRoot>
    <JavaScriptTestFramework>Vitest</JavaScriptTestFramework>

Vérifiez que la valeur de JavaScriptTestRoot a le chemin d’accès relatif correct à l’emplacement de vos fichiers de test.

Ajoutez vos tests au dossier approprié et générez le projet/la solution. Après cela, vous devez voir les cas de test dans l’Explorateur de tests.

Explorateur de tests avec des tests vitest

Dans l’Explorateur de tests, vous pouvez voir les différents cas de test découverts et exécuter les cas de test.

Nous n’avons pas encore ajouté de prise en charge pour le débogage, mais nous ajouterons bientôt cette prise en charge. Un autre problème connu est que lorsque vous double-cliquez sur un cas de test dans l’Explorateur de tests, vous accédez à la première ligne du fichier où le cas de test est défini. Nous améliorerons également cette expérience.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

indicateurs de superposition pour d’autres langues 📣

prise en charge de l’indicateur de superposition a été ajoutée à JavaScript, TypeScript, Python et Razor, ainsi qu’à un paramètre pour contrôler son comportement.

Les indicateurs de superposition affichent des informations supplémentaires sur le code source rendu inline. Cela est généralement utilisé pour afficher des types déduits, des noms de paramètres et d’autres informations implicites de votre code directement dans votre éditeur.

Nous avons ajouté la prise en charge de l’affichage des indicateurs de superposition en JavaScript, TypeScript, Razor et Python. Nous avons également ajouté un nouveau paramètre pour vous permettre de personnaliser le comportement des indicateurs dans ces langues. Ce paramètre ne s’applique pas encore à C# et C++. Pour activer les indicateurs de superposition pour ces langues, vous pouvez utiliser le nouveau paramètre dans Tools > Options > Éditeur de texte > Toutes les langues > indicateurs de superposition. Vous pouvez voir la nouvelle option dans l’image suivante.

paramètre global Indicateurs de superposition

Il existe trois valeurs différentes pour les indicateurs de superposition.

  • Always : Toujours afficher les indicateurs de superposition.
  • Lorsque vous appuyez sur Alt+F1: affiche uniquement les indicateurs de superposition, tandis que Alt et F1 sont enfoncés. Il s’agit de la valeur par défaut.
  • Jamais : indicateurs de superposition ne sont jamais affichés.

Pour JavaScript et TypeScript, il existe une page d’options supplémentaires pour configurer le comportement des indicateurs inlay. Vous trouverez cette option dans Tools > Options > Éditeur de texte > JavaScript/TypeScript >> Général.

Ces options sont affichées dans l’image qui suit.

paramètre TypeScript global des indicateurs de superposition

Par défaut, toutes ces options sont désactivées, vous devez activer les indicateurs qui vous intéressent pour l’affichage des fichiers JavaScript et TypeScript. Dans une prochaine mise à jour, nous pouvons modifier les valeurs par défaut de ces options. Dans l’image ci-dessous, vous pouvez voir un fichier JavaScript qui affiche des indicateurs de superposition.

indicateurs de superposition

Dans l’image précédente, les indicateurs de superposition affichés sont les zones grises avec : number pour indiquer le type de la variable.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

environnement partagé de fichiers HTTP 📣

Dans les fichiers d’environnement HTTP, nous avons ajouté la prise en charge du partage de variables entre les environnements.

Lorsque vous utilisez fichiers HTTP dans Visual Studio, vous pouvez définir environnements afin de pouvoir créer différents paramètres pour les tests d’API. Auparavant, le partage d’une variable entre ces environnements n’était pas possible. Nous avons ajouté la prise en charge d’une nouvelle entrée, $shared, dans le fichier d’environnement qui vous permet de définir des valeurs par défaut pour les variables disponibles dans tous les environnements.

Par exemple, considérez le fichier d’environnement (http-client.env.json) ci-dessous.

{
    "$shared": {
        "HostAddress": "https://localhost:7293"
    },
    "dev": {
        "username": "sayedha"
    },
    "dev2": {
        "username": "madsk"
    },
    "staging": {
        "username": "staginuser",
        "HostAddress": "https://sayedrest.example.com"
    }
}

Nous avons défini les valeurs partagées dans $shared ci-dessus, qui se compose de la variable HostAddress définie sur localhost:7293.

Parmi les trois environnements définis, aucun environnement de développement n’a spécifié la valeur de HostAddress, mais la préproduction a une valeur pour celle-ci.

Lorsque vous utilisez l’environnement dev ou dev2, la valeur de HostAddress provient de $shared, car ces environnements n’ont pas de valeur pour HostAddress. Lors de l’utilisation de l’environnement intermédiaire, la valeur de HostAddress est définie sur https://sayedrest.example.com.

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

Données

projets SQL de style SDK dans SSDT 📣

Vous pouvez désormais utiliser le format de fichier projet de style SDK dans vos projets SQL Server Data Tools.

Cette mise à jour ajoute des projets SQL basés sur le Kit de développement logiciel (SDK) Microsoft.Build.Sql, qui apporte une prise en charge multiplateforme et des références de package améliorées aux projets SQL Server Data Tools (SSDT). Avec des fichiers projet et des références de base de données moins détaillés aux packages NuGet, les équipes peuvent collaborer plus efficacement sur des bases de données volumineuses dans un seul projet ou compiler plusieurs ensembles d’objets à partir de plusieurs projets.

projet SQL de style SDK dans l’Explorateur de solutions

Les déploiements de base de données à partir d’un projet Microsoft.Build.Sql peuvent être automatisés dans les environnements Windows et Linux où l’outil dotnet Microsoft.SqlPackage publie l’artefact de build (.dacpac) à partir du projet SQL. En savoir plus sur la préversion des projets SQL de style SDK et devOps pour SQL.

Le KIT SDK de projet Microsoft.Build.Sql est open source et développé sur GitHub.

Veillez à installer le dernier composant SSDT preview dans le programme d’installation de Visual Studio pour utiliser les projets SQL de style SDK dans votre solution.

Installer activer la fonctionnalité SSDT en préversion

📣 Consultez ticket de fonctionnalité pour partager vos commentaires et poursuivre la conversation.

C++

définir des arguments de ligne de commande C++

Une nouvelle façon de définir vos arguments de ligne de commande directement à partir de la barre d’outils.

Définissez rapidement vos arguments de ligne de commande pour votre projet C++ avec la nouvelle Définir des arguments élément de barre d’outils. Cette zone de liste modifiable vous permet de définir vos arguments de ligne de commande directement à partir de la barre d’outils. Vous pouvez donc modifier rapidement vos arguments. Lorsque vous exécutez votre projet, tous les arguments entrés dans la zone sont passés.

Ce composant de barre d’outils s’affiche par défaut si vous avez développement de jeux avec la charge de travail C++ installée. Si vous ne le voyez pas, vous pouvez l’ajouter en cliquant avec le bouton droit sur la barre d’outils et en sélectionnant Définir des arguments.

Remarque : Cette fonctionnalité est actuellement disponible pour les projets Unreal Engine uniquement. Les projets C++ généraux seront pris en charge dans les prochaines versions.

définir des arguments de ligne de commande C++

vue Build Insights

Découvrez comment utiliser chaque onglet de Build Insights via un lien nouvellement ajouté à la documentation.

Vous pouvez maintenant voir une brève description sur la façon dont chaque onglet de Build Insights peut être utilisé, ainsi qu’un lien vers la documentation pour obtenir une explication détaillée.

générer des explications d’affichage Insights

ajustements de chemin Build Insights

Obtenir une vue plus claire de votre fichier dans Build Insights, voir le chemin complet sur le pointage.

Nous avons masqué des chemins complets et relatifs pour réduire l’encombrement. Pour afficher les chemins complets, pointez simplement sur le fichier. Vous verrez également une nouvelle colonne nom de fichier pour les fichiers et unités de traduction, affichée par défaut pour vous aider à identifier rapidement les fichiers sans analyser de longs chemins d’accès.

Build Insights Path Adjustments

Ouvrir le dossier pour le uproject d’unreal Engine

Une nouvelle façon d’ouvrir votre projet uproject.

Nous avons ajouté un point d’entrée supplémentaire pour ouvrir votre uproject Unreal Engine avec la prise en charge uproject de Visual Studio. Vous pouvez maintenant ouvrir votre projet uproject directement à partir du menu fichier en sélectionnant ouvrir > projet Unreal Engine.... Cela ouvre votre projet Unreal Engine dans Visual Studio.

Pour plus d’informations sur l’utilisation de cette fonctionnalité, consultez Modification directe de .uproject dans Visual Studio.

unreal Engine Open Folder

amélioration de la signature de modification

Vous pouvez maintenant modifier les signatures avec notre interface C++ améliorée.

Nous avons mis à jour l’interface Change Signature pour C++. Vous pouvez maintenant ajouter, supprimer et réorganiser des paramètres dans la section configuration des paramètres. En outre, vous pouvez modifier leur ordre en les sélectionnant et en les faisant glisser vers une nouvelle position.

Les méthodes d’accès restent les mêmes : appuyez sur Ctrl+. pour déclencher le menu Actions rapides et refactorisations, puis sélectionner Modifier la signature.

amélioration des de signature de modification

Principaux correctifs de bogues signalés par l’utilisateur

📣 Consultez la liste complète de tous les correctifs de bogues signalés par l’utilisateur [correctifs de bogues][correctifs de bogues] qui l’ont rendu dans cette version.

Problèmes connus

Version 17.12.6

publication : 11 marsth, 2025

Correctifs de bogues principaux De la communauté
Correction d’un problème d’initialisation incorrect pour certains structs avec des membres de taille zéro.
Le désinfecteur d’adresse (ASan) est désormais lié à OneCoreUAP_apiset.lib, une bibliothèque parapluie, plutôt que directement vers des bibliothèques Win32. Il s’agit de rendre ASan plus portable sur plusieurs versions et appareils du système d’exploitation. Si votre code dépend de manière transitive des modules Win32 apportés par ASan (non recommandé), il peut s’agir d’une modification cassante. Dans ce cas, nous vous recommandons de lier votre programme directement aux bibliothèques de dépendances Win32 nécessaires. ticket de commentaires
Correction d’un problème dans le renommage inline C# dans lequel l’identificateur entier a été sélectionné lorsque des suggestions de renommage étaient disponibles. Cela remplacerait la sélection du développeur et pourrait entraîner une mauvaise saisie, en particulier si le développeur a déplacé le caret dans l’interface de renommage inline. À présent, les suggestions de renommage copilot ne modifient pas la sélection dans l’interface de renommage inline. ticket de commentaires
Correction d’un problème où les DLL instrumentées déchargées pendant l’exécution du test d’entrée du fuzzer provoquent un faux rapport d’erreur ASan positif et un incident. ticket de commentaires
Ice x86 après la mise à jour des données d’optimisation PGO ticket de commentaires
Correction d’un problème où les clients disposant d’un matériel graphique Intel pouvaient faire défiler l’éditeur après avoir déclenché un aperçu d’image sur le pointage. ticket de commentaires
VS2022 Professionnel - Impossible de se connecter au compte m ticket de commentaires
Suppression de la liste déroulante des arguments de ligne de commande pour atténuer le blocage de l’interface utilisateur dans l’expérience Unreal Engine.
Les projets Blazor interrompent IntelliSense 17.12.2 ticket de commentaires
Conseils de sécurité traités CVE
Vulnérabilité d’élévation de privilèges Visual Studio CVE-2025-25003
Vulnérabilité d’élévation de privilèges .NET CVE-2025-24070
Vulnérabilité d’élévation de privilèges du programme d’installation de Visual Studio CVE-2025-24998

Version 17.12.5

publication : 11 févrierth, 2025

Correctifs de bogues principaux De la communauté
Nous avons résolu un problème où parfois l’outil Utilisation du processeur n’affichait pas les résultats, même s’il avait précédemment capturé des données.
L’analyse du code MSVC peut désormais détecter l’utilisation de pointeurs qui pointent vers des ressources dans des objets temporaires détruits lorsqu’ils sont utilisés dans la liste d’initialiseurs d’un tableau. ticket de commentaires
Erreur avec le projet String ::Format dans le projet bibliothèque de classes CLR (.NET) C++ ticket de commentaires
Régression dans la version 17.12.0 : Échec de substitution est une erreur C3699 lors de la compilation avec /CLR ticket de commentaires
Mise à jour du Kit de développement logiciel (SDK) Windows 11 (10.0.26100.0) installé par Visual Studio vers la build de maintenance de janvier 2025.
Correction d’un bogue dans l’optimiseur qui conduit à un codegen incorrect et qui a été observé affectant la fonction std ::sort lorsqu’elle est appelée à partir d’une coroutine.
Conseils de sécurité traités CVE
Visual Studio Installer élévation de privilèges - Élément de chemin de recherche non contrôlé permet à un attaquant non autorisé d’élever des privilèges localement. CVE-2025-21206

Version 17.12.4

publication : 14 janvierth, 2025

Correctifs de bogues principaux De la communauté
Résolution d’une incompatibilité entre Live++ (un outil de rechargement à chaud C++ tiers) et Visual Studio 2022. ticket de commentaires
Résolution d’un blocage dans All-In-One Search (Ctrl+T, Ctrl+Q). ticket de commentaires
Le débogueur Visual Studio ne peut pas afficher les valeurs dans la fenêtre « Locals ». ticket de commentaires
Correction d’un bogue provoquant un blocage immédiat de VS et la fermeture lors de l’ouverture du Gestionnaire de package NuGet si le volet de détails côté droit était dimensionné pour être très petit. ticket de commentaires
Correction d’un problème où le pointage sur un fichier Docker pouvait bloquer VS.
Correction d’un problème d’initialisation incorrecte pour certains structs avec des membres de taille zéro.
Correction d’un problème pour les cibles x86 où les registres d’images utilisés pendant les coroutines peuvent ne pas être rechargés correctement. ticket de commentaires
VS inclut désormais MAUI 8.0.100 (SR10) ; MAUI 9.0.14 (SR1.4)
Correction du scintillement des couleurs de syntaxe lors du défilement via https://github.com/dotnet/roslyn/pull/75796||
Conseils de sécurité traités CVE
Vulnérabilité d’exécution de code à distance .NET et Visual Studio CVE-2025-21172
Vulnérabilité d’exécution de .NET, .NET Framework et Visual Studio Remote Code CVE-2025-21176
Vulnérabilité d’exécution de code à distance de Visual Studio CVE-2025-21178
Le caractère retour chariot dans l’URL distante permet au référentiel malveillant de fuite d’informations d’identification CVE-2024-50338
Vulnérabilité d’exécution de code à distance .NET CVE-2025-21171
(Linux uniquement) Vulnérabilité d’élévation de privilèges .NET CVE-2025-21173
Vulnérabilité d’élévation de privilèges Visual Studio CVE-2025-21405

Version 17.12.3

Publication : 3rd, 2024

Correctifs de bogues principaux De la communauté
Erreurs NuGet après la mise à niveau de VS v17.11.6 vers la version 17.12 avec .NET 9. ticket de commentaires
Messages Unity privés marqués de manière incorrecte comme des IDE0051 inutilisés. ticket de commentaires
IntelliSense a cessé de fonctionner dans le projet Word C++. ticket de commentaires
Correction d’un problème où les caractères pouvaient être dupliqués lors de la saisie d’un fichier contenant une langue incorporée. ticket de commentaires
Correction d’un problème dans lequel la résolution des conflits de fusion dans les fichiers .razor et les fichiers .cshtml entraînerait une fenêtre vide. ticket de commentaires
Azure Devops Permalink de Visual Studio 2022 ne fonctionne pas. ticket de commentaires
Correction d’un problème où Visual Studio se bloque si la variable d’environnement DOTNET_SYSTEM_GLOBALIZATION_INVARIANT a été définie sur 1. ticket de commentaires
Correction de l’erreur de démarrage du profileur de performances pour les projets C++. ticket de commentaires

Version 17.12.2

Publication : 26th, 2024

Correctifs de bogues principaux De la communauté
IntelliSense C++ n’affiche plus d’erreurs pour les projets qui fonctionnaient dans IntelliSense dans Visual Studio 17.11. ticket de commentaires
Le processus d’indexeur Copilot ne verrouille plus les fichiers. ticket de commentaires
Correction d’un blocage du compilateur dans le code C++/CLI qui cible .NET Core et utilise des tableaux param.. ticket de commentaires
notes de publication .NET pour iOS/tvOS/macOS/macCatalyst
Une fois windows update KB5041580, Visual Studio se bloque en mode silencieux lors de l’ouverture d’une fenêtre d’éditeur de fusion. ticket de commentaires
[LKG18] Certaines fonctions encapsulées de réduction ont des informations de déroulement incomplètes dans leurs fragments secondaires. ticket de commentaires
Erreur du compilateur interne C1001 pour la build arm64. ticket de commentaires
Blocage SSDT avec une erreur critique rencontrée dans VS17.12. ticket de commentaires

Version 17.12.1

publication Novembre 19th, 2024

Correctifs de bogues principaux De la communauté
Correction du problème de scintillement de couleur de syntaxe lors du défilement via https://github.com/dotnet/roslyn/pull/75796
Cette version inclut des mises à jour pour maintenir la conformité aux lois internationales en matière de langue.

De nous tous sur l’équipe, merci de choisir Visual Studio. Si vous avez des questions, contactez-nous sur Twitter ou Developer Community.

Code heureux !
l’équipe Visual Studio


Note

Cette mise à jour peut inclure de nouveaux logiciels Microsoft ou tiers sous licence séparément, comme indiqué dans les avis tiers ou dans sa licence associée.