相当于Windows MSI的rpm -ql package_name?

MSI有这样的function吗? 也许msiexec

rpm -ql提供了给定包安装的所有文件的列表。 我想从Windows系统获得相同的信息。

msiexec可以在pipe理员模式下执行此操作。

msiexec / a something.msi TARGETDIR =“c:\ windows \ temp”/ qb

不过,您可能还需要其他一些开关。

lessmsi

这是一个带GUI和CLI的实用程序,可用于查看和提取MSI文件的内容。

我只是试了一下,效果很好。

Windows SDK包含一个名为Orca的graphics工具,用于查看和编辑.msi数据库。 至less在SDK安装程序中selectWindows Native Code Development => Tools ,然后从%ProgramFiles%\Microsoft SDKs\Windows\vX.Y\Bin\Orca.msi安装Orca 。 在Orca查看数据库时, File表包含将要安装的每个文件的一行。

Windows安装程序XML(WiX)包含一个名为Dark的工具,它可以将.msi数据库反编译为XML文件:

 dark.exe Installer.msi 

这将在当前目录中创build一个Installer.wxs文件。 <File />元素对应于File表中的行。

不,Windows安装程序不能这样做。 没有选项可以告诉你从某个软件包安装哪些文件。

正如John所build议的那样 ,你可以看看这个软件包包含的所有文件。 pipe理员图像的文件夹结构与使用默认选项安装的相似。


如果你真的想得到一个包安装的所有文件的列表,我认为你可以这样做:

  1. 枚举包中的所有组件,
  2. 检查系统是否安装了组件,
  3. 枚举组件中的文件。

我从来没有听说过可以做到这一点的工具。