我们运行一个用C#.NET 3.5编写的复杂系统,包含20多个网站,10多个Windows服务以及各种计划任务和辅助应用程序。处理多个配置文件实例的最佳方法?
其中每个都与我们的一个或多个框架和业务逻辑DLL捆绑在一起。 这些DLL有大量的配置设置,这已经变成了一场噩梦,我们为相同类库的多个实例维护了超过40个配置文件。
由于各种原因,我们不会在GAC注册我们的DLL: 1)我们喜欢在不重建整个系统或导致不必要的停机时间的情况下快速推出对选择性项目的更改的灵活性。 2)某些DLL的实例需要略微不同的配置;例如一些项目使用不同的连接字符串,通知电子邮件地址等。
我们使用Web.config/App.config中的AppSettings file/configSource属性进行了实验,但这些属性仅适用于相对路径,不适用于项目。 我们考虑将默认值保存在machine.config中,但这是一项任务,太杂乱,充满了与我们项目无关的重要内容。
我们当前的“解决方案”是使用我们自己的配置文件格式,它首先检查当前项目的“bin”文件夹中的配置,如果不存在,则从硬编码的中央位置加载。这允许我们在必要时覆盖设置,但在其余时间使用默认设置。
我们最终想要的是在一个中心位置的每个类库的默认设置,然后每个实例可以有一个可选的配置文件,该文件只覆盖那些与默认不同的设置。
在.NET中有没有一种建议的,行业标准的解决这个问题的方法?
我可以声称没有这方面的专业知识,但这不是什么注册表是什么?我相信它有它自己的问题,但想知道它是否应该被视为解决方案? – 2010-01-08 01:47:52
做所有这些运行在同一台服务器上? – Amirshk 2010-01-08 01:57:17
(免责声明:这件事情我写的):有一个类似的线程上此:http://stackoverflow.com/questions/1987013/how-to-setup-web-config-for-build-to-multi-environments- without-code-changes/2024921#2024921,我写了一篇关于我写在那里的工具,这可能也会帮助你。 FWIW。 – 2010-01-08 02:09:36