Squirrel shortcut target is not correct, app launches after install but shortcut does nothing.
See original GitHub issueNode 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" } }
Issue Analytics
- State:
- Created 5 years ago
- Comments:7
Top GitHub Comments
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?
@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.
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!