使用 Linux 提取 msi 文件

Mic*_*ert 30 linux wine windows-installer 7-zip

相关:如何从 MSI 包中提取文件?

要使用 Linux 提取 MSI 安装程序的内容,我可以使用msiexecwine 或使用7zip.

但是,后者不会仅部分保留目录和文件名。有没有办法正确提取MSI文件而不必使用wine


编辑:来说明微软的Infer.NET的问题,这里是文件7zip的产生的列表,并在这里一个MSIEXEC生产(后者是我想要的)

use*_*834 24

试试 msiextract,https: //live.gnome.org/msitools

并打开错误!

  • 它在 debian 和 ubuntu willy 中:https://launchpad.net/ubuntu/+source/msitools。然后您可以简单地调用“msiextract file.msi”,就是这样,不需要更多技能。 (2认同)

Chi*_*Imp 9

虽然它不会立即帮助您,但lessmsi正在开发本机Linux 版本。它会按照您的需要保留目录结构,因此值得检查这是否会成为您的长期问题。不幸的是,Linux 上的 .msi 支持似乎很少,所以通过 wine 的 lessmsi 或 msiexec 可能是你唯一的直接选择,即使(如你所说)wine 是提取档案的一个非常重的依赖。

  • 仅供参考:在lessmsi 的最新版本中,我设法将cab 提取代码移到libmspack,这是一个也应该在linux 上运行的便携式库。所以我们最近确实朝着支持 linux 迈出了具体的一步。很快我希望使用一个可移植的 msi lib,这将使一切都变得可移植。 (4认同)
  • -1. 多年后Linux版本仍然不存在,并且由于问题是有没有办法在不必使用wine的情况下正确提取MSI文件,这不是答案。我使用了 msitools 包中的 msiextract(Ubuntu 中的“sudo apt install msitools”),如 user2834 的答案所推荐。 (2认同)