如果可以,應避免使用「註解/反註」解來切換設定。
預設 ,Transform 在 Web.config 執行部署才會觸發 Config 轉換,當開發人員需要在 VS IDE 除錯模式 (F5 /Ctrl+F5) 下切換設定時,卻無法套用切換設定,這時,可以透過 MsBuild 的 Task 來處理https://docs.microsoft.com/en-us/visualstudio/msbuild/how-to-extend-the-visual-studio-build-process?view=vs-2015&redirectedfrom=MSDN
開發環境
- VS 2019
- .NET Framework 4.8
操作步驟
複製 Web.config,貼上,即產生 Web - Copy.config 並將更名為 Web.Template.config,Web.Template.config 階層下的檔案,Web.Template.Debug.config、Web.Template.Release.config,都砍掉。
用文字編輯器打開專案檔,添加以下內容,存檔,在 VS IDE 重新載入專案
<Target Name="BeforeBuild">
<TransformXml Source="Web.Template.config" Transform="Web.$(Configuration).config" Destination="Web.config" />
</Target>
最後,按下Build,觀察 Web.Config 設定檔是不是被切換了
App.Config 的切換,只需要在 VS IDE 安裝 SlowCheetah 套件 https://marketplace.visualstudio.com/items?itemName=vscps.SlowCheetah-XMLTransforms
有關 Transform 設定請參考以下
https://docs.microsoft.com/en-us/previous-versions/aspnet/dd465326(v=vs.110)?redirectedfrom=MSDN
要注意的是:
1.主要的檔案變成 Web.Template.config,Web.config 變成動態產出
2.有從 Nuget 加入新的套件,VS IDE 還是會以 Web.config 為主,這時候要把 Web.Config 的設定搬到 Web.Template.config,否則下一次 Build 會被蓋掉
若有謬誤,煩請告知,新手發帖請多包涵
Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET