Як я можу запустити msiexec з cygwin, щоб розпакувати msi?


5

Мені потрібно розпакувати (не виконати, розпакувати) msi в Cygwin makefile.

Якщо я викликаю команду Windows, підкажіть наступне

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

Пакет правильно розгорнуто в C: \ foo. Однак якщо я спробую виконати таку саму операцію із запиту cygwin

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

Все, що я отримую, - це вікно msiexec із зазначенням використання. Я можу вирішити цю проблему двома способами, або запустивши успішно msiexec, як зазначено вище, або запустивши команду Windows з makefile, і дозволити їй викликати цю операцію.

Будь-які ідеї?


Вам не потрібно витягувати msi з cygwin, щоб витягти msi ....
Ramhound

@Ramhound: Я. Makefile має якось розпакувати msi.
Стефано Борині

Чи TARGETDIR=/cygdrive/c/fooдає кращі результати?
Der Hochstapler

@OliverSalzburg: nope
Стефано Борині

Відповіді:


2

Знайшов це. Мені потрібно звернутися

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

в цигуні. Я поняття не маю чому, але це працює.


0

MSI можна розпакувати з більшості утилітів zip, як-от 7-Zip. Він буде містити багато речей (наприклад, ключі реєстру тощо), які не мають значення в середовищі Linux, але ви зможете отримати будь-який текст, джерело чи EXE.


Не cygwin unzip, і я не збираюся просити розробників встановити додаткову утиліту та встановити її на всіх тестових машинах.
Стефано Борині

0

Я зіткнувся з тією ж проблемою, і відразу після того, як я це побачив, я сам зрозумів, що косої частини двох варіантів (або перемикачів у відношенні windows) " /a" і " /qn" повинні бути подвійними косою рискою " //". :

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

Це повинно працювати, принаймні на моїй машині це робить.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.