I have some values (basically constants) defined in assembly (class library) A. I would like to use these settings in assembly B. Is there a way to do this other than having the assembly A have some sort of wrapper classes around these settings or not ?
I think you just can put the values in static class in Assembly A so you can access them from Assembly B.
If the settings are read from the config file then I think you must copy them into your applications config file.
Apart from that you can just reference the static settings class from your assembly. It should be in the default namespace you have selected.
Remember, when you compile an assembly the compiler basically does a find and replace for constants. What this means is that if assembly A has a constant of say "Foo" and assembly B references that constant, when assembly B is compiled, that string "Foo" will be compiled into assembly B. So, if the constant in assembly A gets updated to "Bar", these changes will not be reflected in assembly B unless its recompiled.
What about using AppDomain.CurrentDomain.SetData and GetData?
then when your app fires some event in the controlling assembly like Close() you synchronize the data to your assembly's Settings.