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) |