Вызов командной строки после установки в Wix - PullRequest
4 голосов
/ 30 сентября 2011

Я использую wix и хочу вызвать командную строку после установки.

Как я могу это сделать?

Моя командная строка находится здесь "bcdedit.exe / set {current} nx AlwaysOff" // это делает dep off

Да, я читал о пользовательских действиях, но я не видел ни одного примера с командной строкой.

P.S. bcdedit - это обычный exe в Win 7 и выше.

P.S. в настоящее время у меня есть следующий скрипт, и он не работает:

          Directory  ="INSTALLLOCATION"
          ExeCommand ='echo hello> echo_test.txt'
          Execute    ="immediate"
          Return     ="asyncNoWait"
                />

Ответы [ 3 ]

9 голосов
/ 30 сентября 2011

echo не является исполняемым файлом, это команда командного процессора cmd.exe. Измените значение ExeCommand на cmd.exe /c "echo hello >echo_test.txt".

Ваш echo_test.txt будет находиться в произвольном каталоге, вы должны использовать абсолютные пути для получения предсказуемых результатов.

7 голосов
/ 30 сентября 2011

Хорошо, этот пример работает ...

<CustomAction Id         ="echo_test"                     
              Directory  ="INSTALLLOCATION"
              ExeCommand ='NOTEPAD.EXE echo_test.txt'
              Execute    ="immediate"
              Return     ="asyncNoWait"
                    />

Мой тестовый пример с эхо по какой-то причине не сработал. И bcdedit не существует в WinXP, где я сейчас тестирую ...

2 голосов
/ 30 сентября 2011

Привет, в сети много примеров ...

попробуйте эти ссылки

http://wix.sourceforge.net/manual-wix2/qtexec.htm

Выполнить командную строку в скрипте WiX?

WiX - CustomAction ExeCommand - Скрыть консоль

Или попробуйте этот пример:

 <CustomAction Id="SetQtExecCmd" Property="SetQtExec"
       Value="&quot;[PutPathOfThisFileHere]bcdedit.exe&quot; /set {current} nx AlwaysOff" />
<CustomAction Id="SetQtExec" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="check" />
...