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


Installer Класс

Определение

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

public ref class Installer : System::ComponentModel::Component
public class Installer : System.ComponentModel.Component
type Installer = class
    inherit Component
Public Class Installer
Inherits Component
Наследование
Производный

Примеры

В следующем примере показано использование Installer класса . Он создает класс, который наследуется от Installer. Когда Commit завершается, Committing возникает событие и отображается сообщение. Чтобы использовать Installer класс , необходимо ссылаться на сборку System.Configuration.Install в проекте.

#using <System.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::Configuration::Install;

// Set 'RunInstaller' attribute to true.

[RunInstaller(true)]
ref class MyInstallerClass: public Installer
{
private:

   // Event handler for 'Committing' event.
   void MyInstaller_Committing( Object^ sender, InstallEventArgs^ e )
   {
      Console::WriteLine( "" );
      Console::WriteLine( "Committing Event occurred." );
      Console::WriteLine( "" );
   }


   // Event handler for 'Committed' event.
   void MyInstaller_Committed( Object^ sender, InstallEventArgs^ e )
   {
      Console::WriteLine( "" );
      Console::WriteLine( "Committed Event occurred." );
      Console::WriteLine( "" );
   }


public:
   MyInstallerClass()
   {
      
      // Attach the 'Committed' event.
      this->Committed += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committed );
      
      // Attach the 'Committing' event.
      this->Committing += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committing );
   }


   // Override the 'Install' method.
   virtual void Install( IDictionary^ savedState ) override
   {
      Installer::Install( savedState );
   }


   // Override the 'Commit' method.
   virtual void Commit( IDictionary^ savedState ) override
   {
      Installer::Commit( savedState );
   }


   // Override the 'Rollback' method.
   virtual void Rollback( IDictionary^ savedState ) override
   {
      Installer::Rollback( savedState );
   }

};

int main()
{
   Console::WriteLine( "Usage : installutil.exe Installer.exe " );
}
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;

// Set 'RunInstaller' attribute to true.
[RunInstaller(true)]
public class MyInstallerClass: Installer
{
   public MyInstallerClass() :base()
   {
      // Attach the 'Committed' event.
      this.Committed += new InstallEventHandler(MyInstaller_Committed);
      // Attach the 'Committing' event.
      this.Committing += new InstallEventHandler(MyInstaller_Committing);
   }
   // Event handler for 'Committing' event.
   private void MyInstaller_Committing(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committing Event occurred.");
      Console.WriteLine("");
   }
   // Event handler for 'Committed' event.
   private void MyInstaller_Committed(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committed Event occurred.");
      Console.WriteLine("");
   }
   // Override the 'Install' method.
   public override void Install(IDictionary savedState)
   {
      base.Install(savedState);
   }
   // Override the 'Commit' method.
   public override void Commit(IDictionary savedState)
   {
      base.Commit(savedState);
   }
   // Override the 'Rollback' method.
   public override void Rollback(IDictionary savedState)
   {
      base.Rollback(savedState);
   }
   public static void Main()
   {
      Console.WriteLine("Usage : installutil.exe Installer.exe ");
   }
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Configuration.Install

' Set 'RunInstaller' attribute to true.
<RunInstaller(True)> _
Public Class MyInstallerClass
   Inherits Installer

   Public Sub New()
       MyBase.New()
      ' Attach the 'Committed' event.
      AddHandler Me.Committed, AddressOf MyInstaller_Committed
      ' Attach the 'Committing' event.
      AddHandler Me.Committing, AddressOf MyInstaller_Committing
   End Sub

   ' Event handler for 'Committing' event.
   Private Sub MyInstaller_Committing(ByVal sender As Object, _
                                      ByVal e As InstallEventArgs)
      Console.WriteLine("")
      Console.WriteLine("Committing Event occurred.")
      Console.WriteLine("")
   End Sub

   ' Event handler for 'Committed' event.
   Private Sub MyInstaller_Committed(ByVal sender As Object, _
                                     ByVal e As InstallEventArgs)
      Console.WriteLine("")
      Console.WriteLine("Committed Event occurred.")
      Console.WriteLine("")
   End Sub

   ' Override the 'Install' method.
   Public Overrides Sub Install(ByVal savedState As IDictionary)
      MyBase.Install(savedState)
   End Sub

   ' Override the 'Commit' method.
   Public Overrides Sub Commit(ByVal savedState As IDictionary)
      MyBase.Commit(savedState)
   End Sub

   ' Override the 'Rollback' method.
   Public Overrides Sub Rollback(ByVal savedState As IDictionary)
      MyBase.Rollback(savedState)
   End Sub
   Public Shared Sub Main()
      Console.WriteLine("Usage : installutil.exe Installer.exe ")
   End Sub
End Class

Комментарии

Это базовый класс для всех пользовательских установщиков в .NET Framework. Установщики — это компоненты, помогающие устанавливать приложения на компьютере.

Существует несколько шагов, которые необходимо выполнить, чтобы использовать Installer.

  • Наследовать Installer класс .

  • Переопределите методы Install, Commit, Rollbackи Uninstall .

  • Добавьте в производный RunInstallerAttribute класс и присвойте ему значение true.

