We have a project running with Mono and GTK#, which need to be installed as a dependency while installing our application. It's just starting and waiting for an executable to finish. Is this possible at install time?
@Kimmax Yeah, you need to mark it as Squirrel aware. You need to move quick though because you have 15sec before you get killed.
if the installer of a dependency require admin permission, is that possible?
No
You need to move quick though because you have 15sec before you get killed.
For starting the installer, or for finishing the whole installation? The latter is a really tough requirement, because we can't know how slow users' hdd+antivirus combinations are…
You have 15 seconds to finish whatever you were trying to do, this is probably not fast enough to lay down all of Mono and GTK#. Instead of installing Mono as a system dependency, why don't you just ship it as part of your app?
In our case it's VC Redist, and I'd rather not puke its DLLs over multiple different folders if I can avoid it (and with electron-builder, I don't even know how to). And 15 seconds _is_ too short, since installation needs elevated privileges, and on some machines Windows needs 5+ seconds just to load the UAC screen.
Is there no way to tell Squirrel to run an msi/exe and wait for it to finish before continuing? It's a common enough use case that Steam et al. have a mechanism for it, too.
UAC elevation is explicitly not supported by Squirrel, nor is installing components that require UAC. Like, the concept of Squirrel is that your app is Self Contained and doesn't mess with users systems. I concede that there are indeed legitimate scenarios where this is valid (installing VCRedist isn't one of them, bundle it in your app), but Squirrel is just Not For That, you'll have to use an alternative
UAC elevation is explicitly not supported by Squirrel, nor is installing components that require UAC.
Installers that self-elevate seem to work, though. If it wasn't for the time limit, the VCRedist installer works fine (just needs an SSD and good reflexes…).
installing VCRedist isn't one of them, bundle it in your app
Hooray bloat, that's 9 useless DLLs all over the place that 90% of the users wouldn't even need. At least it runs now…
Squirrel is just Not For That, you'll have to use an alternative
We'll take a look at electron-builder's NSIS target, then. Thanks for the explanation.
Hooray bloat, that's 9 useless DLLs all over the place that 90% of the users wouldn't even need. At least it runs now…
This just doesn't matter in 2016, sorry
@creshal hey, kudos for having a good attitude about this. people so often get mad when free software that's made for one use case doesn't fit their own use case, it's really nice to see someone be chill for once.
Thank you for censoring my comment!
But really, it's one thing to say "we don't want to support this" and the other to go knee-jerk "you shouldn't want to write efficient code, it's _the future_". That attitude uncalled for.
But really, it's one thing to say "we don't want to support this" and the other to go knee-jerk "you shouldn't want to write efficient code, it's the future". That attitude uncalled for.
It's not that it's inefficient, it's that it's worrying about the wrong things. Given the choice between forcing users to go through a redist install, or using slightly more disk space, the latter is infinitely better. Not to mention, much easier to keep up-to-date - do you want to throw up a UAC dialog every time you do a "silent" background update to update those global Redist files? Will users understand that?
Keeping your app self-contained might be annoying at first, but it makes everything easier to update silently, it means install and uninstall can be _lightning fast_, and it forces developers to have a super clean install experience, that doesn't show dialogs that Regular Users don't understand or want to deal with. This is why Squirrel is so obnoxious about never having UAC, not just to be inefficient or to irritate developers - it's trying to Rethink The Experience of Installing Applications in a way that Puts Users First.
Most helpful comment
@creshal hey, kudos for having a good attitude about this. people so often get mad when free software that's made for one use case doesn't fit their own use case, it's really nice to see someone be chill for once.