Freigeben über


TransactedInstaller Klasse

Definition

Definiert ein Installationsprogramm, das entweder vollständig erfolgreich ist oder fehlschlägt und den Computer in seinem Anfangszustand verlässt.

public ref class TransactedInstaller : System::Configuration::Install::Installer
public class TransactedInstaller : System.Configuration.Install.Installer
type TransactedInstaller = class
    inherit Installer
Public Class TransactedInstaller
Inherits Installer
Vererbung

Beispiele

Im folgenden Beispiel werden die TransactedInstallerMethoden Install und Uninstall Methoden der TransactedInstaller Klasse veranschaulicht.

In diesem Beispiel wird eine Implementierung ähnlich wie Installutil.exe (Installer Tool) bereitgestellt. Es installiert Assemblys mit den Optionen, die dieser bestimmten Assembly vorausgehen. Wenn für eine Assembly keine Option angegeben ist, werden die Optionen der vorherigen Assembly verwendet, wenn in der Liste eine vorherige Assembly vorhanden ist. Wenn entweder die Option "/u" oder "/uninstall" angegeben ist, werden die Assemblys deinstalliert. Wenn die Option "/?" oder "/help" bereitgestellt wird, werden die Hilfeinformationen in der Konsole angezeigt.

array<String^>^ args = Environment::GetCommandLineArgs();
ArrayList^ myOptions = gcnew ArrayList;
String^ myOption;
bool toUnInstall = false;
bool toPrintHelp = false;
TransactedInstaller^ myTransactedInstaller = gcnew TransactedInstaller;
AssemblyInstaller^ myAssemblyInstaller;
InstallContext^ myInstallContext;

try
{
   for ( int i = 1; i < args->Length; i++ )
   {
      // Process the arguments.
      if ( args[ i ]->StartsWith( "/" ) || args[ i ]->StartsWith( "-" ) )
      {
         myOption = args[ i ]->Substring( 1 );
         // Determine whether the option is to 'uninstall' an assembly.
         if ( String::Compare( myOption, "u", true ) == 0 ||
            String::Compare( myOption, "uninstall", true ) == 0 )
         {
            toUnInstall = true;
            continue;
         }
         // Determine whether the option is for printing help information.
         if ( String::Compare( myOption, "?", true ) == 0 ||
            String::Compare( myOption, "help", true ) == 0 )
         {
            toPrintHelp = true;
            continue;
         }
         // Add the option encountered to the list of all options
         // encountered for the current assembly.
         myOptions->Add( myOption );
      }
      else
      {
         // Determine whether the assembly file exists.
         if (  !File::Exists( args[ i ] ) )
         {
            // If assembly file doesn't exist then print error.
            Console::WriteLine( "\nError : {0} - Assembly file doesn't exist.",
               args[ i ] );
            return 0;
         }
         
         // Create a instance of 'AssemblyInstaller' that installs the given assembly.
         myAssemblyInstaller =
            gcnew AssemblyInstaller( args[ i ],
               (array<String^>^)( myOptions->ToArray( String::typeid ) ) );
         // Add the instance of 'AssemblyInstaller' to the 'TransactedInstaller'.
         myTransactedInstaller->Installers->Add( myAssemblyInstaller );
      }
   }
   
   // If user requested help or didn't provide any assemblies to install
   // then print help message.
   if ( toPrintHelp || myTransactedInstaller->Installers->Count == 0 )
   {
      PrintHelpMessage();
      return 0;
   }
   
   // Create a instance of 'InstallContext' with the options specified.
   myInstallContext =
      gcnew InstallContext( "Install.log",
         (array<String^>^)( myOptions->ToArray( String::typeid ) ) );
   myTransactedInstaller->Context = myInstallContext;
   
   // Install or Uninstall an assembly depending on the option provided.
   if (  !toUnInstall )
   {
      myTransactedInstaller->Install( gcnew Hashtable );
   }
   else
   {
      myTransactedInstaller->Uninstall( nullptr );
   }
}
catch ( Exception^ e ) 
{
   Console::WriteLine( "\nException raised : {0}", e->Message );
}
using System;
using System.ComponentModel;
using System.Collections;
using System.Configuration.Install;
using System.IO;

