Exportar (0) Imprimir
Expandir todo

InstallerCollection (Clase)

Actualización: noviembre 2007

Contiene una colección de instaladores que se ejecutan durante una instalación.

Espacio de nombres:  System.Configuration.Install
Ensamblado:  System.Configuration.Install (en System.Configuration.Install.dll)

public class InstallerCollection : CollectionBase
public class InstallerCollection extends CollectionBase
public class InstallerCollection extends CollectionBase

InstallerCollection proporciona los métodos y propiedades que la aplicación necesita para administrar una colección de objetos Installer.

Siga uno de estos tres procedimientos para agregar instaladores a la colección:

  • El método Add agrega un solo instalador a la colección.

  • El método AddRange agrega varios instaladores a la colección.

  • El método Insert y la propiedad Item, que corresponden al indizador InstallerCollection, agregan (cada uno) un solo instalador a la colección en el índice especificado.

Hay que quitar los instaladores mediante el método Remove. Compruebe si hay algún instalador en la colección mediante el método Contains. Busque la ubicación de un instalador en la colección mediante el método IndexOf.

En una colección, los instaladores se ejecutan cuando el instalador que contiene la colección, tal como especifica la propiedad Installer.Parent, llama a sus métodos Install, Commit, Rollback o Uninstall.

Para obtener ejemplos acerca del uso de una colección de instaladores, vea las clases AssemblyInstaller y TransactedInstaller.

En el siguiente ejemplo se muestra el método Add de la clase InstallerCollection. En este ejemplo se proporciona una implementación similar a la de Herramienta Installer (Installutil.exe). Instala ensamblados con las opciones que preceden al ensamblado en cuestión. Si no se especifica una opción para un ensamblado, se utilizan las opciones del ensamblado anterior si hay alguno en la lista. Si se especifica la opción "/u" o "/uninstall", se desinstalan los ensamblados. Si se especifica la opción "/?" o "/help", se muestra la información de ayuda en la consola.

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


import System.*;
import System.ComponentModel.*;
import System.Collections.*;
import System.Configuration.Install.*;
import System.IO.*;

public class InstallerCollectionAdd
{
    public static void main(String[] args)
    {
        ArrayList options = new ArrayList();
        String myOption;
        boolean toUnInstall = false;
        boolean 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(String.class.ToType())));

                    // Add the instance of 'AssemblyInstaller'
                    //to the 'TransactedInstaller'.
                    myTransactedInstaller.get_Installers().
                        Add(myAssemblyInstaller);
                } 
            }
            // If user requested help or didn't provide any assemblies to 
            //install then print help message.
            if (toPrintHelp 
                || myTransactedInstaller.get_Installers().get_Count() == 0) {
                    PrintHelpMessage();
                    return;
            }
            // Create an instance of 'InstallContext'
            //with the options specified.
            myInstallContext = new InstallContext("Install.log",
                (String[])(options.ToArray(String.class.ToType())));
            myTransactedInstaller.set_Context(myInstallContext);

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

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


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

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft