2012-07-11 47 views
15

私はWixを使用してインストーラを開発しています。インストール中にプロセス(アプリケーションではない)をサイレントモードで強制終了する必要があります。私はアプリケーションを殺すための解決策を見てきましたが、プロセスはありませんでした。私はあなたのニーズを理解している場合、これを行うにはCloseApplication要素を使用しているWiXからプロセスを強制終了する方法

<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"/> 
    ... 

答えて

29

は私がWixUtilExtension静か実行カスタムアクションhttp://wix.sourceforge.net/manual-wix3/qtexec.htmを使用して、この解決策を見つけました。私が殺したプロセスは、タスクマネージャでアプリケーションとして表示されません。あなたが話しているプロセスクラスによって異なります。

+0

これは完璧に動作します – zulucoda

+0

OMG私は十分にありがとう! –

+0

これは、管理者権限で実行されているプロビジョニングに対して有効になる可能性はありますか?現時点では、qtexecがプロセスを強制終了するのに十分な権限を持っていないため、管理者アカウントで実行しているプロセスが実行されている場合、これはうまく動作しません。 – RandomDude

2

:周り掘り、いくつかの後

関連する問題