I have a general question, but I'll also explain why I'm asking so you can get a better idea of what I mean.
I have a dll that has a webservice url defined in Settings, and at runtime it uses Settings.Default to get the url from settings. However, none of our environments have a (dllName).dll.config file, and the specific setting is not defined in the (exeName).exe.config of the calling application. It's really clear that the default value isn't being used, because it's set to some internal IP address; yet this works in production where they don't have this setting defined in any .config file that I can find, and it's still hitting the correct webservice URL somehow. I need to know where the value is being loaded from in this case.
So my more broad question is, how does the hierarchy work for loading settings in .net? For example, does it look in machine.config first, then (exeName).exe.config, and the if it's a dll it would go to (dllName).dll.config? Where does it look first, and what order does it look in other places, and are there any other places I didn't mention that this config could be defined?
Also, for a DLL, if you have something defined in Settings, does that get embedded in the compiled dll as a default value, and is that used if the property isn't found in any other .config file?