前一篇文章提到 ASP.NET 的預設範本中,除了 Web.Config 之外,還有 Web.Debug.config 和 Web.Release.config。後面兩個檔案,在發布的時候,依選擇組態不同,會對 Web.Config 內容進行替換的設定
例如選擇 Release 時,會用 Web.Release.config 內的資料,對 Web.Config 做替換。要被替換的資料,主要是用 xdt:Locator
與 xdt:Transform
兩個 Attribute 做定位的。
Transform : 選擇修改的方式,例如: Insert(新增)、Replace(替換) 等
Locator : 選擇要修改的項目(選填)
依使用的 Transform 不同,Locator 是否必填也不同。
例如你想要替換 DB 的連線字串,把 AAA 改成 BBB,其設定這樣寫:
Web.config
<connectionStrings>
<add name="MyDB"
connectionString="AAA" />
</connectionStrings>
Web.Release.config
<connectionStrings>
<add name="MyDB"
connectionString="BBB"
xdt:Transform="Replace" xdt:Locator="Match(name)"/>
</connectionStrings>
connectionStrings
裡面可以是多筆的,代表:Locator 需要定位的條件,來找出需要替換的那項
Match表示 name 要同名時,才要把項目做替換。
詳細的設定可以看微軟的文件
如果你有自己新增的組態,例如叫 Test 組態,那就自己複製一份 Web.Debug.config,在自行改名為 Web.Test.config 即可。