2008-09-24 42 views
2

我有一个依赖于某些内部Web服务的应用程序,因此我们希望我们的开发和登台配置指向Web服务的开发和登台服务器。根据构建常量修改配置文件

现在,这意味着手动编辑我的app.config文件以指向适当的URL。这不仅是一个麻烦,而且很容易出现人为错误(“哎呀,我没有删除该生产URL?”可能会导致许多问题)。

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

#if DEBUG 
    // do something 
#endif 

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

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

这是针对C#和.NET 3.5的,它既包含旧的“Web引用”,也包含较新的WCF“Web服务”引用。

回答

3

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

鉴于以下文件:

的app.config

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

qavalues.xml

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

prodvalues.xml

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

沿行的命令行以下是在正确的地方获得正确值所需要的。

XmlPreProcess.exe app.config qavalues.xml 
+2

+1好极了!我正在寻找这样的东西...它会使我的配置文件有点丑陋,但我宁愿有一个比三个稍微丑陋的配置文件更难看。 (注意:这仅适用于配置文件,不适用于女性)。 – 2009-01-27 17:09:20