使用組態檔設定應用程式
注意
本文專屬於 .NET Framework。 它不適用於較新的 .NET 實作,包括 .NET 6 和更新版本。
.NET Framework 可讓開發人員和系統管理員透過 組態檔控制應用程式的執行方式,並提升其彈性。 組態檔是可以視需要變更的 XML 檔案。 系統管理員可以控制應用程式可以存取哪些受保護的資源、應用程式將使用的元件版本,以及遠端應用程式和物件的所在位置。 開發人員可以將設定放入組態檔中,而不需要每次變更設定時重新編譯應用程式。 本節說明可以設定的內容,以及設定應用程式可能很有用的原因。
注意
Managed 程式代碼可以使用 System.Configuration 命名空間中的類別,從組態檔讀取設定,但無法將設定寫入這些檔案。
本文說明組態檔的語法,並提供三種組態檔類型的相關信息:計算機、應用程式和安全性。
組態檔格式
組態檔包含元素,這些元素是設定組態資訊的邏輯數據結構。 在組態檔中,您可以使用標記來標記項目的開頭和結尾。 例如,<runtime>
元素是由 <runtime>
子元素</runtime>
所組成。 空的項目會寫入為 <runtime/>
或 <runtime></runtime>
。
如同所有 XML 檔案,組態檔中的語法會區分大小寫。
您可以使用預先定義的屬性來指定組態設定,這些屬性是元素起始標記內的名稱/值組。 下列範例會指定 <codeBase>
元素的兩個屬性(version
和 href
),指定運行時間可以找到元件的位置(如需詳細資訊,請參閱 指定元件的位置)。
<codeBase version="2.0.0.0"
href="http://www.litwareinc.com/myAssembly.dll"/>
計算機組態檔
計算機組態檔 Machine.config,包含套用至整部計算機的設定。 此檔案位於 %運行時間安裝路徑%\Config 目錄。 Machine.config 包含全機器元件系結、內建 遠端通道和 ASP.NET 的組態設定。
組態系統會先在機器組態檔案中尋找 <appSettings> 元素 和開發人員可能定義的其他組態區段。 然後它會在應用程式組態檔中尋找。 若要讓計算機組態檔保持可管理,最好將這些設定放在應用程式組態檔中。 不過,將設定放在計算機組態檔中,可讓系統更容易維護。 例如,如果您的用戶端和伺服器應用程式都使用第三方元件,就比較容易將該元件的設定放在一個地方。 在此情況下,計算機組態檔是設定的適當位置,因此您在兩個不同的檔案中沒有相同的設定。
注意
使用 XCOPY 部署應用程式不會複製電腦組態檔中的設定。
如需深入了解通用語言執行階段如何使用機器組態檔進行組件綁定,請參閱 執行階段如何定位組件。
應用程式組態檔
應用程式組態檔包含應用程式專屬的設定。 此檔案包含共通語言執行時讀取的組態設定(例如元件系結原則、遠端物件等等),以及此應用程式可讀取的設定。
應用程式組態檔的名稱和位置取決於應用程式的主機,它可以是下列其中一項:
可執行檔案裝載的應用程式。
這些應用程式有兩個組態檔:在開發期間由開發人員修改的來源組態檔,以及隨應用程式散發的輸出檔案。
根據預設,來源組態檔的名稱會 App.config。當您在 Visual Studio 中建立 .NET Framework 專案時,會自動將 App.config 檔案新增至專案。 您也可以選取 [檔案]>[新增檔案]來手動新增檔案。 將 App.config 檔案放在項目目錄中,並將其 複製到輸出目錄 屬性設定為 Copy 一律 或 複製,如果較新的。
若要建立與應用程式一起部署的輸出組態檔,Visual Studio 會將來源組態檔複製到已編譯元件所在的目錄。 此檔案名為 yourappname <>.exe.config。例如,名為 myApp.exe 的應用程式具有名為 myApp.exe.config的輸出組態檔。
在某些情況下,Visual Studio 可能會修改輸出組態檔。 如需詳細資訊,請參閱應用程式層級的 重新導向版本。
ASP。NET 裝載的應用程式。
如需 ASP.NET 組態檔的詳細資訊,請參閱 ASP.NET 組態設定。
安全性組態檔
安全性組態檔包含與原則層級相關聯的程式代碼群組階層和許可權集合的相關信息。 強烈建議您使用 程式代碼存取安全策略工具 (Caspol.exe) 來修改安全策略,以確保原則變更不會損毀安全性組態檔。
注意
從 .NET Framework 4 開始,只有在安全策略已變更時,才會顯示安全性組態檔。
安全性組態檔位於下列位置:
企業原則配置檔:%runtime-install-path%\Config\Enterprisesec.config
計算機原則配置檔:%runtime-install-path%\Config\Security.config
用戶原則配置檔:%USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config