we have a .net windows forms application and for years we have been using the Visual Studio setup projects to build our msi installers. We have settings stored in the registry and also in the user profiles. The problem we have got is that our users work in very restricted environments mainly in the banking sector and have no permissions to do anything at all. Best case scenario they have access to the folder where the app is installed. So every time they need to upgrade our application they need to get IT involved which involves months waiting and ridiculous costs.
So here is the idea, we thought of storing all user and application settings in the application folder and install by simply copying and pasting the necessary files to the right directory. We don’t have any dependencies or COM dlls, no need to register anything. The idea is that the deployment works similar to the Eclipse copy and paste install or Mac OS X applications. No need to put things in the registry, no need to use installers just copy and paste a folder. So are there any people out there who have tried this strategy and what do you think are the drawbacks?
Putting settings into the application folder is generally a very bad idea (especially in environments where security matters). The reason for this is that your users would need write-access to the application folder which would enable them to modify executables.
In addition, private per-user settings are not realizable as everyone would see the settings of every user.
User Profiles (see C# getting the path of %AppData% ) are the best location to store those settings. You should tell your customer that this “copy-deployment” would actually worsen security, reliability and maintainability.