9

I am using Wix 3.6. I have an issue, while uninstalling if any window is open and shown in task bar (this window is a part of my msi, which I am trying to uninstall), it is showing a dialog box asking the user to close the application (“The following application should be closed before continuing the install”).

I tried the following, but no luck.

<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>

I want the wix to detect the applications and close them as part of uninstallation process. No need of showing the dialog box prompt. Can anyone please help me to implement it.

It works fine with it is installed from command prompt with /qn switch but without /qn switch I get the dialog (“The following application should be closed before continuing the install”). Can someone please help me on how to fix this.

sanam_bl
  • 299
  • 1
  • 7
  • 14

1 Answers1

1

Add a C# custom event and add make it first event on InstallUISequence and use following code for kill the process:

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

and if ur application support multiple instances then count the no. of instances first:

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

     }
 }

And if you are not at all using and DllEntry then follow this link

USER_NAME
  • 1,029
  • 1
  • 14
  • 33
  • I was asked not to use C#, so did not try your suggestion. – sanam_bl Oct 02 '12 at 11:22
  • see wix has very less inbuilt action or function so you have to use external code. it may be c# or any other language. – USER_NAME Oct 03 '12 at 04:58
  • I changed InstallInitialize to InstallValidate and it worked fine Installed – sanam_bl Oct 05 '12 at 06:35
  • 1
    @sanam_bl In that case, give an answer to your own question and accept it. So that in future if u or someone else refer this question may know the solution – USER_NAME Oct 05 '12 at 06:49