仅适用于开发的配置设置

时间:2012-03-09 15:57:04

标签: .net application-settings slowcheetah configsource


我想在一个无法检入的配置文件中为我的开发机器设置某些applicationSetting值为特定值。为此我想将configSource属性与user.config文件一起使用。但是,当文件不存在时,此属性会抛出异常。

扩展
我有一个包含以下app.config文件的库:

<applicationSettings>
    <A.NameSpace.Settings>
        <setting name="ASettingName" serializeAs="String">
            <value>aSettingValue</value>
        </setting>
    </A.NameSpace.Settings>
</applicationSettings>

另一个库将使用这个库并有两个选项,其中一个进一步描述

  • 未填写A.NameSpace.Settings节点,因此使用默认aSettingValue
  • 填写A.NameSpace.Settings节点,以便使用新配置的值

这很方便,因为我们准备设置的构建脚本现在可以替换依赖于环境的参数(例如:服务器名,端口等)

现在第三个选择就是拥有这样的app.config:

<applicationSettings>
    <A.NameSpace.Settings configSource="user.config" />         
</applicationSettings>

并在未签入的user.config文件中定义相同的值。这太棒了。 除非在非-dev环境中,否则此user.config文件不应出现,并且在找不到该文件时将抛出异常。

如何仅为我的开发机器定义配置值?

3 个答案:

答案 0 :(得分:2)

我认为SlowCheetah正是您所寻找的。

Scott Hanselman在博客中写道: SlowCheetah - Web.config Transformation Syntax now generalized for any XML configuration file

答案 1 :(得分:1)

您可以使用配置转换。我会找到一些关于如何实现这一目标的文档,并很快发布。

这是hanselman article真正的快速可能有用。

答案 2 :(得分:-1)

考虑使用ant / maven或类似的东西