Visual Studio 生產環境配置方案:SlowCheetah

原文

SlowCheetah 能滿足你不同編譯模式產生不同 app.config 配置的需求,已被微軟納入麾下,支持XML,JSON格式。

下面我們用XML的格式來試試如何使用SlowCheetah,JSON方式還沒研究。

安裝

  1. nuget 安裝 SlowCheetah,選擇微軟Microsoft那個

  2. 打開 vs 擴展商店安裝插件 SlowCheetah

使用

  1. 右鍵 app.config 文件,選擇 Add Transform,產生各個編譯模式的 app.config 變體文件

    選擇 Add Transform
    選擇 Add Transform

    產生變體文件
    產生變體文件

  2. 添加兩個配置項做測試,一個用戶配置,一個應用程序配置
    Settings 文件
    Settings 文件

    App.config 文件
    App.config 文件

  3. 修改 App.Release.config。將 App.config 里的配置信息複製過去,增加 xdt:Transform="Replace" xdt:Locator="Match(name)」 表示找到 name 相同的xml節點,替換原值value

    更多xml語法參考 //go.microsoft.com/fwlink/?LinkId=214134

  4. 預覽異同。右鍵 App.Release.config ,選擇 Preview Transform。預覽你編寫的Release配置是否正確生效
    選擇 Preview Transform
    選擇 Preview Transform

    查看異同
    查看異同

  5. 好了,切換 Release 模式編譯試試吧

要修改的配置在引用的項目里怎麼辦?

例如下方這個項目引用了一個Device的項目,直接右鍵Device的app.config文件添加變體,在編譯主項目時,Device 里的變體是無效的。

對比最終編譯出的 app.config,可以發現需要插入一些節點,於是有了以下方案

  1. 插入一條 name 為 Device.Properties.Settings 的 section 節點
  2. 插入一條 Device.Properties.Settings 節點
  3. 注意 xdt:Transform="Insert」 屬性表示該位置插入一個節點