Let's say I have a large .NET solution that has some data access projects that are used by a couple of other project types, like a console app and a web app. I want them to both be able to use the data access project, but the data access app has to grab configuration from its configuration file...so web.config for the web project and app.config for the console/service apps. This makes me have to maintain configuration in two or more separate config files, something that I don't like. What's the best way to get them into a centralized location?
I want it to still be lightweight, so a configuration database might be overkill. I'm thinking maybe a centralized config file that gets copied by the build process to web.config/app.config when the respective projects are built, but I wanted to make sure I'm not missing another best practice somewhere. I've also thought about machine.config, but I'd like to isolate configuration as much as possible so as not to potentially disrupt other applications on a given machine. And, by using machine.config, I'd have to figure out a way to get the build script automatically updating that file remotely.