В вашем проекте установщика (я предполагаю, что вы сгенерировали установщик MSI с использованием проекта установщика в Visual Studio), вы должны включить класс, который наследуется от базового класса установщика:
[RunInstaller(true)]
public class MyInstaller: Installer
{
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
}
public override void Uninstall(IDictionary savedState)
{
base.Uninstall(savedState);
//TODO: Code to kill the live instance(s)
}
// Other override methods here if necessary
}
Метод удаления этого класса будет выполнен, когда пользователь удалит ваше приложение.
В этом методе вы можете выбрать список запущенных процессов и уничтожить все живые экземпляры вашего приложения.