Entrée System.diagnostics dans app.config
Pour les applications qui ont un fichier app.config, l’entrée <configuration><configSections>
n’est plus autorisée à contenir une entrée <section name="system.diagnostics">
. Le cas échéant, vous devez supprimer l’entrée.
Le fait d’avoir une entrée <section name="system.diagnostics">
lève l’exception d’exécution suivante lors de la première utilisation du système de configuration :
ConfigurationErrorsException: Section or group name ’system.diagnostics’ is already defined. Les mises à jour de ce paramètre peuvent se produire uniquement au niveau de configuration où il est défini.
Par exemple, le fichier app.config suivant contient l’entrée inutile :
<configuration>
<configSections>
<section name="system.diagnostics"
type="System.Diagnostics.SystemDiagnosticsSection,
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>
Ce changement cassant affectera probablement uniquement pour les applications qui :
- Ont été migrées de .NET Framework vers .NET.
- Avaient explicitement ajouté
<section name="system.diagnostics">
au fichier app.config pour prendre en charge la lecture manuelle de la section<system.diagnostics>
. - Ont été mises à niveau vers .NET 7, qui a une entrée
<section name="system.diagnostics">
implicite.
Comportement précédent
La spécification de <section name="system.diagnostics">
était autorisée et nécessaire s’il existait une section de configuration ultérieure <system.diagnostics>
, comme suit :
<configuration>
<system.diagnostics>
Toutefois, la section n’était pas lue automatiquement. Cela est dû au fait que System.Diagnostics ne prenait pas encore en charge la fonctionnalité permettant d’ajouter des écouteurs et de configurer d’autres fonctionnalités de diagnostic en traitant cette section.
.NET Framework prend toutefois en charge le traitement d’une section <system.diagnostics>
et a une entrée <section name="system.diagnostics">
dans le fichier machine.config.
Nouveau comportement
System.Diagnostics prend désormais en charge la lecture de la section <system.diagnostics>
à partir du fichier config et ajoute une entrée <section name="system.diagnostics">
implicite. Le fait d’avoir une entrée <section name="system.diagnostics">
explicite dans le fichier app.config provoque une entrée en double, ce qui lève ConfigurationErrorsException.
Version introduite
.NET 7 RC 1
Type de changement cassant
Ce changement peut affecter la compatibilité binaire.
Raison de la modification
Pour prendre en charge une nouvelle fonctionnalité dans laquelle System.Diagnostics lit à partir du fichier app.config, nous avons dû ajouter l’élément <section name="system.diagnostics">
implicite.
Action recommandée
Supprimez la section inutile <section name="system.diagnostics" ... >
.
API affectées
N/A
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour