When project settings (Project>Properties>Settings tab in VS) are used to store user or application settings they are stored in assembly.dll.config
or assembly.exe.config
file and are also embedded into the assembly every time the assembly is built.
After the deployment, user settings are stored in user.config file (this is at least true with click-once deployment, I'm not sure how it's handled by msi deployed or with standard setup apps) and whenever user changes a setting this is where new value is stored and retreived from at run-time.
Now, all that makes sense but I just tried deleting the app.exe.config
file of a deployed app and after that the app would crash on start and it would not work until the app.exe.config
file was restored.
If that is the case and the app cannot use the embedded settings when the config file is missing or tempered with, what is the point of embedding the settings in the first place and are there any scenarios where these embedded settings would get to be used?