Witam. To ostatni błąd z jakim spotkałem się w moim aktualizatorze:
Nie jestem w stanie usunąć plików usługi po jej zatrzymaniu i usunięciu:
// 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));
RunService.Close();
}
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;
}
}
Podczas usuwania folderu gdzie są pliki z usługą:
// 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;
}
otrzymuję wyjątek o odmowie dostępu do pliku. Czy moje usuwanie usługi działa nieprawidłowo? jeżeli chodzi o menadżer zadań w zakładce usługi usługa znika, więc chyba jest odinstalowana?
Z logów otrzymuję coś takiego:
(pierwsza aktualizacja, kiedy pierwszy raz kopiuje pliki jest ok, druga rzuca wyjątek przy próbie usunięcia starych plików)
18:14:46 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.3 do 1.0.5
18:14:48 - UpdateProcedure zakończyło aktualizację do wersji 1.0.5
18:17:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:17:52 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:18:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:18:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:19:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:19:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:20:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:20:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:21:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:21:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:22:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:22:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:23:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:23:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:24:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:24:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:25:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:25:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:26:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:26:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:27:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:27:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:28:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:28:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)
18:29:45 - UpdateProcedure rozpoczyna aktualizację z wersji 1.0.5 do 1.0.6
18:29:46 - UpdateProcedure nie udało się usunąć starych plikówPrinterInformationRunSvc (Odmowa dostępu do ścieżki „PrinterInformationRunSvc.exe”.)