[英]Managing web.config files
我有 3 個環境:.NET 4 上的 Dev、QA、Prod。每個環境都有一個唯一的 web.config 文件。 我們在管理所有三個版本時遇到了問題。 在 TFS 中手動合並 web.config 文件時,很容易忽略一些關鍵問題。 我們不止一次地得到一個指向 Prod 上的 QA 的連接字符串。
因此, 我閱讀了 web.config 轉換。 這些似乎需要 MSBUILD。 我們沒有構建服務器,所以我不確定如何嘗試使用此解決方案。 有沒有辦法使轉換與正常的 web 發布一起工作?
您對管理 3 個 web.config 文件有其他建議嗎?
您對管理 3 個 web.config 文件有其他建議嗎?
是的,不要管理它們。 我們管理得越少,犯錯的機會就越少。 為所有環境提供完全相同的 web.config 文件。 到處都部署了相同的分布式 package。
並且所有特定於環境的鍵,例如基本 url、連接字符串……都可以在machine.config
中定義,您只需在每台服務器上部署一次並從所有應用程序中重復使用。 或者web.config
位於 IIS 站點的根目錄,所有應用程序都將從該站點派生。
有沒有辦法使轉換與正常的 web 發布一起工作?
當然,看看這個 MSDN 鏈接。 您不需要 MSBUILD。 您可以在單獨的配置文件中為各種環境設置連接字符串。 例如,您可以擁有 Web.config、Web.QA.config 和 Web.Prod.config,其中 QA 和 Prod 是單獨的Visual Studio Build 配置。
或者,您可以只使用默認添加的構建配置:Web.config(本地開發)、Web.Debug.config(用於 QA)和 ZC6E190B284633C48E38E3.9E55049DACE3(用於生產)
以該設置為例,Web.config 將具有所有配置,Web.Debug.config 將僅具有針對該環境更改的配置(連接字符串、應用程序設置等),而 ZC6E190B2840.493C48E39.E 僅具有 5DAC 配置那種環境會發生變化。
設置好配置和轉換后,您只需更改構建配置,從 Visual Studio 構建和發布。
如果您使用 websetup 項目創建 msi,則可以將自定義安裝程序 class 添加到 websetup。 這將為您提供創建預定義批處理腳本的選項,該腳本將正確設置 web.config 中的值
msiexec.exe /Qb! /i "MyWebsiteMsi.MSI" SQL_SERVER_ConnStr="ABC"
這是一些帶有舊示例的頁面在此處輸入鏈接描述
另一種方法是創建將更改為外部文件的設置移動並使用 configSource 屬性將該文件鏈接回。 對於不同的部分,您將其放在外部文件中。
然后,您可以擁有單獨命名的文件,例如 dev.config、qa.config、live.config 並更改 web.config 中的名稱,或者擁有一個名為 environment.config 的文件,並且您永遠不會在環境之間合並它。
缺點是必須將整個設置部分移到文件中。
西蒙
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.