根据构建常量修改配置文件

时间:2008-09-24 17:28:41

标签: c# .net configuration-files

我的应用程序依赖于某些内部Web服务,因此我们希望我们的开发和登台配置指向Web服务的开发和登台服务器。

现在,这意味着手动编辑我的app.config文件以指向相应的网址。这不仅是一个麻烦,而且容易出现人为错误(“哎呀,我没有删除那个生产URL吗?”会造成很多问题)。

在代码中的少数几个地方,我使用

#if DEBUG
    // do something
#endif

预处理语句,并且想知道是否可以对app.config中的值执行类似的操作。我已经能够使用我的应用程序设置完成此操作,因为这些值可以在代码中访问。

我知道后期构建脚本,但似乎可能有一种比编写例程更简单的方法来在每次构建时使用app.config XML。有什么建议吗?

这适用于C#和.NET 3.5,包括旧的“Web引用”以及较新的WCF“Web服务”引用。

1 个答案:

答案 0 :(得分:3)

我们使用SourceForge中名为XmlPreprocessor的程序来处理这个问题。它允许您在配置文件中创建参数和不同的值文件以填充它们。

给出以下文件:

的app.config

...
<importantSetting>$importantSettingValue$</importantSetting>
...

qavalues.xml

...
<importantSettingValue>QAvalue</importantSettingValue>
...

prodvalues.xml

...
<importantSettingValue>PRODvalue</importantSettingValue>
...

沿着以下行的命令行就是在正确的位置获取正确值所需的全部内容。

XmlPreProcess.exe app.config qavalues.xml