Мой первый сервис - это обновитель второго сервиса. Во время работы мой первый сервис отключает и удаляет второй сервис, удаляет файлы второго сервиса, вставляет новые файлы на их место и переустанавливает сервис. Когда я пытаюсь удалить файлы, я получаю исключение, что мой второй сервис все еще используется в первом сервисе. Что вы думаете об этой ошибке? Здесь код для отключения сервиса и обновления файлов.
Добавлю, что служба удаляется успешно, я не вижу ее в диспетчере задач
// Zatrzymywanie i usuwanie usługi
ServiceController RunService = ServiceController.GetServices().FirstOrDefault(x => x.ServiceName == AppIdentification.RunServiceName);
if(RunService != null)
{
try
{
if(RunService.Status != ServiceControllerStatus.Stopped)
{
RunService.Stop();
RunService.WaitForStatus(ServiceControllerStatus.Stopped, new TimeSpan(0, 0, 30));
}
ManagedInstallerClass.InstallHelper(new string[] { "/u", System.AppDomain.CurrentDomain.BaseDirectory + AppIdentification.RunServiceFolder + AppIdentification.RunServiceName + ".exe" });
}
catch(Exception e)
{
Help.AddLog(">>> UpdateProcedure nie udało się zatrzymać usługi " + AppIdentification.RunServiceName, e.Message);
return false;
}
}
// Usuwanie plików z folderu RunService
bool DeleteRunServiceFileSuccess = false;
try
{
if (Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + AppIdentification.RunServiceFolder))
Directory.Delete(AppDomain.CurrentDomain.BaseDirectory + AppIdentification.RunServiceFolder, true);
Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + AppIdentification.RunServiceFolder);
DeleteRunServiceFileSuccess = true;
}
catch (Exception e)
{
Help.AddLog("UpdateProcedure nie udało się usunąć starych plików", e.Message);
}
if (!DeleteRunServiceFileSuccess)
{
GSDb.DbOperation.Export(DbConfig, "UPDATE `AppIdentification` SET `IsUpdatingNow`=0 WHERE `ID`=" + flags.AppData.AppIdentificationID);
return false;
}