我的首選項是不檢查項目特定的配置文件到源代碼控制,而是將環境變量和其他配置方面的內容保存在一個公共文件夾(在源代碼管理中)。然後根據給定項目,解決方案和環境在給定時間可能需要的內容,將配置文件生成爲本地構建,構建自動化或部署腳本的一部分。這可以通過簡單的文本文件,xml模板或類似Spark視圖引擎的更復雜的東西來完成,具體取決於您的需要。如果模板比你需要的更復雜(通常是這樣),你也可以按慣例做到這一點。這樣,無論您在何處部署代碼,都可以定義特定於環境的配置。
按照慣例的一個例子是在你的主配置文件(web config,app config等)中定義自定義配置節。然後,您可以存儲connection-strings-development.config,connection-strings-integration.config,connection-strings-testing.config,connection-strings-pre-production.config和connection-strings-production。配置在您的主要來源(或公用文件夾)中。然後,構建過程會將適當的連接字符串配置文件重命名爲connection-strings.config。
通過模板生成,您也可以使用具有相同環境特定配置文件的自定義配置節,但不是在部署時重命名,而是直接用適當的配置文件名直接重寫基本配置文件的一部分。
保持您的配置文件由環境分塊,但爲您提供了極大的靈活性,特別是一旦您開始管理使用相同或相似配置樣式的許多站點時。無論如何,你的配置應該由你的自動化環境的某些方面決定!
啊,這是有道理的。我也喜歡你在分支和特定的部署環境之間沒有任何耦合。謝謝(你的)信息! – Luke 2009-06-09 23:00:05