- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有自己的服务器,我通过 FTP 上传应用程序安装程序。它的名称是 quickmargo Setup 1.0.0.exe
,可在
https://quickmargo.pl/dist/download/quickmargo安装程序1.0.0.exe
我还通过 FTP 将 latest.yml
上传到同一目录,可在以下位置找到:
https://quickmargo.pl/dist/download/latest.yml
在我的 index.js 项目中,我有
import { autoUpdater } from 'electron-updater'
autoUpdater.setFeedURL('https://quickmargo.pl/dist/download');
autoUpdater.on('update-downloaded', () => {
autoUpdater.quitAndInstall()
});
autoUpdater.on('update-available', (ev, info) => {
alert('Update required!');
});
app.on('ready', async () => {
if (process.env.NODE_ENV === 'production') {
await autoUpdater.checkForUpdates()
}
});
在 package.json 中,我有 "version": "1.0.0",
,在 build:{}
中,我有:
"win": {
"icon": "build/icons/icon.ico",
"publish": [{
"provider": "generic",
"url": "https://quickmargo.pl/dist/download"
}]
},
(我不关心其他平台)
现在假设我对我的应用程序进行了一些更改,并且我想要上传版本 1.0.1,并且如果有人已经下载了安装程序并在他的计算机上安装了我的应用程序,我希望我的应用程序能够自动更新。
请告诉我到目前为止我所做的一切是否都很好以及下一步是什么。我考虑以下几点:
版本
更改为1.0.1
编辑
我做了以上三个步骤,加上我还上传了新的latest.yml(版本为1.0.1),结果是当我现在在其他PC上运行以前安装的(在将新版本上传到服务器之前)版本1.0.0时,它没有检测到我将 1.0.1 添加到服务器,并且它没有更新或显示一些弹出窗口或任何内容。我做错了什么?
编辑2
我正在尝试自己解决这个问题,现在我上传了 1.0.2,所以现在下载应用程序的链接是:
https://quickmargo.pl/dist/download/quickmargo安装程序1.0.2.exe
编辑3
我试图自己解决这个问题,我在index.js中编辑了代码。我也在上面编辑过。 alert('Update required!');
on update-available
事件从未发生。它应该向我显示警报未定义的错误消息窗口。但显然更新可用事件从未发出。
其他信息:
v1.0.6
样板文件。4.1.2
npm run build
实际上从 . Electron-vue/build.js
中的样板代码调用一些代码,您可以在上面的链接中看到这个文件(例如它设置NODE_ENV 到生产环境。package.json 中的脚本为:"build": "node . Electron-vue/build.js && electro-builder",
。最佳答案
我能够使用 generic
设置自动更新配置遵循文档发布选项,以前从未这样做过。所以它绝对是可行的,并且不需要通过证书签名,但我最初遇到了问题,因为我设置了 publisherName
在构建配置中,但没有证书。如果当前版本指定了发布者或证书,而新版本没有指定,则也不会安装。
<强>1。启用日志记录
您可以启用 electron-updater
的日志记录还安装 electron-log
包然后将记录器分配给 autoUpdater
:
const log = require('electron-log');
autoUpdater.logger = log;
autoUpdater.logger.transports.file.level = 'info';
默认输出路径是:
~/.config/<app name>/log.log
~/Library/Logs/<app name>/log.log
%USERPROFILE%\AppData\Roaming\<app name>\log.log
如果以下步骤不能解决您的问题,请发布日志内容。
<强>2。请勿调用autoUpdater.setFeedURL()
Do not call setFeedURL. electron-builder automatically creates
app-update.yml
file for you on build in theresources
(this file is internal, you don’t need to be aware of it).
该 URL 已在您的 publish
中定义。提供程序对象,这足以供更新程序使用。另外,URL 字符串作为 setFeedURL()
的参数不正确,it should be an options object 。但同样,指定 publish
中的所有内容提供者就足够了。
<强>3。同时上传.blockmap
文件到您的服务器
除了您的设置之外,还应该在构建时创建这些 .exe
文件。否则,您会在日志中看到无法找到新旧版本文件进行比较的错误。
<强>4。在更新服务器 URL 中添加尾部斜杠
确保url
提供程序对象的参数以斜杠结尾。虽然在没有它的情况下仍然可以找到 yml 文件,但否则在实际下载过程中可能会出现问题。
<强>5。使用 autoUpdater.checkForUpdatesAndNotify()
尝试更简单的方法
不要使用更灵活但也更复杂的方式监听不同的更新事件并在应用程序中对它们使用react,而是首先尝试让它与以下代码一起使用。一旦生效,您仍然可以返回处理不同的事件以获得更好的用户体验。
app.on('ready', async () => {
autoUpdater.checkForUpdatesAndNotify();
});
这将在后台检查并下载更新,并在您关闭应用程序后立即自动安装。将弹出默认的 Windows 通知,通知您可用的更新和过程。
关于javascript - 使用自己的服务器(通用提供商)设置 Electron 自动更新程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58495256/
我想做的是,如果鼠标位于“下一个”按钮上,它会以慢速向右滚动,如果鼠标没有位于“下一个”按钮上,它会停止滚动? 这是我的尝试http://jsfiddle.net/mdanz/nCCRy/14/ $(
StyleCop 是一个很棒的视觉工作室小插件。但它不会向您显示实时提示或提供任何自动修复。 随之而来的是 reSharper 和 StyleCop for reSharper,这是理想的解决方案,但
我为我的MatchQuery使用了模糊性选项,但是我想将模糊性值设置为auto。有什么办法吗? 另外,对于完成建议程序,您可以将其设置为支持unicode,对于我的MatchQuery,有什么方法可以
我想从表中获取一行[字符串名称,字符串密码,int 某些内容]并将其映射到一个 User 对象,该对象具有 3 个属性,如上面的 getter 和 setter有什么方法可以自动完成吗?我考虑过反射,
我有一个像这样的方法:void m1(string str) 并且有一个像这样的类: public class MyClass { public bool b1 { set; get; }
我正在尝试使用 $rootScope 从一个 Controller 向另一个 Controller $broadcast 一些数据。 如果我使用像 ng-click 这样的触发器来运行将广播的功能,它
我考虑了很多关于是要使用完全自动化的缓存还是手动缓存。 我们的自动方法是一种解决方案,它可以挖掘数据库、查询和格式化每个潜在和 future 的数据请求,并将其保存到适当的缓存存储(内存缓存或基于磁盘
我的 CSS 必须使用过渡来更改,直到现在我都使用 div:hover 来实现。 当您单击另一个 div 时需要激活过渡,而不是当您将鼠标悬停在必须移动/更改的 div 上时。 我该怎么做? 谢谢 永
在我的应用程序中,我需要一些动画,但如果它已经设置了动画,则不需要持续时间。但我的问题是它会自动添加持续时间。 在这里你可以看到 2 个函数,第二个没有持续时间但它确实有持续时间(可能从 1 秒开始)
两年前,我需要制作一个工具,通过 POST 自动将 txt/csv 文件上传到我的 Web 服务器,然后使用 cronjob 通过 PHP 对其进行解析。 这有两次在每天午夜自动发生。尽管这行得通,但
请阅读下面程序中的评论: #include void test(char c[]) { c=c+2; //why does this work ? c--; printf("%
也许是个幼稚的问题,但是...... 确认或拒绝: 自动和静态存储持续时间的对象/变量的内存的存在是在编译时确定的,程序运行时失败的可能性绝对为零,因为没有足够的内存用于自动对象。 自然地,当自动对象
有没有什么方法可以自动获得类中属性更改的通知,而不必在每个 setter 中都编写 OnPropertyChanged? (我有数百个属性,我想知道它们是否已更改)。 安东建议 dynamic pro
我们在使用 Azure DevOps 的项目中采用了 gitflow 流程。我有以下场景: 当功能分支合并到 Develop 时,我想在完成拉取请求的同时执行压缩合并策略 当 Release 分支定期
我的网站上有一个评论部分,我将 html 编码的评论保存在我的数据库中。所以我添加了这条评论- "testing" `quotes` \and backslashes\ and html 并将其保存在
是否存在“ checkin 前 TFS 自动 checkout ”这样的功能,以便在我说“ checkin ”之前我不会 checkout 任何文件,例如以防我只是临时更改文件 - 这一直发生。 换句
我有一个运行在 Linux/Apache/Tomcat 堆栈上的网站,它需要每隔几个月自动脱机以进行服务器维护,这将持续任意时间。有哪些选项可以让 Apache 建立和取消“服务器维护”页面? 我需要
我经常在工作中创建文档,在公司内部,由于我们使用的首字母缩写词和缩写词的数量,我们几乎拥有自己的语言。因此,我厌倦了在发布文档之前手动创建首字母缩写词和缩写表,并且快速的谷歌搜索发现了一个可以有效地为
我希望在用户或宏将计算模式从自动更改为手动或手动更改为自动时运行代码。是否有为此触发的事件? (属性是 Application.Calculation 在 Excel 互操作中。) 使用 Excel
这个问题在这里已经有了答案: Repeat command automatically in Linux (13 个回答) 6年前关闭。 我想创建一个脚本来获取另一个文件夹中的所有文件夹名称。并为这些
我是一名优秀的程序员,十分优秀!