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。
- 已明確新增
<section name="system.diagnostics">
到 app.config 檔案以支援手動讀取<system.diagnostics>
區段。 - 已升級至具有隱含
<section name="system.diagnostics">
項目的 .NET 7。
先前的行為
指定 <section name="system.diagnostics">
是允許的行為,且如果有出現如下的更新 <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。
導入的版本
.NET 7 RC 1
中斷性變更的類型
這項變更會影響二進位相容性。
變更原因
為了支援讓 System.Diagnostics 讀取 app.config 檔案的新功能,我們必須新增隱含的 <section name="system.diagnostics">
元素。
建議的動作
移除不必要的 <section name="system.diagnostics" ... >
區段。
受影響的 API
N/A
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應