Please describe your issue:
Is it possible to make a single windows installer for both ia32 and x64 architectures? When running
electron-forge make --arch=ia32,x64
"Making for the following targets:" fails with error:
An unhandled rejection has occurred inside Forge:
Couldn't find packaged app at: C:\Users\noah\Documents\MQ\QBEA\MedQest-Qbank-Electron\out\MQ-QBank-win32-ia32,x64
Error: Couldn't find packaged app at: C:\Users\noah\Documents\MQ\QBEA\MedQest-Qbank-Electron\out\MQ-QBank-win32-ia32,x64
at _loop$ (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\dist\api\make.js:229:29)
at tryCatch (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\regenerator-runtime\runtime.js:64:40)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\regenerator-runtime\runtime.js:299:22)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\regenerator-runtime\runtime.js:116:21)
at tryCatch (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\regenerator-runtime\runtime.js:64:40)
at maybeInvokeDelegate (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\regenerator-runtime\runtime.js:361:18)
at GeneratorFunctionPrototype.invoke [as _invoke] (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\regenerator-runtime\runtime.js:273:32)
at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\regenerator-runtime\runtime.js:116:21)
at GeneratorFunctionPrototype.tryCatcher (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\util.js:16:23)
at PromiseSpawn._promiseFulfilled (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\generators.js:97:49)
at Promise._settlePromise (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\promise.js:574:26)
at Promise._settlePromise0 (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\promise.js:614:10)
at Promise._settlePromises (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\promise.js:693:18)
at Async._drainQueue (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\async.js:133:16)
at Async._drainQueues (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\async.js:143:10)
at Immediate.Async.drainQueues (C:\Users\noah\AppData\Roaming\npm\node_modules\electron-forge\node_modules\bluebird\js\release\async.js:17:14)
Packaging results in two folders, ia32 and x64 under out/make/squirrel.windows. Is there are way to make them together into one installer?
Alternatively, can publish be configured to build each installer separately and publish the output to two different s3 folders?
Regarding the first question: @paulcbetts do you know if this is possible?
@noahott On windows all 32bit programs can run on 64bit windows but not vice-versa. If you want a single installer that will run on both, you need to use the 32bit version of your program 👍
Alternatively, can publish be configured to build each installer separately and publish the output to two different s3 folders?
Currently that's not possible, the s3 config is static (the same) for all make / publish targets, if it's something that would help you solve this problem it's an enhancement we could look in to.
electron-builder since 16.1.0 supports compiling electron-forge projects (electron-compile is supported) To get one installer for both archs, you can use or nsis target, or nsis-web (https://github.com/electron-userland/electron-builder/wiki/NSIS#32-bit--64-bit).
can publish be configured to build each installer separately and publish the output to two different s3 folders
electron-builder allows you to specify publish config for target (nsis or nsisWeb), including macro support (but ${arch} macro is not available since nsis produces single installer for both archs).
Or you can use nsis target for electron-forge — https://www.npmjs.com/package/electron-forge-maker-nsis
thanks @develar; this is useful information I didn't know before.
@MarshallOfSound, I'm solving this problem, for now, by just publishing the 32bit version.
Most helpful comment
@noahott On windows all 32bit programs can run on 64bit windows but not vice-versa. If you want a single installer that will run on both, you need to use the
32bitversion of your program 👍