예제 #1
0
        private void DeleteRegistryKey(string subkey, bool deleteEmptyOnly)
        {
            try
            {
                Log.WriteStart("Deleting registry key");
                if (RegistryUtils.RegistryKeyExist(subkey))
                {
                    if (deleteEmptyOnly && RegistryUtils.GetSubKeyCount(subkey) != 0)
                    {
                        Log.WriteEnd(string.Format("Registry key \"{0}\" is not empty", subkey));
                        return;
                    }
                    Log.WriteInfo(string.Format("Deleting registry key \"{0}\"", subkey));
                    RegistryUtils.DeleteRegistryKey(subkey);
                    Log.WriteEnd("Deleted registry key");
                    InstallLog.AppendLine(string.Format("- Deleted registry key \"{0}\"", subkey));
                }
                else
                {
                    Log.WriteEnd(string.Format("Registry key \"{0}\" not found", subkey));
                }
            }
            catch (Exception ex)
            {
                if (Utils.IsThreadAbortException(ex))
                {
                    return;
                }

                Log.WriteError("Registry key delete error", ex);
                InstallLog.AppendLine(string.Format("- Failed to delete registry key \"{0}\"", subkey));
                throw;
            }
        }
예제 #2
0
 private static void DeleteRegistryKey(string subkey)
 {
     try
     {
         Log.WriteStart("Deleting registry key");
         Log.WriteInfo(string.Format("Deleting registry key \"{0}\"", subkey));
         RegistryUtils.DeleteRegistryKey(subkey);
         Log.WriteEnd("Deleted registry key");
     }
     catch (Exception ex)
     {
         if (Utils.IsThreadAbortException(ex))
         {
             return;
         }
         Log.WriteError("Registry key delete error", ex);
         throw;
     }
 }