Electron-forge: Single squirrel installer for Windows 32 and 64 bit architectures

Created on 20 Mar 2017  ·  5Comments  ·  Source: electron-userland/electron-forge

  • [x] I have read the contribution documentation for this project.
  • [x] I agree to follow the code of conduct that this project follows, as appropriate.
  • [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

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?

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 32bit version of your program 👍

All 5 comments

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.

Was this page helpful?
0 / 5 - 0 ratings