1 | It is developer documentation. See [user documentation](https://electron.build/configuration/nsis).
|
2 |
|
3 | http://www.mathiaswestin.net/2012/09/how-to-make-per-user-installation-with.html
|
4 |
|
5 | https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx#FOLDERID_UserProgramFiles
|
6 |
|
7 | https://github.com/Drizin/NsisMultiUser
|
8 |
|
9 | NSIS vs Inno Setup — it is not easy to choose because both are far from ideal, e.g. inno also doesn't have built-in per-user installation implementation — http://stackoverflow.com/questions/34330668/inno-setup-custom-dialog-with-per-user-or-per-machine-installation.
|
10 |
|
11 | http://stackoverflow.com/questions/2565215/checking-if-the-application-is-running-in-nsis-before-uninstalling
|
12 |
|
13 | One-click installer: http://forums.winamp.com/showthread.php?t=300479
|
14 |
|
15 | # GUID
|
16 | See [docs](https://electron.build/configuration/nsis).
|
17 |
|
18 | We use UUID v5 to generate sha-1 name-based UUID.
|
19 |
|
20 | http://stackoverflow.com/questions/3029994/convert-uri-to-guid
|
21 | https://alexandrebrisebois.wordpress.com/2013/11/14/create-predictable-guids-for-your-windows-azure-table-storage-entities/
|
22 | https://github.com/Squirrel/Squirrel.Windows/pull/658
|
23 |
|
24 | # Compression
|
25 |
|
26 | NSIS LZMA compression is slower and worse compared to external `7za` compression. Slower because `7za` is multi-threaded, worse because LZMA codec implementation is outdated and BCJ2 filter is not enabled.
|
27 | Difference for test app — 4 MB (before: 36.3 after: 32.8).
|
28 |
|
29 | And compression time is also greatly reduced.
|
30 |
|
31 | Since NSIS is awesome, no disadvantages in our approach — [compression is disabled](http://nsis.sourceforge.net/Reference/SetCompress) before `File /oname=app.7z "${APP_ARCHIVE}"` and enabled after (it is the reasons why `SOLID` compression is not used).
|
32 | So, opposite to Squirrel.Windows, archive is not twice compressed.
|
33 |
|
34 | So, in your custom NSIS scripts you should not use any compression instructions. Only `SetCompress` if you need to disable compression for already archived file.
|
35 |
|
36 |
|