electron-updater如何将应用升级至安装目录?

我们在正常用electron-builder进行打包的时候,可以选择默认安装的盘符

我们需要新建一个installer.nsh文件

!macro preInit
  SetRegView 64
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\"
  WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\"
  SetRegView 32
  WriteRegExpandStr HKLM "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\"
  WriteRegExpandStr HKCU "${INSTALL_REGISTRY_KEY}" InstallLocation "D:\"
!macroend

然后在配置文件的nsis中进行配置

使用include: 'public/installer.nsh'进行引入自己文件

   nsis: {
          oneClick: false,
          allowToChangeInstallationDirectory: true,
          perMachine: true,
          createDesktopShortcut: true,
          createStartMenuShortcut: true,
          installerIcon: 'src-electron/icons/icon.ico',
          installerHeaderIcon: 'src-electron/icons/icon.ico',
          artifactName: '${productName}-${version}-${os}-${arch}-setup.${ext}',
          uninstallDisplayName: '卸载 ${productName}',
          deleteAppDataOnUninstall: true,
          include: 'public/installer.nsh'
        }

当使用electron-updater的时候,我们更新的会自动安装到我们设置的盘符里面,一旦我们切换安装路径之后,更新的软件依旧会安装在我们在installer.nsh文件里面设置的路径,

我们在使用electron-updater的时候,可以吧 nsis中的include: 'public/installer.nsh'注释,

但是注意要把  allowToChangeInstallationDirectory: true,设置为true,(允许进行修改安装目录)这样我们使用electron-updater进行更新的时候,

就会安装到我们的软件安装的盘符里面

  nsis: {
          oneClick: false,
          allowToChangeInstallationDirectory: true,
          perMachine: true,
          createDesktopShortcut: true,
          createStartMenuShortcut: true,
          installerIcon: 'src-electron/icons/icon.ico',
          installerHeaderIcon: 'src-electron/icons/icon.ico',
          artifactName: '${productName}-${version}-${os}-${arch}-setup.${ext}',
          uninstallDisplayName: '卸载 ${productName}',
          deleteAppDataOnUninstall: true,
          // include: 'public/installer.nsh'
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是使用Electron Builder和Electron Updater实现自动更新的示例代码: 首先,你需要安装electron-builder和electron-updater: ```bash npm install electron-builder electron-updater --save-dev ``` 然后,在你的主进程文件中,添加以下代码: ```javascript const { app, autoUpdater } = require('electron'); const { autoUpdater } = require('electron-updater'); // 设置更新服务器的地址 autoUpdater.setFeedURL({ provider: 'generic', url: 'http://your-update-server.com' }); // 在应用启动时检查更新 autoUpdater.checkForUpdatesAndNotify(); // 处理更新下载完成事件 autoUpdater.on('update-downloaded', () => { // 通知用户更新已经下载完成,可以安装更新 autoUpdater.quitAndInstall(); }); ``` 在渲染进程(例如你的网页或者界面)中,你可以添加以下代码来手动检查更新: ```javascript const { ipcRenderer } = require('electron'); // 发送事件给主进程来检查更新 ipcRenderer.send('check-for-updates'); // 监听主进程返回的更新状态 ipcRenderer.on('update-status', (event, status) => { if (status === 'update-available') { // 通知用户有新的更新可用,可以选择是否下载 } else if (status === 'update-downloading') { // 通知用户更新正在下载中 } else if (status === 'update-downloaded') { // 通知用户更新已经下载完成,可以安装更新 } else if (status === 'update-not-available') { // 通知用户没有新的更新可用 } }); ``` 最后,在你的Electron Builder配置文件中,添加以下配置: ```json { "mac": { "target": "zip", "category": "your-category" }, "win": { "target": "nsis", "icon": "path/to/icon.ico", "publisherName": "your-publisher-name", "verifyUpdateCodeSignature": false }, "linux": { "target": "AppImage" }, "publish": { "provider": "generic", "url": "http://your-update-server.com" } } ``` 这样,你就可以使用Electron Builder和Electron Updater来实现自动更新了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值