首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >应用程序更新yml文件的问题不是在电子中生成的吗?

应用程序更新yml文件的问题不是在电子中生成的吗?
EN

Stack Overflow用户
提问于 2021-04-21 08:02:58
回答 2查看 1.9K关注 0票数 3

我对电子应用程序的自动更新有一个问题,当我完成了所有的应用程序部件之后,我试图将它推送到我的自定义更新服务器,我在我的记录器中发现了这个错误消息:

代码语言:javascript
运行
复制
Error unknown ENOENT: no such file or directory, open 
'C:\{appPath}\{appName}\resources\app-update.yml'

这是我的package.json构建配置

代码语言:javascript
运行
复制
"build": {
    "appId": "com.server.app",
    "copyright": "Copyright company name",
    "generateUpdatesFilesForAllChannels": true,
    "win": {
      "target": "nsis",
      "icon": "build/icon.ico"
    },
    "mac": {
      "target": "dmg",
      "artifactName": "appName.dmg",
      "icon": "build/icon.icns"
    },
    "dmg": {
      "background": "build/i-bg.tif",
      "icon": "build/setup.icns",
      "iconSize": 80,
      "title": "${productName}-${version}",
      "window": {
        "width": 540,
        "height": 380
      }
    },
    "nsis": {
      "artifactName": "${productName}-Setup-${version}.${ext}",
      "oneClick": false,
      "perMachine": false,
      "allowToChangeInstallationDirectory": true,
      "installerIcon": "build/setup.ico",
      "uninstallerIcon": "build/setup.ico",
      "installerHeader": "build/installerHeader.bmp",
      "installerSidebar": "build/installerSidebar.bmp",
      "runAfterFinish": true,
      "deleteAppDataOnUninstall": true,
      "createDesktopShortcut": "always",
      "createStartMenuShortcut": true,
      "shortcutName": "AppName",
      "publish": [{
        "provider": "generic",
        "url": "https://my-update-server/path"
      }]
    },
    "extraFiles": [
      "data",
      "templates"
    ]
  },
  "publish": [{
    "provider": "generic",
    "url": "https://my-update-server/path"
  }],

这是触发自动更新的代码。

代码语言:javascript
运行
复制
//-----------------------------------------------
// Auto-Update event listening 
//-----------------------------------------------

autoUpdater.on('checking-for-update', () => {
  splashLoadingStatus(`Checking for ${appName} update ...`);
})

autoUpdater.on('update-available',(info) => {
  splashLoadingStatus(`${appName} new update available.`);
})

autoUpdater.on('update-progress',(progInfo) => {
  splashLoadingStatus(`Download speed: ${progInfo.bytesPerSecond} - Download ${progInfo.percent}% (${progInfo.transferred}/${progInfo.total})`);
})

autoUpdater.on('error' , (error) => {
  dialog.showErrorBox('Error', error.message);
})

autoUpdater.on('update-downloaded', (info) => {
  const message = {
    type: 'info',
    buttons: ['Restart', 'Update'],
    title: `${appName} Update`,
    detail: `A new version has been downloaded. Restart ${appName} to apply the updates.`
  }

  dialog.showMessageBox(message, (res) => {
    if(res === 0) {
      autoUpdater.quitAndInstall();
    }
  })
})
.....
          autoUpdater.setFeedURL('https://my-update-server/path');
          autoUpdater.checkForUpdatesAndNotify();
.....

然后,当我推动构建时,它将对生成的latest.yml文件做所有正确的操作,但是在安装之后,我发现app-update.yml不在那里……

EN

Stack Overflow用户

发布于 2022-04-30 06:47:56

我在使用autoUpdater.setFeedURL()之前使用autoUpdater.checkForUpdates()修复了它。下面是适用于github发行版的代码片段。此外,在运行这段代码之前,请确保Github中有现有的版本。

代码语言:javascript
运行
复制
import { autoUpdater } from "electron-updater";

// ...

autoUpdater.setFeedURL({
  provider: "github",
  owner: "org",
  repo: "repo",
});
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67191654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档