Электронное автоматическое обновление не работает автоматически при установке обновления в Windows - PullRequest
0 голосов
/ 27 сентября 2019

У меня есть электронное приложение, которое использует electron-builder для сборки, упаковки и публикации приложения.

У меня есть следующий код автообновления:

autoUpdater.logger = log;
autoUpdater.logger.transports.file.level = "info";
autoUpdater.autoDownload = true;

const updateCheck = () => {
  autoUpdater.checkForUpdates().then(resp => {
    log.info("autoUpdate response:");
    log.info(resp);
  });
};

app.on("ready", async () => {
  log.info(`Version: ${app.getVersion()}`);

  autoUpdater.on("update-downloaded", () => {
    log.info("update downloaded");
    setImmediate(() => {
      try {
        log.info("installing update");
        // app.relaunch();
        autoUpdater.quitAndInstall();
      } catch (err) {
        log.error("Error installing update");
        log.error(err);
      }
    });
  });

  autoUpdater.on("error", err => {
    log.error("AutoUpdater error");
    log.error(err);
  });

  updateCheck();

  schedule.scheduleJob("*/10 * * * *", updateCheck);
});

Когда я публикуюВ новой версии автообновление обнаруживает, успешно загружает и пытается установить его.

Во время установки обновления индикатор выполнения наполовину заполняется, а затем исчезает.

приложение остается закрытым и не перезапускается автоматически после исчезновения индикатора выполнения.

Когда я перезапускаю его вручную, это все еще старая версия.Он обнаруживает, что есть обновление, которое уже загружено, и пытается установить его с тем же результатом (индикатор выполнения заполняется на полпути, затем исчезает, приложение остается закрытым).

Мой файл журнала не показывает ошибок, либоиз блока catch или обратного вызова autoUpdater.on("error").

Местоположение C:\Users\<User>\AppData\Local\<app-name>-updater содержит файл installer.exe, который устанавливает предыдущую версию, и папку pending, которая содержит установщик для новой версии.Выполнение этого установщика вручную приводит к тому, что приложение обновляется без ошибок.

Как можно отладить это дальше?Почему я не вижу ошибок?Где мне их искать?Что я делаю не так?

...