管理大项目中的配置文件和代码常量

时间:2011-11-30 23:56:22

标签: c# configuration refactoring configuration-files code-cleanup

我正在开发一个庞大的C#代码库(~300 KLOC)。系统的组件使用分散在文件夹层次结构中的配置文件。在一个地方从配置读取的值存储在另一个常量中。在不同的文件夹中有相同配置的多个副本,复制和签入一次,然后从未更新。有些文件有3个不同的版本,一个用于开发人员计算机,一个用于登台,另一个用于实时系统。我必须清理这个可怕的烂摊子。我应该怎么开始?什么是处理不同文件中的重复值,同一文件的多个副本以及针对不同构建环境的多个版本的智能策略?如何在不创建“依赖性磁铁”的情况下将所有内容存储在一个地方?

2 个答案:

答案 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