SlowCheetah 能满足不同模式下编译产生不同 app.config 配置的需求,已被微软纳入麾下,支持XML,JSON格式。

下面我们用XML的格式来试试如何使用SlowCheetah,JSON方式还没研究。

安装

  1. nuget 安装 SlowCheetah,选择微软Microsoft那个

    Untitled

  2. 打开 vs 扩展商店安装插件 SlowCheetah

    Untitled

使用

  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语法参考 http://go.microsoft.com/fwlink/?LinkId=214134

    Untitled

  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” 属性表示该位置插入一个节点

    Untitled