我正在开发一个庞大的C#代码库(~300 KLOC)。系统的组件使用分散在文件夹层次结构中的配置文件。在一个地方从配置读取的值存储在另一个常量中。在不同的文件夹中有相同配置的多个副本,复制和签入一次,然后从未更新。有些文件有3个不同的版本,一个用于开发人员计算机,一个用于登台,另一个用于实时系统。我必须清理这个可怕的烂摊子。我应该怎么开始?什么是处理不同文件中的重复值,同一文件的多个副本以及针对不同构建环境的多个版本的智能策略?如何在不创建“依赖性磁铁”的情况下将所有内容存储在一个地方?
答案 0 :(得分:3)
清理工作会很痛苦;当你移动时,你将不得不做很多寻找/替换。我首先要利用.NET已经提供的内容,即将所有这些设置放在Application.config
上(如果是ASP.NET应用程序,则为Web.config
)并使用ConfigurationManager.AppSettings["key"]
来检索各种值。至于不同的环境,也有开箱即用的支持,你可以使用appSettings transformations
答案 1 :(得分:2)
祈祷的答案是ConfigGen。在CodePlex上查看:ConfigGen
它完全符合您的要求。
<强>更新强>: 在这里查看我的使用示例:How to select different app.config for several build configurations