I have found a really simple solution here:
1. Create a file CommonSettings.config
In your Common, Class library project.
2. Put your common setting in this file:
<appSettings>
<add key="someCommonSetting" value="some value"></add>
<!-- more setting here -->
</appSettings>
Note: <appSetting>
has to be the root element in your CommonSettings.config
(don't put it under <configuration>
)
3. Make sure CommonSettings.config
file is copied to output directory:

4. In all other project's App.Config/Web.config files, add the above common settings
That's it... You common settings will be included in every other config file.
<appSettings file="CommonSettings.config">
<add key="Value1" value="123" />
</appSettings>
Note:
For this approach to work, the shared config file should be copied to
the project’s output directory so it is adjacent to the regular
App/Web.config file. Add the existing shared .config file to the
project as a Linked file and set it to ‘Copy if newer’. You should see
something similar to this in your .csproj file:
<None Include="..\CommonConnectionStrings.config">
<Link>CommonConnectionStrings.config</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
You can do the same for ConnectionString
, copy all your connection strings in CommonConnectionStrings.config
, and in other App.Config/Web.Config, reference it like this:
<connectionStrings configSource="CommonConnectionStrings.config" />
Note: If you are using this solution for connectionStrings
, you cannot have a project specific connection string, all of the connection strings will be copied from the common config.