windows-installer
windows-installer copied to clipboard
Squirrel shortcut target is not correct, app launches after install but shortcut does nothing.
Node v8.9.4 electron-forge app with default settings no asar Windows squirrel installer. May be related to #788
Issue is that when I build executable and run it, the app installs correctly and starts on first instance. When I close the app and start it again, it doesn't work, app does not get launched.
I believe that I am handling squirrel and app.quit() events correctly:
if (require('electron-squirrel-startup')) app.quit()
and
var cleanUp = function(event) {
if (appWindow) appWindow.close()
// app.quit()
}
app.on('before-quit', cleanUp)
The application works as expected in dev mode and also when running the packaged exe directly (before it's packed into the squirrel installer). The problem is only apparent when running the squirrel installed application.
After doing some more research, I found that the issue is that the created shortcut points to an executable that is not inside a version folder. It's the same problem described in this issue. electron/windows-installer#169 I'm still looking into exactly what configuration options needs to be adjusted, as I'm just using electron-forge defaults.
Squirrel logs:
2018-04-05 23:54:36> Program: Starting Squirrel Updater: --createShortcut=Boid.exe
2018-04-05 23:54:36> ApplyReleasesImpl: About to create shortcuts for Boid.exe, rootAppDir C:\Users\johnh\AppData\Local\Boid
2018-04-05 23:54:37> ApplyReleasesImpl: Creating shortcut for Boid.exe => C:\Users\johnh\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\boid\Boid.lnk
2018-04-05 23:54:37> ApplyReleasesImpl: About to save shortcut: C:\Users\johnh\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\boid\Boid.lnk (target C:\Users\johnh\AppData\Local\Boid\Boid.exe, workingDir C:\Users\johnh\AppData\Local\Boid\app-0.0.01, args , toastActivatorCSLID e3099bf4-afe1-5f9b-997e-fcd375395cff)
2018-04-05 23:54:37> ApplyReleasesImpl: Creating shortcut for Boid.exe => C:\Users\johnh\Desktop\Boid.lnk
2018-04-05 23:54:37> ApplyReleasesImpl: About to save shortcut: C:\Users\johnh\Desktop\Boid.lnk (target C:\Users\johnh\AppData\Local\Boid\Boid.exe, workingDir C:\Users\johnh\AppData\Local\Boid\app-0.0.01, args , toastActivatorCSLID e3099bf4-afe1-5f9b-997e-fcd375395cff)
2018-04-05 23:54:37> ApplyReleasesImpl: Examining Pin: File Explorer.lnk
2018-04-05 23:54:37> ApplyReleasesImpl: Examining Pin: Google Chrome.lnk
2018-04-05 23:54:37> ApplyReleasesImpl: Examining Pin: Google Keep - notes and lists.lnk
2018-04-05 23:54:37> ApplyReleasesImpl: Examining Pin: PuTTY.lnk
"forge": { "make_targets": { "win32": ["squirrel"], "darwin": ["dmg"], "linux": ["deb", "rpm"] }, "electronPackagerConfig": { "asar": false, "icon": "./logo", "packageManager": "npm", "name": "<%= productName %>" }, "electronWinstallerConfig": { "name": "<%= productName %>" }, "electronInstallerDebian": {}, "electronInstallerRedhat": {}, "github_repository": { "owner": "", "name": "" }, "windowsStoreConfig": { "packageName": "", "name": "electroboid" } }
I think I found the issue: https://github.com/mongodb-js/electron-squirrel-startup/issues/30
I still have the same issue, I've tried to change this:
const exeName = 'dist.exe'; spawnUpdate(['--createShortcut', exeName]);
to this:
const exeName = path.resolve(path.join(rootAtomFolder,'app-'+package.version+'/dist.exe')); spawnUpdate(['--createShortcut', exeName]);
but it didn't work. Is there another solution for this problem?
@robinxshooter I can confirm that this works for my app. Make sure you have the name of your app set correctly so the directory is right, print it out at runtime.
var target = path.resolve(path.dirname(process.execPath),'..',
app-
+ appInfo.version,path.basename(process.execPath))
Here is my full squirrelHandler.js https://gist.github.com/Boid-John/e6348d0dbde4e6633ceb67bbb846ae54
Make sure you call it in your index.js
if (require('./squirrelHandler')) app.quit()
Good luck!
@boid-com is there a way to debug that? If i start
the application I can see all information, but after building the setup file I don't know where am I supposed to to all the console.log
I have inside index.js
https://gist.github.com/Boid-com/e6348d0dbde4e6633ceb67bbb846ae54
On Fri, Feb 19, 2021 at 8:24 AM Leonardo Rick [email protected] wrote:
@boid-com https://github.com/boid-com is there a way to debug that? If i start the application I can see all information, but after building the setup file I don't know where am I supposed to to all the console.log I have inside index.js
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/electron/windows-installer/issues/238#issuecomment-782106920, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHGS4R6XK6KSSHKPP2CHNJTS7ZYDNANCNFSM4EZHFEVQ .
-- John Heeter Founder @ Boid.com
Seeing this issue with electron-forge squirrel maker, which is defined here: https://github.com/electron-userland/electron-forge/blob/master/packages/maker/squirrel/src/MakerSquirrel.ts
What changes need to be made to fix this?
The wrapper was not opening my application either, when I was using this via electron-forge. Changing my app's version in package.json from "0.0.0" to "0.0.1" resolved the issue for me. Maybe there are restrictions on the version field in the wrapper application?