我有一个依赖于某些内部 Web 服务的应用程序,因此我们希望我们的开发和登台配置指向 Web 服务的开发和登台服务器。
现在,这意味着手动编辑我的 app.config 文件以指向适当的 URL。这不仅很麻烦,而且容易出现人为错误(“哎呀,我没有删除那个生产 URL 吗?”可能会导致很多问题)。
在代码中的一小部分地方,我使用了
#if DEBUG
// do something
#endif
预处理语句,并且想知道是否可以对 app.config 中的值执行类似的操作。我已经能够通过我的应用程序设置很好地做到这一点,因为这些值可以在代码中访问。
我知道构建后脚本,但似乎有一种比每次构建时编写例程来修改 app.config XML 更简单的方法。有什么建议吗?
这适用于 C# 和 .NET 3.5,包括旧的“Web 引用”和较新的 WCF“Web 服务”引用。
最佳答案
我们使用了一个名为 XmlPreprocessor 的程序来自 SourceForge 来处理这个问题。它允许您在配置文件和不同的值文件中创建参数以从中填充它们。
给定以下文件:
应用程序配置
...
<importantSetting>$importantSettingValue$</importantSetting>
...
qavalues.xml
...
<importantSettingValue>QAvalue</importantSettingValue>
...
prodvalues.xml
...
<importantSettingValue>PRODvalue</importantSettingValue>
...
只需使用以下命令行即可在正确的位置获取正确的值。
XmlPreProcess.exe app.config qavalues.xml
关于c# - 根据构建常量修改配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/128513/