Installer Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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 .
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ż
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla