5 ms·
MSI is hardly transactional. Out of "ACID", it's "happy-path-only-Atomic", "happy-path-only-Consistent", certainly "grab-the-global-mutex-Isolated", and "as-lo
by anton_gogolev 10y ago
MSI is hardly transactional. Out of "ACID", it's "happy-path-only-Atomic", "happy-path-only-Consistent", certainly
"grab-the-global-mutex-Isolated", and "as-long-as-file-system-is-ok-Durable".
I don't think it is possible to make Windows installers fully transactional, but architecture astronauts from Microsoft did their best to pretend that MSI is actually capable of transacted installs. Which is why MSI is such a horrorshow.
- wslh 10y agoNot trying to be purist here but NSIS is explictly non-transactional: killing the installer process in the middle of the installation doesn't perform a rollback later.
- tobias3 10y agoSince Vista Windows has transactional NTFS and registry e.g. CreateFileTransacted and RegOpenKeyTransacted, so it should be possible...
- anton_gogolev 10y agoTransactional NTFS is deprecated [0], and having a transactional Registry buys you very little. [0]: https://msdn.microsoft.com/en-us/library/windows/desktop/hh802690(v=vs.85).aspx https://msdn.microsoft.com/en-us/library/windows/desktop/hh8...
- tobias3 10y agoI know that. But that wouldn't stop Microsoft from using it.
- pilif 10y agoAnd yet, MSI is the official package manager format. Saying that you prefer shipping your product with a InnoSetup or NSIS installer is akin to saying that you prefer self extracting shell scripts to .deb or .rpm packages under Linux. Aside of the (slightly) transactional support, MSIs also allow for easy centralised deployment and because correctly authored MSIs are declarative only, an admin can potentially audit the installation process before running it. Finally, when you kill dpkg or rpm at the right time, you will have an equally non-working install under your Linux distro as you will have a non-working install of your MSI file when you kill msiexec at the right time. Don't get me wrong. I agree with you that MSI is suffering from overengineering and I agree that the UI is really messy, especially with regards to updates, but instead of trying to find different, less standardized installers, we should invest in better tooling (compared to WiX) and maybe tell Microsoft what we need changed.