-
Notifications
You must be signed in to change notification settings - Fork 39
Logic when running Setup and app is already installed #70
Comments
I dislike "Try Elsewhere"
Burning the entire directory (and user config inside) on install, overwrite, and other installer behavior decisions would be better left to developer than user in my opinion. |
For our use case, we'd also hope the user can only install to one location. Running a second time should repair (overwrite). At most I'd expect a popup to be something like "You already have the application installed. Would you like to repair the installation? Y/N". |
One thing I am considering is that the app installed where you want to install might not be the same app. So the "This application is already installed, would you like to repair?" might not be entirely accurate. Imagine two apps with the same Id from different publishers. We could minimize this risk by installing apps to On the point about "up to the developer, not the user" - this itself is a very contentious issue. Many people want to ship applications where install location is up to the user, and I get asked about adding this functionality regularly. Many users expect this option too, although perhaps less in the last few years. |
Added in v4 |
Where is the v4 branch? Or did you mean v3/develop? |
Hi @Noah1989, V4 is going to be released here https://github.com/velopack/velopack. Although this started out as a fork, there is very little of the original code left now, and a lot of things have changed. Right now, I'm just writing migration tests to make sure that Squirrel.Windows and Clowd.Squirrel can migrate seamlessly to Velopack, and then I'm going write documentation, release the official packages and announce the move. Should be in the next week or so! |
Current logic if running Setup after app already installed is to just eradicate app data and try to re-install.
This can cause data loss if user settings are being stored, or could even leave the app broken if there are locked files and Squirrel leaves the directory partially deleted.
We could improve this by:
Related to
Also, the issue of "starting Setup.exe multiple times" also can cause a problem (Squirrel#1717). There is a global "lock" (filesystem based) in UpdateManager, but we need some method of synchronisation earlier on (before Setup.exe starts extracting things, and before Update.exe tries to delete things)
Edit 12/05/2022
Before deleting directories (like the app data root) we now try a rename first, so we will not leave a directory partially deleted.
We still need to:
None of these items are relevant for MacOS.
The text was updated successfully, but these errors were encountered: