三行代码解决electron-updater升级失败问题

在21年末遇到公司遇到一个比较奇葩的bug,electron开发客户端在进行自动升级时中途闪退没有任何日志。
经仔细观察,是在新包下载完后对老版本包进行替换的时候闪退,无意中发现在这一过程里,任务管控器里有两个应用进程,猜想是旧的任务没有完全退出进程,于是查阅api,对关于退出任务、进程、关闭窗口的api进行组合测试,最终总结了一套解决方案~
如下代码:

ipcMain.on('isUpdateNow', (e, arg) => {
      //console.log("开始更新");
      //some code here to handle event
      //重点是以下几行代码,顺序不要乱
      mainWindow.webContents.send('quit');
      autoUpdater.quitAndInstall();
      if(mainWindow&&mainWindow.destroy){
          mainWindow.destroy();
      }
      app.quit();
 });

版权声明:本文为qq_41293573原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。