簡體   English   中英

管理 web.config 文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM