[英]Kill windows service forcefully in WIX
我有Windows服務,它將作為wix安裝的一部分進行安裝。 問題是,當前服務正在生產中,並且由於服務OnStop方法中的一些編寫較差的代碼而無法響應停止。
因此,下次用戶嘗試安裝升級版本時,安裝將失敗,因為wix嘗試停止服務時服務將永遠不會停止。
有什么方法可以讓我知道wix是否需要花費太多時間進行卸載,並且如果收到該通知,可以終止該進程?
另外,有什么方法可以根據產品版本取消進程嗎?
謝謝
我不應該回答這個問題,因為我處理這樣的東西已經有很長時間了,但是到底,讓我們嘗試一下。
我想強調的是,我實際上尚未測試這些工具來終止服務,而且我現在沒有時間這樣做。 排序可能會出現問題,即在計划運行WiX的CloseApplication
自定義操作之前,可以計划StopServices
。 編譯后,請使用Orca ( InstallExecuteSequence
檢查InstallExecuteSequence
以查看是否為這種情況。
經過一段時間的挖掘,我找到了解決方案。
我正在創建新的C#自定義操作項目,並且在InstallInitialize之前對操作進行排序。
在我的C#自定義操作方法中,我正在使用FileVersionInfo.GetVersionInfo(filePath);讀取現有的已安裝文件版本。
然后我正在檢查想要檢查的所需版本,如果條件匹配,我正在使用以下方法終止服務進程
foreach (Process proc in Process.GetProcessesByName("ProcessName"))
{
proc.Kill();
session.Log("Service Killed");
}
為了實現這一點,必須預先安裝Wix工具集v3.11.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.