根据构建常量修改配置文件
时间: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