在 Windows 上安装更新时 Electron 自动更新失败

2023-12-30

我有一个电子应用程序,它使用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 has an installer.exe安装以前版本的文件,以及pending包含新版本安装程序的文件夹。手动执行此安装程序会导致应用程序更新且不会出现错误。

我尝试使用测试checkForUpdatesAndNotify代替checkForUpdates(并注释掉对quitAndInstall),并且它像广告中那样工作,但是我想确保立即安装更新,而不是等待用户自行退出。

我怎样才能进一步调试这个?为什么我没有看到任何错误?我应该去哪里寻找他们?我究竟做错了什么?


问题原来是我使用选项创建了窗口closable: false,防止自动更新程序将其关闭。删除此设置后自动更新程序可以完美运行

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Windows 上安装更新时 Electron 自动更新失败 的相关文章

  • 类型错误:不是构造函数

    我只是将代码用作有关 JavaScript 类的学习练习 该代码产生 TypeError SimpleLogger 不是构造函数 该类似乎已导出 但我无法在 main js 文件中实例化它 我已经减少了代码以仅显示问题 我想知道是否有人能发
  • 电子如何创建增量文件

    I use electron builder构建我的应用程序并成功构建第一个版本 其中包含三个输出 foosetup exe foo 0 0 1 full nupkg 和 RELEASES 现在我想实现自动更新 并且我已经部署了后端服务通过
  • 节点模块是针对不同的节点模块编译的 67

    我有一个在节点模块版本 67 下编译的节点项目 但现在我收到一个错误 它需要节点模块版本 69 usb bindings node was compiled against a different Node js version using
  • NSIS - 静默自动更新应用程序

    我有一个适用于我的 net c 应用程序的 NSIS 安装工具包 考虑到我已经将新的更新 新的 NSIS 应用程序版本 下载到本地计算机 有没有办法静默自动更新我的应用程序 谢谢 如果您需要检测命令行 Autoupdate yes incl
  • 在电子中创建多个预加载文件(每页一个)

    我正在创建我的第一个 Electron 应用程序 并且完成了表单的第一页 现在这个应用程序不是 SPA 所以我有大约 3 4 个不同的页面 并且页面通向另一个页面 为了允许正确的代码组织 我想为每个面向客户端的页面保留一个单独的预加载文件
  • 如何使用react-router重新加载页面?

    我可以在这个文件中看到 https github com ReactTraining react router blob v0 13 3 modules createRouter js https github com ReactTrain
  • ElectronJS - 在窗口之间共享 redux 存储?

    我有一个基于的电子应用程序electron react boilerplate 现在 我有一个窗口按照我希望的方式运行 我开始创建一个新窗口 我目前有 2 个 html 文件 每个窗口一个 包含 div 根 div div div div
  • Electron 构建应用程序无法启动 Express 服务器

    我正在构建一个应用程序 当我处于开发人员模式时一切正常 每件事都按其应有的方式运作 但是 当我使用电子构建器打包我的应用程序时 应用程序会打开 但它不会启动快速服务器 并且应用程序无法正常工作 这是我的 package json 代码 na
  • Angular 4 + Electron - 如何运行应用程序并观察更改(实时重新加载)

    我正在使用 Angular 4 创建一个 Electron 应用程序 我如何设置它 以便它监视任何更改并实时重新加载它 包 json name angular electron version 0 0 0 license MIT main
  • Electron 为触摸屏启用触摸事件

    我有一个连接到触摸屏的 Raspberry Pi 并通过 startx 命令在其上运行电子应用程序 startx electron app nocursor 我无法处理触摸事件 例如 touchstart touchend 的问题 显然这是
  • Electron 应用程序可以与 java 代码集成吗?

    由于node js仍然缺乏Java中存在的重要功能 因此我想使用Java而不是node js 并使用Web语言 html js css 创建客户端 Electron 是跨平台的 java 也是跨平台的 因此似乎有一个能够两全其美的解决方案
  • NSIS - 在命令行安装期间打印提示

    我正在使用 NSIS 为 Windows 制作安装程序 并且有许多用户可以使用命令行指定的自定义安装选项 例如 installer exe IDPATH c Program Files Adobe Adobe InDesign CS5 S
  • 无法通过电子应用程序在discordjs上发送附加到消息的图像

    我正在尝试为我使用discordjs 编写的discord 机器人构建图形界面 但是 我在发送图像时遇到了问题 这是我的代码中负责向用户发送消息的部分 utilsateur createDM then channeltemp gt let
  • 在电子生成器反应电子应用程序后,在 Windows 中出现空白屏幕

    在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 这是package json 在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 name SmallBusinessManagement version 0 1
  • Electron — 无法显示自定义图标

    我在以两种不同的方式设置 Electron 应用程序的图标时遇到问题 非打包 通过终端运行应用程序 我的 main js 确实指定了一个 图标 值 指向图标文件 但它不适用 包装 使用电子包装器 我的 package json 文件指定了
  • Electron:我们可以使用其唯一的 id 来访问 BrowserWindow 吗?

    假设多次调用以下函数来创建 BrowserWindow 例如 5 次 let mainWindow function createWindow use strict mainWindow new BrowserWindow height h
  • ElectronJS ReferenceError:导航器未定义

    我正在尝试在电子上制作自定义标题栏 但是当我启动我的应用程序时 我遇到了 ReferenceError 导航器未定义 问题 请帮忙 这是我的 main js 中的代码片段 My Codes https i stack imgur com c
  • window.alert() 之后无法编辑输入文本字段

    我有这个 Electron 应用程序 使用 NodeJS Bootstrap AngularJS 其中包含一些可以编辑的文本输入字段 我有一个触发 window alert 的按钮 触发后 文本输入字段将不再可编辑 单击应用程序的其他元素不
  • 电子节点集成不起作用,也普遍奇怪的电子行为[重复]

    这个问题在这里已经有答案了 我是 Electron 的新手 我一直在努力让它工作 我遇到了无法解释的行为 所以这里有一个总结 我无法让 Electron 和 html 之间的通信正常工作 即使我有nodeIntegration true 网
  • 电子无声打印

    我目前正在构建一个电子应用程序 我的本地文件系统上有一个 PDF 我需要以静默方式打印出来 在默认打印机上 我遇到了节点打印机库 但它似乎对我不起作用 有没有一个简单的解决方案可以实现这一目标 首先 几乎不可能理解 无声 打印的含义 因为一

随机推荐

  • ViewGroup.resetResolvedTextDirection 中的 Android StackOverflowError

    我刚刚去 android 市场发布我的应用程序的更新 并注意到现有安装报告了一些新错误 虽然我可以理解 并尝试做一些事情 其中的大多数 但这个让我相当困惑 java lang StackOverflowError at android vi
  • 将单词添加到用户词典中并从词典中检索它们

    我的应用程序中几乎没有编辑文本 用户可以在其中输入公司名称 客户名称 目的 诸如此类的内容 现在我想以编程方式将这些单词添加到字典中 因此他们不必每次都重新输入整个单词 相反 字典应该在他们开始输入时建议单词 我在网上搜索了同样的内容 得到
  • pyinstaller 2.0 - 如何为 Windows exe 文件添加描述?

    如何向单个文件 exe 添加版本 版权 文件描述等描述 python pyinstaller py F w i favicon ico C Projekte Eclipse MyApp app pyw version file 版本信息 t
  • 如何忽略 Jacoco 的 lombok.@UtilityClass?

    我用过lombok UtilityClass to 生成私有构造函数 使班级最终 将实用程序类中的所有字段设为静态 并且 Jacoco 不涵盖 Lombok 生成的代码 如果我显式定义一个私有构造函数 Jacoco 可以识别它 因此 有任何
  • MSMPI 就地 MPI_Allreduce 不适用于 MinGW-w64 gfortran

    我正在尝试使用就地MPI Allreduce结合MinGW w64 gfortran MSYS64提供的版本9 2 和Microsoft MPI 版本10 call MPI Allreduce MPI IN PLACE srcdst n M
  • 如果我在开发代码中使用 Smart::Comments 应该注意什么?

    我知道 Smart Comments 不应在生产代码中使用 因为它是源过滤器 然而 我一直在使用Smart Comments http search cpan org perldoc Smart Comments在我的开发代码中 然后在将代
  • 我们什么时候需要 IOptions?

    我正在 Net Core 中学习 DI 但我不知道使用 DI 的好处IOptions 为什么我们需要IOptions如果我们可以没有它吗 With IOptions interface IService void Print string
  • TypeORM 上传和服务(下载)文件

    介绍 在我的项目中 我尝试将文件存储在 MySQL 中 用户可以上传文件 html WEB APP 之后用户就有了上传文件的列表 html WEB APP 用户可以通过Link下载文件 在后端 我使用一个node js TypeORM 项目
  • 页面操作和浏览器操作有什么区别?

    我做了一个浏览器操作 但我只是尝试测试页面操作 按钮放置在同一位置 但页面操作按钮无法单击 图标呈灰色 我认为页面操作按钮位于地址栏上 而不是工具栏中 为什么它位于同一个地方 My browser action button My page
  • 合并不同目录级别的 git 存储库

    我有一个存储库 B 其内容需要驻留在 A src B 中 A 的子目录中 我希望最终得到一个存储库 A 其中包含 A 和 B 的提交历史记录 网络上的其他解决方案似乎向我展示了如何在单独的子树中保持树完整 或合并具有相同目录结构的存储库的选
  • 在 Pandas 数据帧上使用 groupby 按财政年度进行分组

    我有一个数据框 with a 日期时间64称为 DT 的列 是否可以使用groupby按财政年度从4月1日到3月31日进行分组 例如 Date PE LOW 2010 04 01 15 44 2011 03 31 16 8 2011 04
  • 下载 Excel 文件

    我之前曾问过这个问题 但在启动文件下载时仍然遇到困难 var fileName ExcelData xlsx var file new FileInfo fileName using var package new OfficeOpenXm
  • 撤销权限 android.permission.CAMERA

    我收到错误revoked permission android permission CAMERA 我在清单上使用了相机权限 private void dispatchTakePictureIntent int actionCode Int
  • 程序崩溃,但调试诊断说这是第一次机会异常,对吗?

    也许这是正常情况 但我很困惑 我正在从 Visual Studio 运行我的 C 调试应用程序 DebugDiag 设置为自动附加到进程 我有一条规则从该 应用程序收集故障转储 并且该规则定义未配置的第一次机会异常的操作应为 无 但是当应用
  • 如何将 EL 变量传递给 JavaScript

    我有一个变量 bean name 我如何将它传递给 JavaScript 变量 我试过了var name bean name and var name bean name 但它不起作用 我的想法是将其放入隐藏输入中 就像隐藏中一样
  • Phonegap iOS:将图像下载到照片库

    是否可以下载文件 图像 并将其保存在照片库中 我知道这一点download http docs phonegap com en 2 3 0 cordova file file md html FileTransfer download方法
  • 获取整数的第 n 位

    我得到一个大整数a 和一个 相对较小的 整数n 最快的获取方式是什么n二进制表示的第 th 位 从右起 a使用原生Python 将位移到最后一个位置 屏蔽其他所有内容 bit a gt gt n 1 这假设这些位以通常的方式索引 即最低有效
  • 如何在 asp.net MVC 中压缩内容?

    如何压缩 asp net mvc 应用程序发送的输出 这是我使用的 截至目前 using System IO Compression public class CompressAttribute ActionFilterAttribute
  • 从 kpcs7 (.p7b) 文件中提取私钥和证书

    我有一个 p7b 文件 如何提取密钥和证书 我尝试过 openssl 但无法获得确切的命令 选项 Thanks PKCS 7 文件不包含私钥 至于证书 您尚未指定您使用的平台以及您的问题与编程有何关系
  • 在 Windows 上安装更新时 Electron 自动更新失败

    我有一个电子应用程序 它使用electron builder用于构建 打包和发布应用程序 我有以下自动更新代码 autoUpdater logger log autoUpdater logger transports file level