diff --git a/JamiInstaller/Product.wxs b/JamiInstaller/Product.wxs index b8a9f1124787dbf9f2397a0a06777eeda38244e9..fe6a02bd955103e9c0fd1eec357b06d88a985104 100644 --- a/JamiInstaller/Product.wxs +++ b/JamiInstaller/Product.wxs @@ -40,6 +40,12 @@ <CustomAction Id="removeOldJamiFiles" Directory="APPLICATIONFOLDER" ExeCommand="cmd /c "del vc_redist.x64.exe; del uninstall.exe; del WinSparkle.dll;"" Execute="deferred" Return="ignore" HideTarget="no" Impersonate="no" /> + <Property Id="QtExecCmdLine" Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM QtWebEngineProcess.exe /IM Jami.exe'/> + <CustomAction Id="JamiProcesses.TaskKill" + BinaryKey="WixCA" + DllEntry="CAQuietExec" + Execute="immediate" + Return="ignore"/> </Product> <Fragment Id="DirectoryStructure"> @@ -51,6 +57,7 @@ <Directory Id="ProgramMenuFolder"> <Directory Id="ApplicationProgramsFolder" /> </Directory> + <Directory Id="WindowsFolder" Name="WINDOWS"/> </Directory> </Fragment> @@ -104,6 +111,7 @@ </InstallUISequence> </UI> <InstallExecuteSequence> + <Custom Action='JamiProcesses.TaskKill' Before='InstallValidate'/> <Custom Action="removeOldJamiFiles" After="RemoveFiles" /> <Custom Action="LaunchApplication_nonUI" After="InstallFinalize"> WIXNONUILAUNCH </Custom> <Custom Action="Overwrite_WixSetDefaultPerMachineFolder" After="WixSetDefaultPerMachineFolder" /> diff --git a/src/utils.cpp b/src/utils.cpp index c4322012fe75940deb28acde71cf34236a913e8f..66e93111fbc44b19266c0962b92129ba0e3a4950 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -35,6 +35,7 @@ #include "networkmanager.h" #include "updateconfirmdialog.h" #include "version.h" +#include "mainwindow.h" #include <globalinstances.h> #include <qrencode.h> @@ -439,12 +440,13 @@ Utils::applyUpdates(bool updateToBeta, QWidget* parent) } auto args = QString(" /passive /norestart WIXNONUILAUNCH=1"); auto dir = Utils::WinGetEnv("TEMP"); - auto cmd = "powershell " + QString(dir) + "\\" + downloadPath.fileName() - + " /L*V " + QString(dir) + "\\jami_x64_install.log" + args; - auto retq = QProcess::startDetached(cmd); - if (retq) { - QCoreApplication::exit(); - } + auto cmdStartInstaller = "powershell " + QString(dir) + "\\" + downloadPath.fileName() + + " /L*V " + QString(dir) + "\\jami_x64_install.log" + args; + + MainWindow::instance().close(); + LRCInstance::instance().reset(); + + QProcess::startDetached(cmdStartInstaller); }); }