Закрыть приложение при удалении - 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 я получаю диалоговое окно ("Следующее приложение должно быть закрыто перед продолжением установки"). Может кто-нибудь, пожалуйста, помогите мне, как это исправить.

1 ответ

Добавить 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 затем перейдите по этой ссылке

Другие вопросы по тегам