  • Поместите производный класс в сборку вместе с приложением для установки.

  • Вызов установщиков. Например, используйте InstallUtil.exe для вызова установщиков.

Свойство Installers содержит коллекцию установщиков. Если этот экземпляр Installer является частью коллекции установщика, свойству Parent присваивается Installer экземпляр, содержащий коллекцию. Пример использования коллекции см. в InstallersAssemblyInstaller классе .

Методы InstallInstaller , Commit, Rollbackи Uninstall класса проходят через коллекцию установщиков, хранящихся в свойстве Installers , и вызывают соответствующий метод каждого установщика.

Методы Install, Commit, Rollbackи Uninstall не всегда вызываются в одном Installer экземпляре. Например, один Installer экземпляр может использоваться при установке и фиксации приложения, а затем освобождается ссылка на этот экземпляр. Позже при удалении приложения создается ссылка на новый Installer экземпляр, то Uninstall есть метод вызывается другим экземпляром Installer. По этой причине в производном классе не сохраняйте состояние компьютера в установщике. Вместо этого используйте IDictionary объект , который сохраняется в вызовах и передается в Installметоды , Commit, Rollbackи Uninstall .

Две ситуации иллюстрируют необходимость сохранения сведений в средство IDictionaryсохранения состояния . Во-первых, предположим, что установщик задает раздел реестра. Исходное значение ключа должно сохраниться IDictionaryв . При откате установки исходное значение можно восстановить. Во-вторых, предположим, что установщик заменяет существующий файл. Сохраните существующий файл во временном каталоге и расположение нового файла в IDictionary. Если выполняется откат установки, новый файл удаляется и заменяется исходным из временного расположения.

Свойство Installer.Context содержит сведения об установке. Например, сведения о расположении файла журнала для установки, расположении файла для сохранения сведений, необходимых методу Uninstall , и командной строке, введенной при запуске исполняемого файла установки.

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

Installer()

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

Свойства

CanRaiseEvents

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

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

Возвращает объект IContainer, который содержит коллекцию Component.

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

Получает или задает сведения о текущей установке.

DesignMode

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

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

Возвращает список обработчиков событий, которые прикреплены к этому объекту Component.

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

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

Installers

Получает коллекцию установщиков, содержащуюся в данном установщике.

Parent

Получает или задает установщик, содержащий коллекцию, к которой принадлежит данный установщик.

Site

Получает или задает ISite объекта Component.

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

Методы

Commit(IDictionary)

Завершает транзакцию установки, если переопределен в наследующем классе.

CreateObjRef(Type)

Создает объект, который содержит всю необходимую информацию для создания прокси-сервера, используемого для взаимодействия с удаленным объектом.

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

Освобождает все ресурсы, занятые модулем Component.

(Унаследовано от Component)
Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Component, а при необходимости освобождает также управляемые ресурсы.

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

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

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

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

(Унаследовано от Object)
GetLifetimeService()
Устаревшие..

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

(Унаследовано от MarshalByRefObject)
GetService(Type)

Возвращает объект, представляющий службу, предоставляемую классом Component или классом Container.

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

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
InitializeLifetimeService()
Устаревшие..

Получает объект службы времени существования для управления политикой времени существования для этого экземпляра.

(Унаследовано от MarshalByRefObject)
Install(IDictionary)

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

MemberwiseClone()

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

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

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

(Унаследовано от MarshalByRefObject)
OnAfterInstall(IDictionary)

Вызывает событие AfterInstall.

OnAfterRollback(IDictionary)

Вызывает событие AfterRollback.

OnAfterUninstall(IDictionary)

Вызывает событие AfterUninstall.

OnBeforeInstall(IDictionary)

Вызывает событие BeforeInstall.

OnBeforeRollback(IDictionary)

Вызывает событие BeforeRollback.

OnBeforeUninstall(IDictionary)

Вызывает событие BeforeUninstall.

OnCommitted(IDictionary)

Вызывает событие Committed.

OnCommitting(IDictionary)

Вызывает событие Committing.

Rollback(IDictionary)

Восстанавливает состояние компьютера до установки, если переопределен в наследующем классе.

ToString()

Возвращает объект String, содержащий имя Component, если оно есть. Этот метод не следует переопределять.

(Унаследовано от Component)
Uninstall(IDictionary)

Отменяет установку, если переопределен в наследующем классе.

События

AfterInstall

Происходит после выполнения методов Install(IDictionary) всех установщиков из свойства Installers.

AfterRollback

Происходит после отката установок всех установщиков из свойства Installers.

AfterUninstall

Происходит после выполнения операций удаления всеми установщиками из свойства Installers.

BeforeInstall

Происходит до того, как был запущен метод Install(IDictionary) каждого установщика из коллекции установщиков.

BeforeRollback

Происходит до отката установщиков из свойства Installers.

BeforeUninstall

Происходит до выполнения операций удаления установщиками из свойства Installers.

Committed

Происходит после фиксации установки всеми установщиками из свойства Installers.

Committing

Происходит до фиксации установок установщиками из свойства Installers.

Disposed

Возникает при удалении компонента путем вызова метода Dispose().

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

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

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