我想要的只是一个命令行工具,它可以将文件从合并模块 (.msm) 提取到磁盘上。换句话说,我想要 MSI 可能的相同“管理安装”功能:
msiexec /a myProduct.msi TARGETDIR="C:\myInstallation" /qn
以上仅适用于msi(据我所知)。因此,为了获得与合并模块相同的效果,我正在尝试 msidb.exe 和 orca.exe orca 的文档说明:
可以从命令行指定许多合并模块选项...
从合并模块中提取文件
Orca 支持三种不同的方法来提取包含在合并模块中的文件。Orca 可以提取单个 CAB 文件,将文件提取到模块树中,并在将文件合并到目标数据库后将文件提取到源图像中......
提取文件
要从合并模块中提取单个文件,请使用
... -x ... 命令行上的选项,其中是新目录树的所需路径。
指定路径用作提取文件的根路径。所有文件都从模块中嵌入的 CAB 文件中提取,并放置在指定的路径中。提取文件的目录布局基于合并模块的目录树。
这听起来像我需要的。但是当我尝试它时,orca 只是打开了一个编辑器(带有我指定的 msm 的信息),然后什么也不做。我尝试了各种命令行,通常是这样开始的:
orca -x theDirectory theModule.msm
我使用“theDirectory”作为我想要的任何空文件夹。就像我说的 - 它没有做任何事情。
然后我尝试了 msidb,我做了几次尝试,如下所示:
msidb -d theModule.msm -w {存储}
msidb -d theModule.msm -x MergeModule.CABinet
在第一种情况下,我不知道要为 {storage} 放什么。在第二种情况下,事实证明文字字符串“MergeModule.CABinet”是必需的(它是保留名称)。但是,提取的文件柜不保留文件层次结构或“正常”文件名;所以我不能将它用于我的目的。
有人可以解释我在命令行选项上做错了什么吗?有没有其他工具可以做到这一点?