public class TransactedInstaller_Example
{
   public static void Main(String[] args)
   {
      ArrayList myOptions = new ArrayList();
      String myOption;
      bool toUnInstall = false;
      bool toPrintHelp = false;
      TransactedInstaller myTransactedInstaller = new TransactedInstaller();
      AssemblyInstaller myAssemblyInstaller;
      InstallContext myInstallContext;

      try
      {
         for(int i = 0; i < args.Length; i++)
         {
            // Process the arguments.
            if(args[i].StartsWith("/") || args[i].StartsWith("-"))
            {
               myOption = args[i].Substring(1);
               // Determine whether the option is to 'uninstall' an assembly.
               if(String.Compare(myOption, "u", true) == 0 ||
                  String.Compare(myOption, "uninstall", true) == 0)
               {
                  toUnInstall = true;
                  continue;
               }
               // Determine whether the option is for printing help information.
               if(String.Compare(myOption, "?", true) == 0 ||
                  String.Compare(myOption, "help", true) == 0)
               {
                  toPrintHelp = true;
                  continue;
               }
               // Add the option encountered to the list of all options
               // encountered for the current assembly.
               myOptions.Add(myOption);
            }
            else
            {
               // Determine whether the assembly file exists.
               if(!File.Exists(args[i]))
               {
                  // If assembly file doesn't exist then print error.
                  Console.WriteLine("\nError : {0} - Assembly file doesn't exist.",
                     args[i]);
                  return;
               }

               // Create a instance of 'AssemblyInstaller' that installs the given assembly.
               myAssemblyInstaller =
                  new AssemblyInstaller(args[i],
                  (string[]) myOptions.ToArray(typeof(string)));
               // Add the instance of 'AssemblyInstaller' to the 'TransactedInstaller'.
               myTransactedInstaller.Installers.Add(myAssemblyInstaller);
            }
         }
         // If user requested help or didn't provide any assemblies to install
         // then print help message.
         if(toPrintHelp || myTransactedInstaller.Installers.Count == 0)
         {
            PrintHelpMessage();
            return;
         }

         // Create a instance of 'InstallContext' with the options specified.
         myInstallContext =
            new InstallContext("Install.log",
            (string[]) myOptions.ToArray(typeof(string)));
         myTransactedInstaller.Context = myInstallContext;

         // Install or Uninstall an assembly depending on the option provided.
         if(!toUnInstall)
            myTransactedInstaller.Install(new Hashtable());
         else
            myTransactedInstaller.Uninstall(null);
      }
      catch(Exception e)
      {
         Console.WriteLine("\nException raised : {0}", e.Message);
      }
   }

   public static void PrintHelpMessage()
   {
      Console.WriteLine("Usage : TransactedInstaller [/u | /uninstall] [option [...]] assembly" +
         "[[option [...]] assembly] [...]]");
      Console.WriteLine("TransactedInstaller executes the installers in each of" +
         " the given assembly. If /u or /uninstall option" +
         " is given it uninstalls the assemblies.");
   }
}
Dim options As New ArrayList()
Dim myOption As String
Dim toUnInstall As Boolean = False
Dim toPrintHelp As Boolean = False
Dim myTransactedInstaller As New TransactedInstaller()
Dim myAssemblyInstaller As AssemblyInstaller
Dim myInstallContext As InstallContext

Try
   Dim i As Integer
   For i = 1 To args.Length - 1
      ' Process the arguments.
      If args(i).StartsWith("/") Or args(i).StartsWith("-") Then
         myOption = args(i).Substring(1)
         ' Determine whether the option is to 'uninstall' an assembly.
         If String.Compare(myOption, "u", True) = 0 Or _
            String.Compare(myOption,"uninstall", True) = 0 Then
            toUnInstall = True
            GoTo ContinueFor1
         End If
         ' Determine whether the option is for printing help information.
         If String.Compare(myOption, "?", True) = 0 Or _
            String.Compare(myOption, "help", True) = 0 Then
            toPrintHelp = True
            GoTo ContinueFor1
         End If
         ' Add the option encountered to the list of all options
         ' encountered for the current assembly.
         options.Add(myOption)
      Else
         ' Determine whether the assembly file exists.
         If Not File.Exists(args(i)) Then
            ' If assembly file doesn't exist then print error.
            Console.WriteLine(ControlChars.Newline + _
                     "Error : {0} - Assembly file doesn't exist.", args(i))
            Return
         End If

         ' Create a instance of 'AssemblyInstaller' that installs the given assembly.
         myAssemblyInstaller = New AssemblyInstaller(args(i), _
                        CType(options.ToArray(GetType(String)), String()))
         ' Add the instance of 'AssemblyInstaller' to the 'TransactedInstaller'.
         myTransactedInstaller.Installers.Add(myAssemblyInstaller)
      End If
   ContinueFor1:
   Next i
   ' If user requested help or didn't provide any assemblies to install
   ' then print help message.
   If toPrintHelp Or myTransactedInstaller.Installers.Count = 0 Then
      PrintHelpMessage()
      Return
   End If

   ' Create a instance of 'InstallContext' with the options specified.
   myInstallContext = New InstallContext("Install.log", _
               CType(options.ToArray(GetType(String)), String()))
   myTransactedInstaller.Context = myInstallContext

   ' Install or Uninstall an assembly depending on the option provided.
   If Not toUnInstall Then
      myTransactedInstaller.Install(New Hashtable())
   Else
      myTransactedInstaller.Uninstall(Nothing)
   End If
Catch e As Exception
   Console.WriteLine(ControlChars.Newline + "Exception raised : {0}", e.Message)
End Try

Hinweise

Um Installationsprogramme in einer Transaktion auszuführen, fügen Sie sie der Installers Eigenschaft dieser TransactedInstaller Instanz hinzu.

Konstruktoren

Name Beschreibung
TransactedInstaller()

Initialisiert eine neue Instanz der TransactedInstaller-Klasse.

