Export (0) Print
Expand All

InstallerCollection Class

Contains a collection of installers to be run during an installation.

System.Object
  System.Collections.CollectionBase
    System.Configuration.Install.InstallerCollection

Namespace:  System.Configuration.Install
Assembly:  System.Configuration.Install (in System.Configuration.Install.dll)

public class InstallerCollection : CollectionBase

The InstallerCollection type exposes the following members.

  NameDescription
Public propertyCapacityGets or sets the number of elements that the CollectionBase can contain. (Inherited from CollectionBase.)
Public propertyCountGets the number of elements contained in the CollectionBase instance. This property cannot be overridden. (Inherited from CollectionBase.)
Protected propertyInnerListGets an ArrayList containing the list of elements in the CollectionBase instance. (Inherited from CollectionBase.)
Public propertyItemGets or sets an installer at the specified index.
Protected propertyListGets an IList containing the list of elements in the CollectionBase instance. (Inherited from CollectionBase.)
Top

  NameDescription
Public methodAddAdds the specified installer to this collection of installers.
Public methodAddRange(Installer[])Adds the specified array of installers to this collection.
Public methodAddRange(InstallerCollection)Adds the specified collection of installers to this collection.
Public methodClearRemoves all objects from the CollectionBase instance. This method cannot be overridden. (Inherited from CollectionBase.)
Public methodContainsDetermines whether the specified installer is included in collection.
Public methodCopyToCopies the items from the collection to an array, begining at the specified index.
Public methodEquals(Object)Determines whether the specified object is equal to the current object. (Inherited from Object.)
Protected methodFinalizeAllows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.)
Public methodGetEnumeratorReturns an enumerator that iterates through the CollectionBase instance. (Inherited from CollectionBase.)
Public methodGetHashCodeServes as the default hash function. (Inherited from Object.)
Public methodGetTypeGets the Type of the current instance. (Inherited from Object.)
Public methodIndexOfDetermines the index of a specified installer in the collection.
Public methodInsertInserts the specified installer into the collection at the specified index.
Protected methodMemberwiseCloneCreates a shallow copy of the current Object. (Inherited from Object.)
Protected methodOnClearPerforms additional custom processes when clearing the contents of the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnClearCompletePerforms additional custom processes after clearing the contents of the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnInsertInfrastructure. Performs additional custom processes before a new installer is inserted into the collection. (Overrides CollectionBase.OnInsert(Int32, Object).)
Protected methodOnInsertCompletePerforms additional custom processes after inserting a new element into the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnRemoveInfrastructure. Performs additional custom processes before an installer is removed from the collection. (Overrides CollectionBase.OnRemove(Int32, Object).)
Protected methodOnRemoveCompletePerforms additional custom processes after removing an element from the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnSetInfrastructure. Performs additional custom processes before an existing installer is set to a new value. (Overrides CollectionBase.OnSet(Int32, Object, Object).)
Protected methodOnSetCompletePerforms additional custom processes after setting a value in the CollectionBase instance. (Inherited from CollectionBase.)
Protected methodOnValidatePerforms additional custom processes when validating a value. (Inherited from CollectionBase.)
Public methodRemoveRemoves the specified Installer from the collection.
Public methodRemoveAtRemoves the element at the specified index of the CollectionBase instance. This method is not overridable. (Inherited from CollectionBase.)
Public methodToStringReturns a string that represents the current object. (Inherited from Object.)
Top

  NameDescription
Explicit interface implemetationPrivate methodICollection.CopyToCopies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyICollection.IsSynchronizedGets a value indicating whether access to the CollectionBase is synchronized (thread safe). (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyICollection.SyncRootGets an object that can be used to synchronize access to the CollectionBase. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.AddAdds an object to the end of the CollectionBase. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.ContainsDetermines whether the CollectionBase contains a specific element. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.IndexOfSearches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.InsertInserts an element into the CollectionBase at the specified index. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyIList.IsFixedSizeGets a value indicating whether the CollectionBase has a fixed size. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyIList.IsReadOnlyGets a value indicating whether the CollectionBase is read-only. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate propertyIList.ItemGets or sets the element at the specified index. (Inherited from CollectionBase.)
Explicit interface implemetationPrivate methodIList.RemoveRemoves the first occurrence of a specific object from the CollectionBase. (Inherited from CollectionBase.)
Top

The InstallerCollection provides the methods and properties that your application needs to manage a collection of Installer objects.

Use any of the following three ways to add installers to the collection:

  • The Add method adds a single installer to the collection.

  • The AddRange methods add multiple installers to the collection.

  • The Insert method and the Item property, which is the InstallerCollection indexer, each add a single installer to the collection at the specified index.

Remove installers through the Remove method. Check whether an installer is in the collection by using the Contains method. Find where an installer is located in the collection by using the IndexOf method.

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.

For examples of the usage of an installer collection, see the AssemblyInstaller and TransactedInstaller classes.

The following example demonstrates the Add method of the InstallerCollection class. This example provides an implementation similar to that of Installutil.exe (Installer Tool). It installs assemblies with the options preceding that particular assembly. 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. If the "/u" or "/uninstall" option is specified, the assemblies are uninstalled. If the "/?" or "/help" option is provided, the help information is displayed to the console.

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.");
   }
}

.NET Framework

Supported in: 4.5.3, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft