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


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методы , CommitRollbackи Uninstall методы.

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

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

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

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

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

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

Две ситуации иллюстрируют необходимость сохранения информации в хранимом 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)

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

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