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


Eu preciso descompactar (não executar, descompactar) um msi em um makefile cygwin.

Se eu invocar a partir do prompt de comando do windows o seguinte

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

O pacote está implementado corretamente em C: \ foo. No entanto, se eu tentar executar exatamente a mesma operação a partir do prompt do cygwin

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

Tudo que eu obtenho é a janela msiexec informando o uso. Eu posso resolver esse problema de duas maneiras: executando msiexec como acima, ou iniciando um comando windows a partir do makefile, e invoco essa operação.

Alguma ideia?


4


origem


Você não precisa extrair o msi de dentro do cygwin para extrair o msi .... - Ramhound
@Ramhound: eu faço. O makefile tem que descompactar o msi de alguma forma. - Stefano Borini
Faz TARGETDIR=/cygdrive/c/foo dar melhores resultados? - Der Hochstapler
@OliverSalzburg: não - Stefano Borini


Respostas:


Encontrei. Preciso invocar

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

em cygwin. Eu não tenho ideia do porquê, mas funciona.


2





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á obter qualquer texto, fonte ou exe.


0



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