rubrapack Manual
Building and signing MSI and MSIX packages - and how the formats work
github.com/rubidus-api/rubrapackPDF
A user manual for rubrapack, and a file format manual that explains Windows Installer and MSIX packages byte by byte, so that anyone can implement them.
The English edition is the original.
Contents
Part I - Tutorial
1. Before you start2. A first installer: one program3. Versions and upgrades4. More files and folders5. Shortcuts, icons and the Installed apps entry6. Dialogs, a license, and starting the program7. Several languages8. Optional parts: features and the user's choices9. Conditions and searches10. Who it installs for, and a guarded folder11. The registry, environment variables, INI files, file types and links12. Services, fonts, permissions13. Running your program during installation14. Your own dialog pages15. Cabinets, compression, big packages, and several architectures16. Signing and timestamps17. MSIX packages and bundles18. Checking and looking inside19. Starting fast and automating
Part II - Reference
Part III - Background knowledge
21. Bits, bytes and hexadecimal22. Numbers in files, and bit flags23. Text: characters, code points and encodings24. GUIDs and hashes25. Compression26. Files inside a file27. Tables, keys and references28. Keys, certificates and signatures29. Windows folders and environment variables
Part IV - File formats
30. Package formats for implementers31. Compound File Binary (CFB)32. The MSI database inside the compound file33. Summary information34. The smallest package that installs, repairs, upgrades and uninstalls35. Program files: machine type and version36. Cabinets, MSZIP and deflate37. Deterministic identities and reproducible packages38. Authenticode signatures39. Checking your output against Windows40. MSIX packages41. Registry hive files (REGF)