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

时间:2020-03-06 14:40:36  来源:igfitidea点击:

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

现在,这意味着手动编辑我的app.config文件以指向相应的URL。这不仅麻烦,而且容易发生人为错误("糟糕,我没有删除该生产URL吗?"会引起很多问题)。

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

#if DEBUG
    // do something
#endif

预处理语句,并且想知道是否可以对app.config中的值执行类似的操作。我可以使用我的应用程序设置来做到这一点,因为这些值可以在代码中访问。

我知道构建后的脚本,但是似乎比每次编写一个例程来修改app.config XML都要简单的方法。有什么建议?

这是针对C#和.NET 3.5的,同时包括旧的" Web引用"以及较新的WCF" Web服务"引用。

解决方案

我们使用了SourceForge的一个名为XmlPreprocessor的程序来处理此问题。它允许我们在配置文件和其他值文件中创建参数以从中填充参数。

给定以下文件:

app.config

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

qavalues.xml

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

prodvalues.xml

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

要在正确的位置获取正确的值,只需执行以下几行命令即可。

XmlPreProcess.exe app.config qavalues.xml