internal InstallResult UninstallCoreInternal(string installDir, IComponent component) { if (!FileSystemExtensions.ContainsPath(installDir, component.Destination)) { Logger.Warn("Different paths for component and method input"); return(InstallResult.Failure); } var restartPending = false; var file = component.GetFilePath(); var deleteResult = DeleteFile(file, out var restartRequired); restartPending |= restartRequired; if (!deleteResult && !restartRequired) { return(InstallResult.Failure); } if (restartPending) { return(InstallResult.SuccessRestartRequired); } component.CurrentState = CurrentState.Removed; return(InstallResult.Success); }