Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows portable app not truly portable. Stores app settings in registry. #317

Open
stamminator opened this issue Oct 29, 2024 · 1 comment

Comments

@stamminator
Copy link

stamminator commented Oct 29, 2024

I wanted to manually update version 2.7.1 of the win-portable Caesium app I'm currently using to 2.8.2 and went to make sure my settings/preferences wouldn't be erased upon updating. I was expecting to find a configuration file of some kind in the app directory (.ini, .json, .db, etc.), but after some digging, I realized it's storing data in a few places:

  • File system: %AppData%\SaeraSoft\Caesium Image Compressor
  • File system: %LocalAppData%\SaeraSoft\Caesium Image Compressor
  • Registry: HKEY_CURRENT_USER\Software\SaeraSoft\Caesium Image Compressor

While this does mean I should be safe to just update via copy/paste without losing my settings, unfortunately it also means it isn't a portable app, since it's not self-contained. It would be great if the portable version were compiled to use a local config file. I'm no expert in portable apps, but one idea would be to handle it the way WinSetView handles it by entirely omitting the config file/directory from the build and only creating it at runtime, making it safe to copy/paste the entire root directory contents of a new portable install right over an existing one without losing settings.

@Lymphatus
Copy link
Owner

Yes, you're right. This is something I need to address because the app is indeed portable, but settings aren't, which is not right.
The solution is just to say to the app to store the settings in an .ini (or whatever format) instead of the registry if the app is portable, which is a configuration passed at compile time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants