Entrada System.diagnostics en app.config
En el caso de las aplicaciones que tienen un archivo app.config, la entrada <configuration><configSections>
ya no puede contener una entrada <section name="system.diagnostics">
. Si está presente, debe quitar la entrada.
Tener una entrada <section name="system.diagnostics">
produce la siguiente excepción en tiempo de ejecución cuando se usa por primera vez el sistema de configuración:
ConfigurationErrorsException: ya está definido el nombre de sección o grupo «system.diagnostics». Las actualizaciones de esto solo pueden producirse en el nivel de configuración donde se define.
Por ejemplo, el siguiente archivo app.config contiene la entrada innecesaria:
<configuration>
<configSections>
<section name="system.diagnostics"
type="System.Diagnostics.SystemDiagnosticsSection,
System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
</configSections>
Es probable que esta interrupción solo se produzca para las aplicaciones que:
- Se migraron de .NET Framework a .NET.
- Agregaron explícitamente
<section name="system.diagnostics">
al archivo app.config para admitir la lectura manual de la sección<system.diagnostics>
. - Se actualizaron a .NET 7, que tiene una entrada implícita
<section name="system.diagnostics">
.
Comportamiento anterior
Se permitía especificar <section name="system.diagnostics">
y era necesario si había una sección de configuración <system.diagnostics>
posterior, como la siguiente:
<configuration>
<system.diagnostics>
Sin embargo, la sección no se leyó automáticamente. Esto se debe a que System.Diagnostics aún no admitía la característica para agregar clientes de escucha y configurar otras características de diagnóstico mediante el procesamiento de esa sección.
Sin embargo, .NET Framework admite el procesamiento de una sección <system.diagnostics>
y tiene una entrada <section name="system.diagnostics">
en el archivo machine.config.
Comportamiento nuevo
System.Diagnostics ahora admite la lectura de la sección <system.diagnostics>
desde el archivo de configuración y agrega una entrada <section name="system.diagnostics">
implícita. Tener una entrada <section name="system.diagnostics">
explícita en el archivo app.config provoca una entrada duplicada, que produce ConfigurationErrorsException.
Versión introducida
.NET 7 RC 1
Tipo de cambio importante
Este cambio puede afectar a la compatibilidad binaria.
Motivo del cambio
Para admitir una nueva característica en la que System.Diagnostics lee el archivo app.config, teníamos que agregar el elemento <section name="system.diagnostics">
implícito.
Acción recomendada
Quite la sección <section name="system.diagnostics" ... >
innecesaria.
API afectadas
N/D