第一種情況:
原因是我設置了阻止關閉事件 let canQuit = false; mainWindow.on('close', (event) => { if (!canQuit) { mainWindow.hide(); mainWindow.setSkipTaskbar(true); event.preventDefault(); } }); 所以在執行 autoUpdater.quitAndInstall(); 方法之前要加上 canQuit = true; if (process.platform !== 'darwin') { canQuit = true; autoUpdater.quitAndInstall(); } 問題解決~
把exe應用默認安裝到了用戶上,然后更新的時候就閃退,或者安裝第二次的時候就閃退!
"electron-builder": "^22.8.1",
特別強調nsis配置:
"nsis": { "oneClick": false, "perMachine": true, // 配置為true,不認默認就是安裝到了隱藏文件的用戶上。 "allowElevation": true, "allowToChangeInstallationDirectory": true, "installerIcon": "build/icons/icon.ico", "uninstallerIcon": "build/icons/icon.ico", "installerHeaderIcon": "build/icons/icon.ico", "createDesktopShortcut": true, "createStartMenuShortcut": true, "deleteAppDataOnUninstall": true, "menuCategory": true, "artifactName": "${productName}.${ext}", // 這是是坑千萬別這樣寫,為了打出來的包名好看,這樣寫會導致你的應用第二次安裝失敗 中途閃退
"artifactName": "${productName}${version}.${ext}", // 你得這樣寫,得加上版本號! 默認為artifactName
字符串-工件文件名模板。默認為${productName} Setup ${version}.${ext}
。
"shortcutName": "商盟訂貨"
},
3. package.json的build配置順序很重要
"build": { "extraFiles": [], "publish": [ { "provider": "generic", "url": "https://sm2.35dinghuo.com/download/" } ], "productName": "shangmengdinghuo", "appId": "com.35dinghuo.www", "directories": { "output": "build" }, "nsis": { "oneClick": false, "perMachine": true, "allowElevation": true, "allowToChangeInstallationDirectory": true, "installerIcon": "build/icons/icon.ico", "uninstallerIcon": "build/icons/icon.ico", "installerHeaderIcon": "build/icons/icon.ico", "createDesktopShortcut": true, "createStartMenuShortcut": true, "deleteAppDataOnUninstall": true, "artifactName": "${productName}${version}.${ext}", "shortcutName": "商盟訂貨" }, "files": [ "dist/electron/**/*" ], "dmg": { "contents": [ { "x": 410, "y": 150, "type": "link", "path": "/Applications" }, { "x": 130, "y": 150, "type": "file" } ] }, "mac": { "icon": "build/icons/icon.icns" }, "win": { "icon": "build/icons/icon.ico", "target": "nsis" }, "linux": { "target": "deb", "icon": "build/icons" } },