我已将电子自动更新程序中的两个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如何解决?我需要一些帮助:)
非常感谢。