Прочитать на английском

Поделиться через


InstallException Класс

Определение

Исключение, которое вызывается во время установки при возникновении ошибки в фазе фиксации, отката или отмены установки.

[System.Serializable]
public class InstallException : SystemException
Наследование
InstallException
Атрибуты

Примеры

Следующий пример, а также примеры в InstallException конструкторах, вместе составляют пример, показывающий сборку с собственным установщиком. Установщик называется MyInstaller, который имеет атрибут RunInstallerAttribute, указывающий, что этот установщик будет вызываться Installutil.exe (средство установщика). Installutil.exe (установщик) вызывает методы Commit, RollbackInstall и Uninstall. Код в Commit предполагает, что файл с именем FileDoesNotExist.txt существует до того, как можно будет зафиксировать установку сборки. Если файл FileDoesNotExist.txt не существует, Commit вызывает исключение InstallException. То же самое относится к ситуации Uninstall , когда удаление будет происходить только в том случае, если существует файл с именем FileDoesNotExist.txt . В противном случае возникает исключение InstallException. В Rollbackвыполняется фрагмент кода, который может вызвать исключение. Если возникает исключение, оно перехватывается и вызывается с передачей InstallException этого исключения.

Примечание

Запустите этот пример с помощью Installutil.exe. Введите в командной строке следующую команду:

Installutil InstallException.exe

-или-

Installutil /u InstallException.exe

using System;
using System.ComponentModel;
using System.Collections;
using System.Configuration.Install;
using System.IO;

[RunInstaller(true)]
public class MyInstaller : Installer
{
   public override void Install(IDictionary savedState)
   {
      base.Install(savedState);
      Console.WriteLine("Install ...");

      // Commit is called when install goes through successfully.
      // Rollback is called if there is any error during Install.

      // Uncommenting the code below will lead to 'RollBack' being called,
      // currently 'Commit' shall be called.

      // throw new IOException();
   }

   public override void Commit(IDictionary savedState)
   {
      base.Commit(savedState);
      Console.WriteLine("Commit ...");
      // Throw an error if a particular file doesn't exist.
      if(!File.Exists("FileDoesNotExist.txt"))
         throw new InstallException();
      // Perform the final installation if the file exists.
   }

   public override void Rollback(IDictionary savedState)
   {
      base.Rollback(savedState);
      Console.WriteLine("RollBack ...");
      try
      {
         // Performing some activity during rollback that raises an 'IOException'.
         throw new IOException();
      }
      catch(Exception e)
      {
         throw new InstallException("IOException raised", e);
      }
      // Perform the remaining rollback activites if no exception raised.
   }

   public override void Uninstall(IDictionary savedState)
   {
      base.Uninstall(savedState);
      Console.WriteLine("UnInstall ...");
      // Throw an error if a particular file doesn't exist.
      if(!File.Exists("FileDoesNotExist.txt"))
         throw new InstallException("The file 'FileDoesNotExist'" +
            " does not exist");
      // Perform the uninstall activites if the file exists.
   }
}

// An Assembly that has its own installer.
public class MyAssembly1
{
   public static void Main()
   {
      Console.WriteLine("This assembly is just an example for the Installer");
   }
}

Конструкторы

InstallException()

Инициализирует новый экземпляр класса InstallException.

InstallException(SerializationInfo, StreamingContext)

Инициализирует новый экземпляр класса InstallException с сериализованными данными.

InstallException(String)

Инициализирует новый экземпляр класса InstallException и задает сообщение, отображаемое для пользователя.

InstallException(String, Exception)

Инициализирует новый экземпляр класса InstallException и задает отображаемое сообщение и ссылку на внутреннее исключение, ставшее причиной данного исключения.

Свойства

Data

Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении.

(Унаследовано от Exception)
HelpLink

Получает или задает ссылку на файл справки, связанный с этим исключением.

(Унаследовано от Exception)
HResult

Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению.

(Унаследовано от Exception)
InnerException

Возвращает экземпляр класса Exception, который вызвал текущее исключение.

(Унаследовано от Exception)
Message

Возвращает сообщение, описывающее текущее исключение.

(Унаследовано от Exception)
Source

Возвращает или задает имя приложения или объекта, вызывавшего ошибку.

(Унаследовано от Exception)
StackTrace

Получает строковое представление непосредственных кадров в стеке вызова.

(Унаследовано от Exception)
TargetSite

Возвращает метод, создавший текущее исключение.

(Унаследовано от Exception)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetBaseException()

При переопределении в производном классе возвращает исключение Exception, которое является первопричиной одного или нескольких последующих исключений.

(Унаследовано от Exception)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)
Устаревшие..

При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении.

(Унаследовано от Exception)
GetType()

Возвращает тип среды выполнения текущего экземпляра.

(Унаследовано от Exception)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Создает и возвращает строковое представление текущего исключения.

(Унаследовано от Exception)

События

SerializeObjectState
Устаревшие..

Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

(Унаследовано от Exception)

Применяется к

Продукт Версии
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

См. также раздел