Extracting msi files using Linux

Related: How to extract files from MSI package?

To extract the contents of a MSI installer using Linux, I can either use msiexec with wine or use 7zip.

However, the latter does not preserve directories and file names only in part. Is there any way to properly extract MSI files without having to use wine?


edit: to illustrate the issue with Microsoft's Infer.NET, here is a list of files that 7zip produces and here one that msiexec produces (where the latter is what I want)


While it won't help you immediately, lessmsi is working on a native Linux version. It preserves directory structure like you want, so it's worth checking up on if this is going to be a long-term issue for you. Unfortunately, .msi support on Linux seems pretty sparse, so lessmsi or msiexec through wine might be your only immediate option, even if (as you said) wine is a pretty heavy dependency for extracting archives.


Give msiextract a try, https://live.gnome.org/msitools

And open bugs!


You can try software called cabextract - atleast Ubuntu has packages for it, I would expect it to be found from other popular distros as well.