Installer Klasa

Definicja

Stanowi podstawę instalacji niestandardowych.

public ref class Installer : System::ComponentModel::Component
public class Installer : System.ComponentModel.Component
type Installer = class
    inherit Component
Public Class Installer
Inherits Component
Dziedziczenie
Pochodne

Przykłady

W poniższym przykładzie pokazano użycie Installer klasy. Tworzy klasę dziedziczą z Installerklasy . Po Commit zakończeniu Committing wystąpi zdarzenie i zostanie wyświetlony komunikat. Aby użyć Installer klasy, należy odwołać się do zestawu System.Configuration.Install w projekcie.

#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

Uwagi

Jest to klasa bazowa dla wszystkich instalatorów niestandardowych w .NET Framework. Instalatory to składniki, które ułatwiają instalowanie aplikacji na komputerze.

Aby użyć polecenia Installer, należy wykonać kilka kroków:

  • Dziedzicz klasę Installer .

  • Zastąpij Installmetody , Commit, Rollbacki Uninstall .

  • Dodaj element do klasy pochodnej RunInstallerAttribute i ustaw go na true.

  • Umieść klasę pochodną w zestawie z aplikacją, aby ją zainstalować.

  • Wywołaj instalatory. Na przykład użyj InstallUtil.exe, aby wywołać instalatory.

Właściwość Installers zawiera kolekcję instalatorów. Jeśli to wystąpienie Installer jest częścią kolekcji instalatora, Parent właściwość jest ustawiona na Installer wystąpienie zawierające kolekcję. Przykład użycia Installers kolekcji można znaleźć w AssemblyInstaller klasie .

Metody InstallInstaller , Commit, Rollbacki Uninstall klasy przechodzą przez kolekcję instalatorów przechowywanych we Installers właściwości i wywołuje odpowiednią metodę każdego instalatora.

Metody Install, Commit, i RollbackUninstall nie zawsze są wywoływane w tym samym Installer wystąpieniu. Na przykład jedno Installer wystąpienie może być używane podczas instalowania i zatwierdzania aplikacji, a następnie jest zwalniane odwołanie do tego wystąpienia. Później odinstalowanie aplikacji powoduje utworzenie odwołania do nowego Installer wystąpienia, co oznacza, że Uninstall metoda jest wywoływana przez inne wystąpienie klasy Installer. Z tego powodu w klasie pochodnej nie należy zapisywać stanu komputera w instalatorze. Zamiast tego należy użyć IDictionary elementu, który jest zachowywany między wywołaniami i przekazywany do metod Install, Commit, Rollbacki Uninstall .

Dwie sytuacje ilustrują potrzebę zapisania informacji w module zapisywania IDictionarystanu . Najpierw załóżmy, że instalator ustawia klucz rejestru. Powinna ona zapisać oryginalną wartość klucza w elemecie IDictionary. Jeśli instalacja zostanie wycofana, można przywrócić oryginalną wartość. Po drugie, załóżmy, że instalator zastępuje istniejący plik. Zapisz istniejący plik w katalogu tymczasowym i lokalizację nowej lokalizacji pliku w pliku IDictionary. Jeśli instalacja zostanie wycofana, nowszy plik zostanie usunięty i zastąpiony przez oryginał z lokalizacji tymczasowej.

Właściwość Installer.Context zawiera informacje o instalacji. Na przykład informacje o lokalizacji pliku dziennika instalacji, lokalizacji pliku w celu zapisania informacji wymaganych przez Uninstall metodę oraz wiersza polecenia wprowadzonego podczas uruchamiania pliku wykonywalnego instalacji.

Konstruktory

Installer()

Inicjuje nowe wystąpienie klasy Installer.

Właściwości

CanRaiseEvents

Pobiera wartość wskazującą, czy składnik może zgłosić zdarzenie.

(Odziedziczone po Component)
Container

Pobiera element IContainer zawierający element Component.

(Odziedziczone po Component)
Context

Pobiera lub ustawia informacje o bieżącej instalacji.

DesignMode

Pobiera wartość wskazującą, czy Component element jest obecnie w trybie projektowania.

(Odziedziczone po Component)
Events

Pobiera listę programów obsługi zdarzeń dołączonych do tego Componentelementu .

(Odziedziczone po Component)
HelpText

Pobiera tekst pomocy dla wszystkich instalatorów w kolekcji instalatora.

Installers

Pobiera kolekcję instalatorów, które zawiera ten instalator.

Parent

Pobiera lub ustawia instalatora zawierającego kolekcję, do którego należy ten instalator.

Site

Pobiera lub ustawia ISite element .Component

(Odziedziczone po Component)

Metody

Commit(IDictionary)

Po zastąpieniu w klasie pochodnej kończy transakcję instalacji.

CreateObjRef(Type)

Tworzy obiekt zawierający wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikowania się z obiektem zdalnym.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszelkie zasoby używane przez element Component.

(Odziedziczone po Component)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Component i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po Component)
Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetLifetimeService()
Przestarzałe.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
GetService(Type)

Zwraca obiekt reprezentujący usługę dostarczaną przez Component obiekt lub przez obiekt Container.

(Odziedziczone po Component)
GetType()

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
InitializeLifetimeService()
Przestarzałe.

Uzyskuje obiekt usługi okresu istnienia, aby kontrolować zasady okresu istnienia dla tego wystąpienia.

(Odziedziczone po MarshalByRefObject)
Install(IDictionary)

W przypadku przesłonięcia w klasie pochodnej program wykonuje instalację.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy płytkią kopię bieżącego MarshalByRefObject obiektu.

(Odziedziczone po MarshalByRefObject)
OnAfterInstall(IDictionary)

AfterInstall Zgłasza zdarzenie.

OnAfterRollback(IDictionary)

AfterRollback Zgłasza zdarzenie.

OnAfterUninstall(IDictionary)

AfterUninstall Zgłasza zdarzenie.

OnBeforeInstall(IDictionary)

BeforeInstall Zgłasza zdarzenie.

OnBeforeRollback(IDictionary)

BeforeRollback Zgłasza zdarzenie.

OnBeforeUninstall(IDictionary)

BeforeUninstall Zgłasza zdarzenie.

OnCommitted(IDictionary)

Committed Zgłasza zdarzenie.

OnCommitting(IDictionary)

Committing Zgłasza zdarzenie.

Rollback(IDictionary)

Po przesłonięciu w klasie pochodnej przywraca stan przed instalacją komputera.

ToString()

Zwraca wartość String zawierającą nazwę Componentobiektu , jeśli istnieje. Ta metoda nie powinna być zastępowana.

(Odziedziczone po Component)
Uninstall(IDictionary)

Po zastąpieniu klasy pochodnej program usuwa instalację.

Zdarzenia

AfterInstall

Występuje po Install(IDictionary) uruchomieniu Installers metod wszystkich instalatorów we właściwości.

AfterRollback

Występuje po wycofaniu Installers instalacji wszystkich instalatorów we właściwości.

AfterUninstall

Występuje po wykonaniu Installers operacji dezinstalacji przez wszystkich instalatorów w właściwości.

BeforeInstall

Występuje przed uruchomieniem Install(IDictionary) metody każdego instalatora w kolekcji instalatora.

BeforeRollback

Występuje przed wycofaniem instalatorów we Installers właściwości.

BeforeUninstall

Występuje przed wykonaniem operacji dezinstalacji przez instalatorów w Installers właściwości.

Committed

Występuje po zatwierdzeniu instalacji przez wszystkich instalatorów w Installers właściwości.

Committing

Występuje przed zatwierdzeniem instalacji przez instalatorów w Installers właściwości.

Disposed

Występuje, gdy składnik jest usuwany przez wywołanie Dispose() metody .

(Odziedziczone po Component)

Dotyczy

Zobacz też