我正在使用wix安装程序为Electron Application生成一个msi文件 我的packge.json
{
"name": "sqli-1d1q",
"productName": "sqli-1d1q",
"version": "1.0.0",
"description": "SQLI 1D1Q",
"main": "main.js",
"scripts": {
"start": "electron .",
"package-mac": "electron-packager . --overwrite --platform=darwin --arch=x64 --icon=ressources/icons/mac/icon.icns --prune=true --out=release-builds",
"package-linux": "electron-packager . --overwrite --platform=linux --arch=x64 --icon=ressources/icons/png/64x64.png --prune=true --out=release-builds",
"package-win": "electron-packager . --overwrite --platform=win32 --arch=x64 --icon=ressources/icons/win/icon.ico --prune=true --out=release-builds",
"installer-debian": "electron-installer-debian --src release-builds/sqli-1d1q-linux-x64/ --dest installers/ --arch amd64",
"installer-mac": "electron-installer-dmg ./release-builds/sqli-1d1q-darwin-x64/sqli-1d1q.app installers/sqli",
"installer-win": "node .\\build_win_installer.js"
},
"author": "SQLI",
"devDependencies": {
"electron": "^6.0.12",
"electron-wix-msi": "^2.2.0"
}
,"dependencies": {
"auto-launch": "^5.0.5",
"cron": "^1.7.2",
"node-machine-id": "^1.1.12"
}
}
我的build_win_installer
Import Modules
const { MSICreator } = require("electron-wix-msi");
const path = require("path");
// 2. Define input and output directory.
// Important: the directories must be absolute, not relative e.g
// appDirectory: "C:\\Users\sdkca\Desktop\OurCodeWorld-win32-x64",
const APP_DIR = path.resolve(__dirname, "./release-builds/sqli-1d1q-win32-x64");
// outputDirectory: "C:\\Users\sdkca\Desktop\windows_installer",
const OUT_DIR = path.resolve(__dirname, "./installers/sqli-1d1q-win");
// 3. Instantiate the MSICreator
const msiCreator = new MSICreator({
appDirectory: APP_DIR,
outputDirectory: OUT_DIR,
// Configure metadata
description: "SQLI - 1D1Q",
exe: "sqli-1d1q",
name: "SQLI - 1D1Q",
manufacturer: "SQLI",
version: "1.0.0",
extensions: ["WixUtilExtension"],
upgradeCode: "ba21a040-1666-4d81-a8d8-2539590f6b9e", // A unique UUID used by the app toidentify
itself.
MigrateFeatures:"Yes",
// Configure installer User Interface
ui: {
chooseDirectory: true
}
});
// 4. Create a .wxs template file
msiCreator.create().then(function() {
// Step 5: Compile the template to a .msi file
msiCreator.compile();
});
问题是运行npm run win-installer
时,它会创建一个新的安装程序,并且不会更新现有的msi文件,因此用户需要再次安装该应用程序