【发布时间】:2016-04-26 12:19:16
【问题描述】:
每当我们安装软件时,Windows 操作系统都会在 C:\Windows\Installer\ 位置保留安装程序 *.msi 的备份副本。
所以我正在遍历“C:\Windows\Installer\”中存在的所有 msi 文件
我想准备一个映射列表,其中列表将包含 *.msi 文件及其默认位置。
假设 C:\Windows\Installer[一些产品密钥]\123xR23.msi 考虑“123xR23.msi”是 WinZip 安装的备份文件。并且安装程序已将 WinZip 安装在位置“C:\Program Files(x86)\WinZip”
所以列表将有以下条目 "123xR23.msi","C:\Program Files(x86)\WinZip"
请帮帮我。
谢谢
【问题讨论】:
-
您可以找到备份 .msi 但找不到已安装或未安装的文件...例如备份 msi 文件名 ABC.msi 但安装程序将其安装为 XYZ.msi 因为用户也更改了路径安装目录以及exe名称...所以不可能找到完美的位置
-
嗨,Pranav 对,我们无法知道用户在安装时给出的确切路径。所以我只是想知道如果用户没有更改默认值的预测。
-
如果你想预测然后使用安装程序名称并在程序文件文件夹中找到并尝试匹配
-
感谢您的回复。位置“C:\Windows\Installer”具有随机名称的 msi。即使在使用实用程序 Orca.exe 阅读 *.msi 之后,它也是模棱两可的。拿 3 到 5 个 *.msi 试试看。在某些情况下,您会使用查询“SELECT Target FROM CustomAction WHERE Action = 'DIRCA_TARGETDIR'”从 msi 数据库的“CustomActions”表中找到路径。