簡體   English   中英

卸載時關閉Application-WIX

[英]CloseApplication while uninstalling - wix

我正在使用Wix 3.6。 我有一個問題,在卸載時是否打開了任何窗口並顯示在任務欄中(此窗口是我試圖卸載的msi的一部分),它顯示了一個對話框,要求用戶關閉應用程序(“在繼續安裝之前,應關閉以下應用程序”)。

我嘗試了以下方法,但是沒有運氣。

<InstallExecuteSequence>
       <Custom Action="WixCloseApplications"
                Before="InstallInitialize">Installed</Custom>
       <Custom Action="StartMonitor"
                After="StartServices">NOT Installed</Custom>
    </InstallExecuteSequence>

   <util:CloseApplication Id="CloseMonitor" Target="Monitor.exe"
                           CloseMessage="yes" RebootPrompt="no">
        Installed
    </util:CloseApplication>

我希望wix檢測到應用程序並在卸載過程中將其關閉。 無需顯示對話框提示。 誰能幫我實現它。

它可以通過帶有/ qn開關的命令提示符進行安裝,但沒有/ qn開關,則可以正常工作,我會看到對話框(“在繼續安裝之前,應關閉以下應用程序”)。 有人可以幫我解決此問題。

添加一個C#自定義事件,並在InstallUISequence上添加使其成為第一個事件,並使用以下代碼殺死該進程:

try
{
      Process proc = Process.GetProcessesByName("MyApplication");
      proc.Kill();
}
catch (Exception ex)
{
      MessageBox.Show(ex.Message.ToString()); 
}

如果您的應用程序支持多個實例,則計算為否。 實例數:

 int count = 0;
 Process[] process = Process.GetProcessesByName("MyApplication");
 foreach (Process pr in process)
 {
   if (pr.MainModule.FileName.Equals(Assembly.GetExecutingAssembly().Location,                StringComparison.OrdinalIgnoreCase))
     {
       count++;

     }
 }

如果您根本不使用DllEntry點擊此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM