app.config의 System.diagnostics 항목

app.config 파일이 있는 애플리케이션의 경우 <configuration><configSections> 항목은 <section name="system.diagnostics"> 항목을 더 이상 포함할 수 없습니다. 이 항목이 있다면 제거해야 합니다.

<section name="system.diagnostics"> 항목이 있으면 구성 시스템을 처음 사용할 때 다음과 같은 런타임 예외가 발생합니다.

ConfigurationErrorsException: 섹션 또는 그룹 이름 'system.diagnostics'가 이미 정의되어 있습니다. 이에 대한 업데이트는 그것이 정의된 구성 수준에서만 발생할 수 있습니다.

예를 들어 다음 app.config 파일에는 불필요한 항목이 포함되어 있습니다.

<configuration>
 <configSections>
   <section name="system.diagnostics"
            type="System.Diagnostics.SystemDiagnosticsSection,
            System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
 </configSections>

이 중단은 다음과 같은 앱에 대해서만 발생할 수 있습니다.

  • .NET Framework .NET으로 마이그레이션되었습니다.
  • <system.diagnostics> 섹션의 수동 읽기를 지원하기 위해 app.config 파일에 <section name="system.diagnostics">를 명시적으로 추가했습니다.
  • 암시적 <section name="system.diagnostics"> 항목이 있는 .NET 7로 업그레이드했습니다.

이전 동작

다음과 같은 <system.diagnostics> 구성 섹션이 이후에 있는 경우 <section name="system.diagnostics"> 지정이 허용되었으며 필요했습니다.

<configuration>
    <system.diagnostics>

그러나 섹션을 자동으로 읽지 않았습니다. 그 이유는 System.Diagnostics가 수신기를 추가하고 해당 섹션을 처리하여 다른 진단 기능을 구성하는 기능을 아직 지원하지 않았기 때문입니다.

그러나 .NET Framework는 <system.diagnostics> 섹션 처리를 지원하며 machine.config 파일에 <section name="system.diagnostics"> 항목이 있습니다.

새 동작

이제 System.Diagnostics는 구성 파일에서 <system.diagnostics> 섹션 읽기를 지원하고 암시적 <section name="system.diagnostics"> 항목을 추가합니다. app.config 파일에 명시적 <section name="system.diagnostics"> 항목이 있으면 중복 항목이 발생하고 ConfigurationErrorsException이 throw됩니다.

도입된 버전

.NET 7 RC 1

호환성이 손상되는 변경의 형식

이 변경은 이진 호환성에 영향을 줄 수 있습니다.

변경 이유

System.Diagnosticsapp.config 파일에서 읽기를 수행하는 새 기능을 지원하려면 암시적 <section name="system.diagnostics"> 요소를 추가해야 했습니다.

불필요한 <section name="system.diagnostics" ... > 섹션을 제거합니다.

영향을 받는 API

N/A