Tag: squirrel.windows

电子4 Windows – >电子build设者 – >自动更新:自定义解决scheme

我正在使用Electron构buildWindows应用程序。 为了打包和分发,我正在使用电子生成器 。 电子build设者依赖于许多包,而自动更新它使用松鼠窗 。 我一直在Windows上自动更新3天,最后我提出了一个似乎没有问题的工作解决scheme。 我不会去详细介绍我所尝试过的,并且失败了。 相反,我会在这里发布我提出的解决scheme。 我会和你们分享一下,看看你们是否可以向我指出任何会使我的系统失败的缺陷,或者如果这确实是一个可靠的解决scheme,那就帮助那些正在挣扎的人。 由于后一个原因,我发布了一些比所需要的更多的代码,希望能够帮助其他人。 逻辑如下: 如果当前可执行文件的path中的子文件夹fullupdate不存在(请参阅后面的说明),我们连接在线服务器并通过发送当前应用程序版本检查是否有更新; 如果没有更新,什么也不要做。 如果有更新,我们指示服务器返回一个包含url的jsonstring,我们可以从中下载electron-builder生成的.exe安装程序。 注意:不是.nupkg (服务器代码未提供:-) )。 我们下载文件并将其保存在我们的应用程序当前保存的本地文件夹中的子文件夹fullupdate中。 这应该是“安全”的,因为electron-builder将应用程序保存在当前用户文件夹AppData ,所以我们不应该有权限问题。 在下载结束时,我们在fullupdate文件夹内创build一个新的文件update ,以确保下载成功完成。 我们也可以重命名文件,但我更喜欢这种方式。 下次打开应用程序时: 如果文件夹fullupdate存在,我们检查文件update存在。 如果它不存在,下载没有完成,所以我们删除文件夹fullupdate ,再次调用远程服务器重新开始。 否则,如果文件update存在,我们启动我们下载的.exe文件,并返回true。 这将阻止应用程序打开主窗口。 很酷的事情是,更新程序将删除保存在AppData中的应用程序的旧版本(同时保留本地用户数据),并将其replace为新版本。 这样我们也将摆脱fullupdate文件夹。 现在代码: // we want to run this only on windows var handleStartupEvent = function() { if (process.platform !== 'win32') { return false; } ///////////////// […]

卸载使用松鼠的电子应用程序时如何删除本地存储

我有一个electron.js应用程序,我试图清除卸载应用程序的应用程序的本地存储。 应用程序的安装程序/卸载程序取决于Squirrel.Windows。 我已经试过下面的代码使用electron.session on –squirrel-uninstall事件,但是这不起作用 try { // clear storage data on uninstall const defaultSession = session.defaultSession; defaultSession.clearStorageData(); defaultSession.clearCache() } catch (e) { console.log(e); } 任何帮助将不胜感激。