Eigenschaften

Name Beschreibung
CanRaiseEvents

Ruft einen Wert ab, der angibt, ob die Komponente ein Ereignis auslösen kann.

(Geerbt von Component)
Container

Ruft das, das IContainer die Component.

(Geerbt von Component)
Context

Ruft Informationen zur aktuellen Installation ab oder legt diese fest.

(Geerbt von Installer)
DesignMode

Ruft einen Wert ab, der angibt, ob sich der Component Entwurfsmodus derzeit befindet.

(Geerbt von Component)
Events

Ruft die Liste der Ereignishandler ab, die an diese Componentangefügt sind.

(Geerbt von Component)
HelpText

Ruft den Hilfetext für alle Installationsprogramme in der Installer-Auflistung ab.

(Geerbt von Installer)
Installers

Ruft die Auflistung der Installationsprogramme ab, die dieses Installationsprogramm enthält.

(Geerbt von Installer)
Parent

Ruft das Installationsprogramm ab, das die Auflistung enthält, zu der dieses Installationsprogramm gehört, oder legt diesen fest.

(Geerbt von Installer)
Site

Dient zum ISite Abrufen oder Festlegen des Werts des Component.

(Geerbt von Component)

Methoden

Name Beschreibung
Commit(IDictionary)

Wenn sie in einer abgeleiteten Klasse überschrieben wird, wird die Installationstransaktion abgeschlossen.

(Geerbt von Installer)
CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
Dispose()

Veröffentlicht alle ressourcen, die von der Component.

(Geerbt von Component)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von den Component verwalteten Ressourcen verwendet werden, und gibt optional die verwalteten Ressourcen frei.

(Geerbt von Component)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetService(Type)

Gibt ein Objekt zurück, das einen Dienst darstellt, der von der Component oder dem zugehörigen ContainerDienst bereitgestellt wird.

(Geerbt von Component)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
Install(IDictionary)

Führt die Installation aus.

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekts.

(Geerbt von MarshalByRefObject)
OnAfterInstall(IDictionary)

Löst das AfterInstall-Ereignis aus.

(Geerbt von Installer)
OnAfterRollback(IDictionary)

Löst das AfterRollback-Ereignis aus.

(Geerbt von Installer)
OnAfterUninstall(IDictionary)

Löst das AfterUninstall-Ereignis aus.

(Geerbt von Installer)
OnBeforeInstall(IDictionary)

Löst das BeforeInstall-Ereignis aus.

(Geerbt von Installer)
OnBeforeRollback(IDictionary)

Löst das BeforeRollback-Ereignis aus.

(Geerbt von Installer)
OnBeforeUninstall(IDictionary)

Löst das BeforeUninstall-Ereignis aus.

(Geerbt von Installer)
OnCommitted(IDictionary)

Löst das Committed-Ereignis aus.

(Geerbt von Installer)
OnCommitting(IDictionary)

Löst das Committing-Ereignis aus.

(Geerbt von Installer)
Rollback(IDictionary)

Wenn sie in einer abgeleiteten Klasse außer Kraft gesetzt wird, wird der Vorinstallationsstatus des Computers wiederhergestellt.

(Geerbt von Installer)
ToString()

Gibt einen String mit dem Namen des Component, falls vorhanden, zurück. Diese Methode sollte nicht außer Kraft gesetzt werden.

(Geerbt von Component)
Uninstall(IDictionary)

Entfernt eine Installation.

Ereignisse

Name Beschreibung
AfterInstall

Tritt ein, nachdem die Install(IDictionary) Methoden aller Installationsprogramme in der Installers Eigenschaft ausgeführt wurden.

(Geerbt von Installer)
AfterRollback

Tritt ein, nachdem die Installationen aller Installationsprogramme in der Installers Eigenschaft zurückgesetzt wurden.

(Geerbt von Installer)
AfterUninstall

Tritt ein, nachdem alle Installationsprogramme in der Installers Eigenschaft ihre Deinstallationsvorgänge ausgeführt haben.

(Geerbt von Installer)
BeforeInstall

Tritt auf, bevor die Install(IDictionary) Methode der einzelnen Installationsprogramme in der Installer-Auflistung ausgeführt wurde.

(Geerbt von Installer)
BeforeRollback

Tritt auf, bevor die Installationsprogramme in der Installers Eigenschaft zurückgesetzt werden.

(Geerbt von Installer)
BeforeUninstall

Tritt auf, bevor die Installationsprogramme in der Installers Eigenschaft ihre Deinstallationsvorgänge ausführen.

(Geerbt von Installer)
Committed

Tritt auf, nachdem alle Installationsprogramme in der Installers Eigenschaft ihre Installationen zugesichert haben.

(Geerbt von Installer)
Committing

Tritt auf, bevor die Installationsprogramme in der Installers Eigenschaft ihre Installationen übernehmen.

(Geerbt von Installer)
Disposed

Tritt auf, wenn die Komponente durch einen Aufruf der Dispose() Methode verworfen wird.

(Geerbt von Component)

Gilt für: