问题标签 [squirrel.windows]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4362 浏览

javascript - 使用 Electron 通过 Squirrel 事件创建桌面快捷方式

我有一个 Electron 应用程序,我正在使用 Mac 为其制作 Windows 安装程序。

现在我有一个 /installers 目录和一个处理所有 Squirrel 事件的 setupEvents.js 文件。其中大部分来自Windows 安装程序文档

到目前为止,这按预期工作,除了添加到桌面的快捷方式图标的标题为“电子”,我不知道如何更改它。我的 package.json 中有一个名称和 productName:

我的安装程序配置如下所示:

我不确定在哪里告诉安装程序快捷方式图标应该有我的应用程序的名称,而不仅仅是“电子”。

提前致谢!

0 投票
1 回答
548 浏览

javascript - 如何保存下载的更新以供以后安装?

我正在使用 squirrel 在我的 Electron 应用程序中实现自动更新。下载更新后,我会向用户显示一个对话框,为他们提供两个选项:

  1. 退出应用程序并立即安装更新(使用autoUpdater.quitAndInstall()
  2. 暂时搁置更新,下次应用启动时安装

选项 1 - 相当并安装现在工作正常,但我无法让选项 2 - 在下次应用程序启动时安装 - 工作。

期望的行为是,如果用户选择稍后安装,则在下次启动应用程序时立即安装更新。

在我的应用程序中,我处理 autoUpdaterupdate-downloaded事件。checkForUpdates当应用程序启动时,我也调用了。我假设如果更新被忽略,那么当下次启动应用程序时,调用checkForUpdatessquirrel 会注意到现有的下载,发出update-downloaded事件,并且会再次询问用户是否要安装更新。但是,不会update-downloaded发出任何事件。

其次,如果用户选择稍后安装,我会在文件中写入一个标志,userData告诉应用程序autoUpdater.quitAndInstall在下次启动应用程序时调用。这会产生错误,因为此方法只能在update-downloaded发出后调用。

那么我怎样才能让它工作呢?我是否需要以某种方式删除现有下载,以便在下次启动应用程序时再次下载?这似乎不对。

0 投票
1 回答
213 浏览

electron - 传入 process-start-args 时,Update.exe 不会创建开始菜单快捷方式

我正在使用electron-squirrel-startup创建开始菜单快捷方式,但我需要将参数传递给快捷方式,现在我正在index.jsnode_modules/electron-squirrel-startup这样编辑:

尽管它不再创建快捷方式。

如何使用参数创建开始菜单快捷方式?

0 投票
1 回答
146 浏览

node.js - 安装电子应用程序时如何在全球最终用户电脑中安装节点模块?

我需要一个节点模块“html-pdf”来为我的电子应用程序将 html 转换为 pdf。由于我使用 ASAR 来打包我的代码,如果我在 asar 中打包 html-pdf,我将无法创建 pdf,因为 html-pdf 在其中进行了一些写入操作,并且 ASAR 包是只读的。因此,创建包后,我需要手动将 HTML-PDF 模块放入资源文件夹中,然后创建安装程序。我的用例:在自动更新应用程序时,我需要在创建安装程序之前手动将 html-pdf 模块复制粘贴到任何新版本中。TLDR 我想在用户计算机中全局安装一个 npm 模块,即使我的应用程序被卸载,我也希望它出现在他的电脑中。

0 投票
0 回答
1373 浏览

electron - Electron Squirrel.Windows:如何在卸载时删除本地应用程序数据?

目前我有一个用 Squirrel.Windows 构建的安装程序。卸载时,应用程序目录位于:

遗迹。我曾尝试在钩子下使用rimraf--squirrel-uninstall删除目录,但由于文件正在使用中而失败。

这是我所拥有的不起作用的:

我尝试了以下方法无济于事:

  1. 使用 asetTimeout()来延迟rimraf(myLocalAppData)通话
  2. 如果在尝试清理目录时遇到错误代码,则使用maxBusyTriesrimraf 选项中的参数继续重试 10 秒EBUSYENOTEMPTYEPERM
  3. 运行app.exit()rimraf(myLocalAppData)

我知道electron-builder提供的 NSIS 安装程序可以正确清理应用程序数据目录,但我无法使用它,因为我需要 MSI 来通过组策略管理支持机器范围的安装。

任何帮助表示赞赏!

0 投票
0 回答
594 浏览

javascript - 如何在电子应用程序的 Windows 中处理 .net4.5 要求问题?

我们在电子中内置了我们的桌面应用程序(Windows)。在大多数系统上,它都能完美安装。但在某些计算机,特别是 Windows 7 中,用户在安装软件之前会收到提示安装 .net 4.5。大多数情况下,安装它可以正常工作。但在某些情况下,用户将无法安装 .net 4.5,因为他们的系统中安装了较新版本的 .net。在这种情况下,我们需要远程连接到他们的 PC 并卸载以前的版本并通过一些调整安装新版本..即停止 WuAuServ,以及使用 softwareDistribution 并再次启动 WuAuServ。

似乎它需要使用电子构建的应用程序。

我想知道即使松弛在安装时是否也面临同样的问题。如果没有,那么有人可以指导我我做错了什么吗?

0 投票
0 回答
528 浏览

python - 为 Electron 应用程序添加 Python 安装

我正在为 Windows 创建一个 Eletron 桌面应用程序。我正在使用electron-packager然后electron-squirrel-startup创建一个 .exe 文件。就像在本教程中一样: https ://ourcodeworld.com/articles/read/365/how-to-create-a-windows-installer-for-an-application-built-with-electron-framework

我想将 Python 的安装添加到安装程序中。有谁知道该怎么做?

我的猜测是在 main.js 文件中的某个地方:

但我不确定。

编辑:

我的想法是使用node-cmd模块来执行 Windowscmd命令,但由于某种原因,这样的代码

handleSquirrelEvent函数中不起作用。它虽然在它之外工作。

0 投票
1 回答
110 浏览

node.js - 在处理 Squirrel Events 函数时使用 node-cmd 模块

我正在使用electron-packager和为 Windows 构建桌面应用程序electron-squirrel-startup,我想cmd在安装我的应用程序期间执行一些 Windows 命令。为此,我计划使用node-cmd节点模块,但我并没有真正在函数内部handleSquirrelEvents工作。像这样的示例命令:

似乎工作。在 my_app/node_module/node-cmd/example 目录中创建一个文件 example.created.file。

但是任何其他代码都不起作用。即使我只更改要“触摸”的文件名,也不会发生任何事情。

0 投票
2 回答
2004 浏览

windows-installer - Electron Squirrel.Windows:.msi 不工作

我开发了一个 Electron 应用程序并使用,eletron-packager然后electron-squirrel-startup我创建了.exe安装.msi程序文件。该.exe文件工作正常,但.msi不是。看起来它只是在某个时候停止并关闭。在控制面板中我可以看到“my_app Machine-Wide Installer”,我不确定这是否是预期的效果,但仍然没有安装 my_app。

我有一个非常基本的 handleSquirrelEvents 函数:

这有点牵强,但也许它与数字签名有关?

0 投票
0 回答
293 浏览

c# - Squirrel RestartApp 似乎并非在所有情况下都有效

我有一个Squirrel的小适配器。

其中一种方法只调用RestartApp()

但是,在某些情况下,这有效,而在其他情况下则无效。有什么方法可以跟踪/记录为什么会出现这个问题?

我可以获取源代码,添加日志记录,但也许还有其他方法?
到目前为止,我已经了解到,当没有发生重新启动时,它不会到达SquirrelSetup.log进入。