Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês
Esta documentação foi arquivada e não está sendo atualizada.

Classe TransactedInstaller

Define um instalador que completamente tiver êxito ou falha e deixa o computador num estado inicial.

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

public class TransactedInstaller : Installer

Para executar o instaladores em uma transação, adicioná-los para o Installers propriedade isso TransactedInstaller instância.

O exemplo a seguir demonstra o TransactedInstaller, Install e Uninstall métodos para o TransactedInstaller classe.

Este exemplo fornece uma implementação semelhante de Instalador Ferramenta (Installutil.exe). Ele instala módulos (assemblies) com as opções precedente esse assembly específico.Se uma opção não for especificada para um assembly, opções do conjunto anterior são usadas se houver um conjunto anterior na lista.Se a "/ u" ou "/desinstalar" opção for especificada, os assemblies são desinstalados.Se a "/?" ou "/Help" opção é fornecida, as informações de ajuda serão exibidas no console.

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


ArrayList myOptions = 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' 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(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 a instance of 'InstallContext' with the options specified.
    myInstallContext = new InstallContext("Install.log",
        (String[])myOptions.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("\nException raised : {0}", e.get_Message());
}


System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Configuration.Install.Installer
        System.Configuration.Install.TransactedInstaller

Quaisquer membros static (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

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

o.NET Framework e.NET Compact Framework não oferecem suporte a todas as versões de cada plataforma. Para obter uma lista de versões suportadas, consulte Requisitos de sistema do .NET framework.

.NET Framework

Compatível com: 3.5, 3.0, 2.0, 1.1, 1.0
Mostrar: