electron 自動更新靜默安裝到一半就失敗


第一種情況:

原因是我設置了阻止關閉事件

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"
    }
  },

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM