InstallerCollection Klasse

Definition

Enthält eine Auflistung der Installationsprogramme, die während einer Installation ausgeführt werden sollen.Contains a collection of installers to be run during an installation.

public ref class InstallerCollection : System::Collections::CollectionBase
public class InstallerCollection : System.Collections.CollectionBase
type InstallerCollection = class
    inherit CollectionBase
Public Class InstallerCollection
Inherits CollectionBase
Vererbung
InstallerCollection

Beispiele

Im folgenden Beispiel wird die Add -Methode InstallerCollection der-Klasse veranschaulicht.The following example demonstrates the Add method of the InstallerCollection class. Dieses Beispiel bietet eine ähnliche Implementierung wie " installutil. exe" (Installationstool).This example provides an implementation similar to that of Installutil.exe (Installer Tool). Assemblys werden mit den Optionen installiert, die der jeweiligen Assembly vorangestellt sindIt installs assemblies with the options preceding that particular assembly. Wenn für eine Assembly keine Option angegeben ist, werden die Optionen der vorherigen Assembly übernommen, wenn eine vorherige Assembly in der Liste vorhanden ist.If an option is not specified for an assembly, the previous assembly's options are taken if there is a previous assembly in the list. Wenn die Option "/u" oder "/Uninstall" angegeben wird, werden die Assemblys deinstalliert.If the "/u" or "/uninstall" option is specified, the assemblies are uninstalled. Wenn "/?"If the "/?" die Option "/Help" wird bereitgestellt, die Hilfe Informationen werden in der Konsole angezeigt.or "/help" option is provided, the help information is displayed to the console.

#using <System.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Configuration::Install;
using namespace System::IO;

void PrintHelpMessage()
{
   Console::WriteLine( "Usage : InstallerCollection_Add [/u | /uninstall] [option [...]] assembly " +
      "[[option [...]] assembly] [...]]" );
   Console::WriteLine( "InstallerCollection_Add executes the installers in each of" +
      "the given assembly. If /u or /uninstall option" + 
      "option is given it uninstalls the assemblies." );
}

int main()
{
   array<String^>^ args = Environment::GetCommandLineArgs();
   ArrayList^ options = gcnew ArrayList;
   String^ myOption;
   bool toUnInstall = false;
   bool toPrintHelp = false;
   TransactedInstaller^ myTransactedInstaller = gcnew 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' a 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.
            options->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( " Error : {0} - Assembly file doesn't exist.", args[ i ] );
               return 0;
            }
            // Create an instance of 'AssemblyInstaller' that installs the given assembly.
            myAssemblyInstaller = gcnew AssemblyInstaller( args[ i ],
              (array<String^>^)(options->ToArray( String::typeid )) );
            // Add the instance of 'AssemblyInstaller' to the 'TransactedInstaller'.
            myTransactedInstaller->Installers->Add( myAssemblyInstaller );
         }
      }
      // then print help message.
      if ( toPrintHelp || myTransactedInstaller->Installers->Count == 0 )
      {
         PrintHelpMessage();
         return 0;
      }

      // Create an instance of 'InstallContext' with the options specified.
      myInstallContext =
         gcnew InstallContext( "Install.log",
              (array<String^>^)(options->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( " Exception raised : {0}", e->Message );
   }
}
using System;
using System.ComponentModel;
using System.Collections;
using System.Configuration.Install;
using System.IO;

public class InstallerCollection_Add
{
   public static void Main(String[] args)
   {
      ArrayList options = 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' a 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.
               options.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(" Error : {0} - Assembly file doesn't exist.", args[i]);
                  return;
               }
               // Create an instance of 'AssemblyInstaller' that installs the given assembly.
               myAssemblyInstaller = new AssemblyInstaller(args[i],
                  (string[]) options.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 an instance of 'InstallContext' with the options specified.
         myInstallContext =
            new InstallContext("Install.log",
            (string[]) options.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(" Exception raised : {0}", e.Message);
      }
   }

   public static void PrintHelpMessage()
   {
      Console.WriteLine("Usage : InstallerCollection_Add [/u | /uninstall] [option [...]] assembly" +
         "[[option [...]] assembly] [...]]");
      Console.WriteLine("InstallerCollection_Add executes the installers in each of" +
         " the given assembly. If /u or /uninstall option" +
         " is given it uninstalls the assemblies.");
   }
}
Imports System.ComponentModel
Imports System.Collections
Imports System.Configuration.Install
Imports System.IO

Public Class InstallerCollection_Add
   
   'Entry point which delegates to C-style main Private Function
   Public Overloads Shared Sub Main()
      Main(System.Environment.GetCommandLineArgs())
   End Sub
   
   Overloads Public Shared Sub Main(args() As String)
      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' a 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(" Error : {0} - Assembly file doesn't exist.", args(i))
                  Return
               End If
               ' Create an 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 an 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(" Exception raised : {0}", e.Message)
      End Try
   End Sub

   Public Shared Sub PrintHelpMessage()
      Console.WriteLine("Usage : InstallerCollection_Add [/u | /uninstall] [option [...]]assembly"+ _
                                                               "[[option [...]] assembly] [...]]")
      Console.WriteLine("InstallerCollection_Add executes the installers in each of" + _
      " the given assembly. If /u or /uninstall option is given it uninstalls the assemblies.")
   End Sub
End Class

Hinweise

Stellt die Methoden und Eigenschaften bereit, die Ihre Anwendung benötigt, um eine Auflistung Installer von-Objekten zu verwalten. InstallerCollectionThe InstallerCollection provides the methods and properties that your application needs to manage a collection of Installer objects.

Verwenden Sie eine der folgenden drei Methoden, um Installationsprogramme zur-Auflistung hinzuzufügen:Use any of the following three ways to add installers to the collection:

  • Die Add -Methode fügt der Auflistung ein einzelnes Installationsprogramm hinzu.The Add method adds a single installer to the collection.

  • Die AddRange -Methoden fügen der-Auflistung mehrere Installationsprogramme hinzu.The AddRange methods add multiple installers to the collection.

  • Die Insert -Methode und Item[Int32] die-Eigenschaft, bei InstallerCollection der es sich um den Indexer handelt, fügen jeweils ein einzelnes Installationsprogramm der Auflistung am angegebenen Index hinzu.The Insert method and the Item[Int32] property, which is the InstallerCollection indexer, each add a single installer to the collection at the specified index.

Entfernen Sie Installationsprogramme Remove über die-Methode.Remove installers through the Remove method. Überprüfen Sie mithilfe der Contains -Methode, ob ein Installer in der Auflistung verwendet wird.Check whether an installer is in the collection by using the Contains method. Suchen Sie mithilfe der IndexOf -Methode, wo sich ein Installer in der Auflistung befindet.Find where an installer is located in the collection by using the IndexOf method.

Die Installationsprogramme in einer Auflistung werden ausgeführt, wenn das Installationsprogramm, das die Auflistung enthält Installer.Parent , wie von der- CommitEigenschaft angegeben, Uninstall Ihre InstallMethoden,, Rollbackoder aufruft.The installers in a collection are run when the installer containing the collection, as specified by the Installer.Parent property, calls their Install, Commit, Rollback, or Uninstall methods.

Beispiele für die Verwendung einer Installerauflistung finden Sie unter den AssemblyInstaller Klassen TransactedInstaller und.For examples of the usage of an installer collection, see the AssemblyInstaller and TransactedInstaller classes.

Eigenschaften

Capacity

Ruft die Anzahl der Elemente ab, die die CollectionBase enthalten kann, oder legt diese fest.Gets or sets the number of elements that the CollectionBase can contain.

(Geerbt von CollectionBase)
Count

Ruft die Anzahl der Elemente ab, die in der CollectionBase-Instanz enthalten sind.Gets the number of elements contained in the CollectionBase instance. Diese Eigenschaft kann nicht überschrieben werden.This property cannot be overridden.

(Geerbt von CollectionBase)
InnerList

Ruft eine ArrayList mit der Liste der Elemente in der CollectionBase-Instanz ab.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(Geerbt von CollectionBase)
Item[Int32]

Ruft ein Installationsprogramm am angegebenen Index ab oder legt dieses fest.Gets or sets an installer at the specified index.

List

Ruft eine IList mit der Liste der Elemente in der CollectionBase-Instanz ab.Gets an IList containing the list of elements in the CollectionBase instance.

(Geerbt von CollectionBase)

Methoden

Add(Installer)

Fügt dieser Auflistung von Installationsprogrammen das angegebene Installationsprogramm hinzu.Adds the specified installer to this collection of installers.

AddRange(Installer[])

Fügt dieser Auflistung das angegebene Array von Installationsprogrammen hinzu.Adds the specified array of installers to this collection.

AddRange(InstallerCollection)

Fügt dieser Auflistung die angegebene Auflistung von Installationsprogrammen hinzu.Adds the specified collection of installers to this collection.

Clear()

Entfernt alle Objekte aus der CollectionBase-Instanz.Removes all objects from the CollectionBase instance. Diese Methode kann nicht überschrieben werden.This method cannot be overridden.

(Geerbt von CollectionBase)
Contains(Installer)

Bestimmt, ob das angegebene Installationsprogramm in der Auflistung enthalten ist.Determines whether the specified installer is included in collection.

CopyTo(Installer[], Int32)

Kopiert die Elemente aus der Sammlung in ein Array, beginnend am angegebenen Index.Copies the items from the collection to an array, beginning at the specified index.

Equals(Object)

Ermittelt, ob das angegebene Objekt und das aktuelle Objekt gleich sind.Determines whether the specified object is equal to the current object.

(Geerbt von Object)
GetEnumerator()

Gibt einen Enumerator zurück, der die CollectionBase durchläuft.Returns an enumerator that iterates through the CollectionBase instance.

(Geerbt von CollectionBase)
GetHashCode()

Dient als die Standard-HashfunktionServes as the default hash function.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Geerbt von Object)
IndexOf(Installer)

Bestimmt den Index eines bestimmten Installationsprogramms in der Auflistung.Determines the index of a specified installer in the collection.

Insert(Int32, Installer)

Fügt das angegebene Installationsprogramm am angegebenen Index in die Auflistung ein.Inserts the specified installer into the collection at the specified index.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Geerbt von Object)
OnClear()

Führt beim Löschen des Inhalts der CollectionBase-Instanz zusätzliche benutzerdefinierte Prozesse aus.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(Geerbt von CollectionBase)
OnClearComplete()

Führt nach dem Löschen des Inhalts der CollectionBase-Instanz zusätzliche benutzerdefinierte Prozesse aus.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(Geerbt von CollectionBase)
OnInsert(Int32, Object)

Führt vor dem Einfügen eines neuen Installationsprogramms in die Auflistung zusätzliche benutzerdefinierte Prozesse aus.Performs additional custom processes before a new installer is inserted into the collection.

