bool SelfUpdate() { label1.Text = "Updating updater =)"; string oldUpdater = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, AppDomain.CurrentDomain.FriendlyName); ZipStorer.ZipFileEntry updater; try { updater = (from entry in updatePackageCatalog where entry.FilenameInZip == AppDomain.CurrentDomain.FriendlyName select entry).Single(); } catch (InvalidOperationException exc) { return(false); } if (ZipStorer.CalculateCrc32(oldUpdater) != updater.Crc32) { File.Move(oldUpdater, String.Format("{0}.tmp", oldUpdater)); return(updatePackage.ExtractFile(updater, oldUpdater));; } return(false); }