Como posso executar o msiexec do cygwin para descompactar um msi?


5

Preciso descompactar (não executar, descompactar) um msi em um makefile do cygwin.

Se eu chamar no prompt de comando do Windows, o seguinte

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

O pacote foi implantado corretamente em C: \ foo. No entanto, se eu tentar executar exatamente a mesma operação no prompt do cygwin

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

Tudo o que recebo é a janela msiexec informando o uso. Eu posso resolver esse problema de duas maneiras, executando o msiexec com êxito, conforme descrito acima, ou iniciando um comando do windows no makefile, e solicitando que invoque essa operação.

Alguma ideia?


Você não precisa para extrair o msi de dentro cygwin para extrair o msi ....
Ramhound

@ Ramhound: Eu faço. O makefile precisa descompactar o msi de alguma forma.
Stefano Borini

TARGETDIR=/cygdrive/c/foomelhores resultados?
Der Hochstapler

@OliverSalzburg: não
Stefano Borini

Respostas:


2

Encontrei. Eu preciso invocar

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

em cygwin. Não faço ideia do porquê, mas funciona.


0

Um msi pode ser descompactado com a maioria dos utilitários zip, como o 7-Zip. Ele conterá muitas coisas (como chaves de registro etc.) que são irrelevantes em um ambiente Linux, mas você poderá acessar qualquer texto, fonte ou exe.


Não pelo cygwin descompactar, e não vou pedir aos desenvolvedores para instalar um utilitário adicional e instalá-lo em todas as máquinas de teste.
Stefano Borini

0

Eu entrei no mesmo problema e, logo depois de ver isso, descobri por mim mesmo que as barras das duas opções (ou opções em termos de janelas) " /a" e " /qn" deveriam ser barras duplas " //" :

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

Isso deve funcionar, pelo menos na minha máquina.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.