Bugfix/version windows integration improve install - #8178
Conversation
192e189 to
543cc4a
Compare
| set(MIRALL_SOVERSION 0) | ||
| set(MIRALL_PREVERSION_HUMAN "3.17.0 alpha") # For preversions where PATCH>=50. Use version + alpha, rc1, rc2, etc. | ||
| set(WINDOWS_INTEGRATION_VERSION 4) | ||
| set(WINDOWS_INTEGRATION_SOVERSION 4) |
There was a problem hiding this comment.
where does the 4 come from?
NCExt/Version.h defines the NCEXT_BUILD_NUM constant with 47 that is part of the NCEXT_VERSION constant
and how does setting these as target properties differ from having it be defined in the .rc files? e.g.
desktop/shell_integration/windows/NCOverlays/NCOverlay.rc
Lines 67 to 68 in 3bdc2eb
There was a problem hiding this comment.
fwiw I didn't see anything different on the resulting DLLs with these two settings
There was a problem hiding this comment.
yes
that is a leftover
I can double check but I probably have a stash upgrading the DLL embedded version number from a more centralized working place
There was a problem hiding this comment.
adding the version(s) of the shell integration to the centralised VERSION.cmake file is a good idea :>
would be cool if you still have the stash somewhere. otherwise I can take care of that as well
There was a problem hiding this comment.
no
I will do it again
543cc4a to
5310707
Compare
|
...well well well :D I read some more documentation about the Windows Installer itself and this led me to try out a different value for I created two new MSIs which use that value: one for the client version Upgrading the installation from e.g. In my tests this also worked when downgrading from Of course, when uninstalling Nextcloud the installer still wants to restart Windows Explorer. The installer still asks for a reboot after a successful installation/upgrade as well. |
5310707 to
3733fcb
Compare
|
The last commit affects the way the Restart Manager handles the termination of processes. Previously the Windows Explorer process would not terminate completely, after ~30s the installer displays an error message about that, and Explorer would never come back again. |
14cca8e to
c0e0d57
Compare
f07b112 to
ac3131b
Compare
shoudl enable replacing files during install happen only when needed instead of always will need to take care of migration from older releases Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com> Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
…ating The MSIs we distribute perform so-called "major upgrades". From the Microsoft docs, we learn that... > A typical major upgrade **removes a previous version** of an > application and installs a new version. Indeed that was the case -- the previous version is uninstalled completely before the new version gets installed. Since we install an extension that's loaded by explorer, the installer will ask the user to restart Windows Explorer during the uninstallation of the previous version (and restarting that might not always work as expected). There is a way to change this behaviour though, using Wix3's `MajorUpgrade` element. Through its `Schedule` property it's possible to define when the removal of the previous version should occur. The previous value `afterInstallInitialize` is one of two values that perform a complete uninstall/install sequence. The new value `afterInstallExecute` will install new files on top of the previous installation (depending on the `REINSTALLMODE` I guess) and remove older files that are not present. In the case of the extensions this means that the .dlls from the previous installation will not be touched, as long as the version embedded in the DLL info didn't change. This results in the installer no longer requesting Windows Explorer to restart, which is a big plus :D I also changed the REINSTALLMODE to `dmus` to allow downgrades as well. With this change, the request to restart Windows Explorer should hopefully happen only once an installation was made using an MSI that contains this change. Further updates will only request a restart if the DLL version of these extensions change... See also: - https://learn.microsoft.com/en-us/windows/win32/msi/major-upgrades - https://docs.firegiant.com/wix/schema/wxs/majorupgrade/#attributes:~:text=Schedule Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
Stopping the Windows Explorer process does not always work. Per default the MSI Restart Manager will display a warning message after a timeout, and not attempt to restart Explorer afterwards -- resulting in a black screen if no other window is open. Setting the property `MSIRMSHUTDOWN` to `1` will force the termination of the process when the timeout is reached, which finally allows the Explorer to be restarted. Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
let's have the MSI RestartManager take care of that Signed-off-by: Jyrki Gadinger <nilsding@nilsding.org>
ac3131b to
d28b8e3
Compare
|
Artifact containing the AppImage: nextcloud-appimage-pr-8178.zip SHA256 checksum: To test this change/fix you can download the above artifact file, unzip it, and run it. Please make sure to quit your existing Nextcloud app and backup your data. |
|
|
/backport to stable-3.16 |







No description provided.