自动更新电子远程服务器返回错误:(404)未找到

时间:2016-10-11 08:32:53

标签: electron auto-update

我已将电子自动更新程序中的两个js文件复制到我的应用程序

自动更新-win.js

'use strict'

const {app} = require('electron')
const {EventEmitter} = require('events')
const squirrelUpdate = require('./squirrel-update-win')

class AutoUpdater extends EventEmitter {
  quitAndInstall () {
    if (!this.updateAvailable) {
      return this.emitError('No update available, can\'t quit and install')
    }
    squirrelUpdate.processStart()
    app.quit()
  }

  getFeedURL () {
    return this.updateURL
  }

  setFeedURL (updateURL, headers) {
    this.updateURL = updateURL
  }

  checkForUpdates () {

    console.log("checkForUpdates/zzzzz");
    if (!this.updateURL) {
      return this.emitError('Update URL is not set')
    }
    if (!squirrelUpdate.supported()) {
      return this.emitError('Can not find Squirrel')
    }
    this.emit('checking-for-update')
    squirrelUpdate.download(this.updateURL, (error, update) => {
        console.log("squirrelUpdate.download");

      if (error != null) {
        return this.emitError(error)
      }
      if (update == null) {
        return this.emit('update-not-available')
      }
      this.updateAvailable = true
      this.emit('update-available')
      squirrelUpdate.update(this.updateURL, (error) => {
        if (error != null) {
          return this.emitError(error)
        }
        const {releaseNotes, version} = update
        // Date is not available on Windows, so fake it.
        const date = new Date()
        this.emit('update-downloaded', {}, releaseNotes, version, date, this.updateURL, () => {
          this.quitAndInstall()
        })
      })
    })
  }

  // Private: Emit both error object and message, this is to keep compatibility
  // with Old APIs.
  emitError (message) {
    this.emit('error', new Error(message), message)
  }
}

module.exports = new AutoUpdater()

和squirrel-update-win.js

在renderer.js中我设置了自动更新程序以使用本地文件而非电子文件

const autoUpdater = require(' ./ auto-updater-win');

checkForUpdates被触发,

网址看起来像http://test.com:3000/updates/latest?v=1.0.4

可以从浏览器中接收并将URL返回到json中新版本的zip文件

 this.emit('checking-for-update')
 squirrelUpdate.download(this.updateURL, (error, update) => {
 console.log("squirrelUpdate.download");

... 也可以从auto-updater-win.js调用

然后来自squirrel-update-win.js 什么时候

//下载URL指定的版本并将新结果写入stdout。

exports.download = function (updateURL, callback) {
  console.log(updateURL);
  return spawnUpdate(['--download', updateURL], false, function (error, stdout) {...}

被击中 它给了我这个错误

System.AggregateException:发生了一个或多个错误。 ---> System.Net.WebException:远程服务器返回错误:(404)Not Found。    在System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)

任何Ideea如何解决?我需要一些帮助:)

非常感谢。

0 个答案:

没有答案