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

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

Ответы

Ответ 1

После некоторого поиска я нашел это решение, в котором используется пользовательское действие WixUtilExtension Quiet Execution 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"/>
    ...

Ответ 2

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