У меня есть установка, сделанная с installshield 2012, framework 3.5, и я создаю новую настройку. Моя проблема в том, что мой UpgradeCode нужно было изменить. Поэтому мне нужно обновить mi .exe с другим кодом UpgradeCode. Моя проблема - загар, когда у меня запущен старый .exe versión, установка не выполняется хорошо, а .exe не удалось выполнить. Что мне нужно сделать, это ПОДТВЕРДИТЬ, что старый versión не работает до установки новой версии. Я попытался включить в моем классе Installerinstallshield остановить старый процесс перед установкой новой версии
public override void Install(IDictionary stateSaver)
{
Process[] processes = Process.GetProcessesByName(processID);
foreach (Process process in processes)
{
process.Kill();
process.WaitForExit();
process.Close();
}
}
Но это не работает. Любые идеи? Thanks
Есть ли протокол для закрытия вашего процесса изящно (например, закрытие главного окна или команда named pipe)? process.Kill является жестоким, что он не очищает ресурсы ядра. Вам, вероятно, потребуется специальное действие, чтобы включить код закрытия, если ваш процесс не является службой Windows. –