A similar question was raised 15 years ago, and there is still no clear answer to what the difference is between app.config and settings.settings. If anyone has a clear understanding of the difference during this time, please share! I read this and this posts, but there is no clear, unambiguous answer to the question there.
Is it necessary to have both of these files in development or is one enough? Then which one exactly?
Settings.settings
contains application settings that are read, and possibly changed by the application. This is optional.
app.config
mostly contain settings for the runtime and libraries. This is also optional, at least in newer, SDK-style projects.
Some types of settings could reasonably go into either file, so there is certainly some amount of overlap. But if you just want to persist some data between executions you should probably use settings.settings
.
On compilation the contents of both files will be merged into the projectname.config
-file. But any settings that are changed by the application are written to a user specific folder, since the application folder typically does not permit writes by the application itself.
If these files are created by default or not depend on the project template. I don't think the newer templates create either.