Я использую событие PrepareToInstall для остановки и удаления службы. Это прекрасно работает, ошибок не возникает.PrepareToInstall timing
Однако, похоже, проблема связана с временными проблемами, потому что ИСТОРИЯ InnoSetup говорит мне, что «oscmaintenanceservice» все еще работает и спрашивает, должно ли оно закрыть его.
Я думал, что если API вернется из функции, чтобы закрыть и удалить службу, приложение уже должно исчезнуть.
Кто-нибудь видит ошибку на моей стороне или имеет какие-либо предложения для меня?
Спасибо!
function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
//MsgBox('ssInstall.', mbInformation, MB_OK);
if IsServiceInstalled('oscmaintenanceservice') then
BEGIN
//MsgBox('ssInstall: Service is installed.', mbInformation, MB_OK);
if IsServiceRunning('oscmaintenanceservice') then
BEGIN
//MsgBox('ssInstall: Service is running.', mbInformation, MB_OK);
if not StopService('oscmaintenanceservice') then
BEGIN
MsgBox('ssInstall: Couldnt stop service.', mbInformation, MB_OK);
END
else
BEGIN
//MsgBox('ssInstall: Service was stopped.', mbInformation, MB_OK);
END;
END
else
BEGIN
MsgBox('ssInstall: Service not running.', mbInformation, MB_OK);
END;
if not RemoveService('oscmaintenanceservice') then
BEGIN
MsgBox('ssInstall: Couldnt remove service.', mbInformation, MB_OK);
END
else
BEGIN
//MsgBox('ssInstall: Service was removed', mbInformation, MB_OK);
END;
END
else
BEGIN
MsgBox('ssInstall: Service not installed.', mbInformation, MB_OK);
END;
END;
Вы не имеете никакого отношения к 'PrepareToInstall'. Речь идет о реализации функций, которые вы вызываете. И мы не знаем, что они делают. –
Кроме того, что это значит * «InnoSetup говорит мне, что« oscmaintenanceservice »все еще работает» *? –
Файл журнала установщика может также помочь (используйте командную строку '/ log'). –