Как убить процесс из WiX

Я разрабатываю установщик с использованием Wix, и мне нужно во время установки завершить процесс (а не приложение) без вывода сообщений, чтобы у пользователя не появилось всплывающее окно с просьбой завершить процесс или подождать и перезапустить. Я видел решения для убийства приложения, но не процесс.

2 ответа

Решение

После недолгих поисков я нашел решение, которое использует настраиваемое действие тихого выполнения WixUtilExtension http://wix.sourceforge.net/manual-wix3/qtexec.htm:

<InstallExecuteSequence>
  <Custom Action='MyProcess.TaskKill' Before='InstallValidate'/>
</InstallExecuteSequence>

<Property Id="QtExecCmdLine" 
          Value='"[WindowsFolder]\System32\taskkill.exe" /F /IM MyProcess.exe'/>
<CustomAction Id="MyProcess.TaskKill" 
              BinaryKey="WixCA" 
              DllEntry="CAQuietExec" 
              Execute="immediate" 
              Return="ignore"/>

<Directory Id="TARGETDIR" Name="SourceDir">
  <Directory Id="WindowsFolder" Name="WINDOWS"/>
    ...

Я использовал CloseApplication Элемент, чтобы сделать это, если я понимаю ваши потребности. Уничтоженные мной процессы не отображаются как приложения в диспетчере задач. Однако зависит от того, о каком классе процессов вы говорите.

Другие вопросы по тегам