我使用非常古老的设计,只是有效。
- /_Test__app.config
- /_Prod__app.config
- /app.config
然后在我的 nant 脚本中,我有一个复制当前构建环境加上_app.config 并将其复制到app.config 的任务。
它很讨厌,但是您不能在提供者和 ConfigurationManager 之间进行欺骗,通过说提供者查看“dev”或“prod”连接字符串并且只有 3 个命名连接字符串。
南特任务:
<target name="copyconfigs" depends="clean">
<foreach item="File" property="filename" unless="${string::get-length(ConfigPrefix) == 0}">
<in>
<items>
<include name="**/${ConfigPrefix}App.config" />
<include name="**/${ConfigPrefix}connectionstrings.config" />
<include name="**/${ConfigPrefix}web.config" />
</items>
</in>
<do>
<copy overwrite="true" file="${filename}" tofile="${string::replace(filename, ConfigPrefix,'')}" />
</do>
</foreach></target>