如何从cygwin运行msiexec来解压缩msi?


5

我需要在cygwin makefile中解压缩(不执行,解压缩)msi。

如果我从windows命令提示符调用以下内容

msiexec /a package.msi /qn TARGETDIR=C:\foo

包正确部署在C:\ foo中。但是,如果我尝试从cygwin提示符执行完全相同的操作

msiexec /a package.msi /qn TARGETDIR=C:\\foobaz

我得到的只是msiexec窗口说明用法。我可以通过两种方式解决这个问题,如上面成功运行msiexec,或者从makefile启动一个windows命令,并让它调用该操作。

有任何想法吗?


你不需要从cygwin中提取msi来提取msi ....
Ramhound 2014年

@Ramhound:我知道。makefile必须以某种方式解压缩msi。
Stefano Borini 2014年

TARGETDIR=/cygdrive/c/foo给出更好的结果吗?
Der Hochstapler 2014年

@OliverSalzburg:nope
Stefano

Answers:


2

找到了。我需要调用

run msiexec /a package.msi /qn TARGETDIR=C:\\foobaz

在cygwin。我不知道为什么,但它确实有效。


0

msi可以使用大多数zip实用程序解压缩,例如7-Zip。它将包含许多在Linux环境中无关的东西(如注册表键等),但您将能够获得任何文本,源代码或exe文件。


不是通过cygwin解压缩,我不会要求开发人员安装额外的实用程序并将其安装在所有测试机器上。
Stefano Borini 2014年

0

我遇到了同样的问题,就在我看到这个问题之后,我自己想通了这两个选项(或窗口中的开关)“ /a”和“ /qn”的斜线应该是双斜线“ //” :

msiexec //a package.msi //qn TARGETDIR=C:\\foobaz

这应该工作,至少在我的机器上它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.