OnInsertComplete(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse nach dem Einfügen eines neuen Elements in die CollectionBase-Instanz aus.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(Geerbt von CollectionBase)
OnRemove(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, bevor ein Installationsprogramm aus der Auflistung entfernt wird.Performs additional custom processes before an installer is removed from the collection.

OnRemoveComplete(Int32, Object)

Führt zusätzliche benutzerdefinierte Prozesse nach dem Entfernen eines Elements aus der CollectionBase-Instanz aus.Performs additional custom processes after removing an element from the CollectionBase instance.

(Geerbt von CollectionBase)
OnSet(Int32, Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse aus, bevor ein vorhandenes Installationsprogramm auf einen neuen Wert festgelegt wird.Performs additional custom processes before an existing installer is set to a new value.

OnSetComplete(Int32, Object, Object)

Führt zusätzliche benutzerdefinierte Prozesse nach dem Festlegen eines Werts in der CollectionBase-Instanz aus.Performs additional custom processes after setting a value in the CollectionBase instance.

(Geerbt von CollectionBase)
OnValidate(Object)

Führt zusätzliche benutzerdefinierte Prozesse beim Validieren eines Werts aus.Performs additional custom processes when validating a value.

(Geerbt von CollectionBase)
Remove(Installer)

Entfernt den angegebenen Installer aus der Auflistung.Removes the specified Installer from the collection.

RemoveAt(Int32)

Entfernt das Element am angegebenen Index aus der CollectionBase-Instanz.Removes the element at the specified index of the CollectionBase instance. Diese Methode kann nicht überschrieben werden.This method is not overridable.

(Geerbt von CollectionBase)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

ICollection.CopyTo(Array, Int32)

Kopiert die gesamte CollectionBase-Instanz in ein kompatibles eindimensionales Array, beginnend am angegebenen Index des Zielarrays.Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array.

(Geerbt von CollectionBase)
ICollection.IsSynchronized

Ruft einen Wert ab, der angibt, ob der Zugriff auf die CollectionBase synchronisiert (threadsicher) ist.Gets a value indicating whether access to the CollectionBase is synchronized (thread safe).

(Geerbt von CollectionBase)
ICollection.SyncRoot

Ruft ein Objekt ab, mit dem der Zugriff auf CollectionBase synchronisiert werden kann.Gets an object that can be used to synchronize access to the CollectionBase.

(Geerbt von CollectionBase)
IList.Add(Object)

Fügt am Ende der CollectionBase ein Objekt hinzu.Adds an object to the end of the CollectionBase.

(Geerbt von CollectionBase)
IList.Contains(Object)

Ermittelt, ob CollectionBase ein bestimmtes Element enthält.Determines whether the CollectionBase contains a specific element.

(Geerbt von CollectionBase)
IList.IndexOf(Object)

Sucht nach dem angegebenen Object und gibt den nullbasierten Index des ersten Vorkommens innerhalb der gesamten CollectionBase zurück.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase.

(Geerbt von CollectionBase)
IList.Insert(Int32, Object)

Fügt am angegebenen Index ein Element in die CollectionBase ein.Inserts an element into the CollectionBase at the specified index.

(Geerbt von CollectionBase)
IList.IsFixedSize

Ruft einen Wert ab, der angibt, ob das CollectionBase eine feste Größe aufweist.Gets a value indicating whether the CollectionBase has a fixed size.

(Geerbt von CollectionBase)
IList.IsReadOnly

Ruft einen Wert ab, der angibt, ob das CollectionBase schreibgeschützt ist.Gets a value indicating whether the CollectionBase is read-only.

(Geerbt von CollectionBase)
IList.Item[Int32]

Ruft das Element am angegebenen Index ab oder legt dieses fest.Gets or sets the element at the specified index.

(Geerbt von CollectionBase)
IList.Remove(Object)

Entfernt das erste Vorkommen eines angegebenen Objekts aus der CollectionBase.Removes the first occurrence of a specific object from the CollectionBase.

(Geerbt von CollectionBase)

Erweiterungsmethoden

Cast<TResult>(IEnumerable)

Wandelt die Elemente eines IEnumerable in den angegebenen Typ umCasts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtert die Elemente eines IEnumerable anhand eines angegebenen TypsFilters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Ermöglicht die Parallelisierung einer Abfrage.Enables parallelization of a query.

AsQueryable(IEnumerable)

Konvertiert einen IEnumerable in einen IQueryable.Converts an IEnumerable to an IQueryable.

Gilt für:

Siehe auch