J'ai réussi à créer un programme d'installation .exe pour Windows à l'aide de electron builder, j'ai créé 2 package.json comme indiqué dans la documentation:
https://github.com/electron-userland/electron-builder .
J'ai fini par avoir un dossier avec un .exe de travail
"dist:win64": "./node_modules/.bin/build --platform win32 --Arch x64"
La section de construction de mon package principal.json est
"build": {
"app-bundle-id": "org.test.mytest",
"app-category-type": "public.app-category.graphics-design",
"osx": {
"contents": [
{
"x": 410,
"y": 150,
"type": "link",
"path": "/Applications"
},
{
"x": 130,
"y": 150,
"type": "file"
}
]
},
"win": {
"title": "My awesome app",
"version": "2.28.999.1",
"noMsi": false,
"authors": "Author"
}
}
Tout fonctionne bien, je dispose d’un programme d’installation .exe mais il n’ya aucun moyen d’avoir un programme d’installation .msi qui mette le contenu dans le répertoire des fichiers programme.
Au lieu de cela, je me suis retrouvé avec une installation dans le dossier C:\Users\UserHome\AppData\Local\electron avec et un programme d'installation, comme ci-dessous.
Existe-t-il un moyen d’avoir un véritable installateur .msi en utilisant electron builder qui place le contenu dans le dossier du programme. Le seul projet qui a fonctionné est celui-ci https://github.com/theodo/electron-boilerplate mais il utilise une ancienne version de électron-builder.
Dans le document électronique, définir noMsi
sur false devrait suffire.
Should Squirrel.Windows create an MSI installer?
comme indiqué dans le wiki de la dernière version de Electron Builder vous devez utiliser l'option msi
dans build.win
:
"build": {
"app-bundle-id": "org.test.mytest",
"app-category-type": "public.app-category.graphics-design",
...
,
"win": {
"title": "My awesome app",
"version": "2.28.999.1",
"msi": true,
"authors": "Author"
}
}
En réalité, vous n'avez pas besoin d'un MSI pour installer votre application dans Program Files
.
Si vous désactivez un clic dans la configuration nsis (oneClick
), l'utilisateur est invité à effectuer l'installation unique (dans AppData
) ou par ordinateur (dans Program Files
).
Si vous ne voulez pas leur donner le choix, vous pouvez définir perMachine
sur false, ce qui ne permettra l'installation que dans Program Files:
"nsis": {
"oneClick": false,
"perMachine": false
},
Personnellement, je leur laisserais cette option car ils peuvent toujours installer sans droits d'administrateur!
Dans la dernière version de electron-builder
, il existe également une option allowToChangeInstallationDirectory
qui permet à l'utilisateur de choisir n'importe quel emplacement d'installation.
Je n'ai pas encore réussi à le faire fonctionner, mais je crois comprendre que c'est le contraire (nom terrible).
"noMsi": false // will make an MSI
"noMsi": true // will NOT make an MSI
Si tout ce que vous voulez, c'est un programme d'installation au format exe (je ne sais pas à propos de msi), vous pouvez utiliser electron-builder pour créer l'exe décompressé dans un répertoire. Consultez la documentation sur http://npmjs.org/package/electron-builder . La documentation est assez simple. Après avoir obtenu le dossier décompressé avec votre fichier .exe, utilisez "Inno Setup Compiler" pour créer un programme d'installation de qualité professionnelle. Une fois que vous avez compris, il faut environ 5 minutes pour tout faire.