InstallerCollection Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Contém uma coleção de instaladores a ser executada durante a instalação.
public ref class InstallerCollection : System::Collections::CollectionBase
public class InstallerCollection : System.Collections.CollectionBase
type InstallerCollection = class
inherit CollectionBase
Public Class InstallerCollection
Inherits CollectionBase
- Herança
Exemplos
O exemplo a seguir demonstra o Add método da InstallerCollection classe . Este exemplo fornece uma implementação semelhante à de Installutil.exe (Ferramenta do Instalador). Ele instala assemblies com as opções anteriores a esse assembly específico. Se uma opção não for especificada para um assembly, as opções do assembly anterior serão tomadas se houver um assembly anterior na lista. Se a opção "/u" ou "/uninstall" for especificada, os assemblies serão desinstalados. Se a opção "/?" ou "/help" for fornecida, as informações de ajuda serão exibidas no 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
Comentários
O InstallerCollection fornece os métodos e as propriedades que seu aplicativo precisa para gerenciar uma coleção de Installer objetos.
Use qualquer uma das três maneiras a seguir para adicionar instaladores à coleção:
O Add método adiciona um único instalador à coleção.
Os AddRange métodos adicionam vários instaladores à coleção.
O Insert método e a Item[] propriedade , que é o InstallerCollection indexador, adicionam um único instalador à coleção no índice especificado.
Remova os instaladores por meio do Remove método . Verifique se um instalador está na coleção usando o Contains método . Localize onde um instalador está localizado na coleção usando o IndexOf método .
Os instaladores em uma coleção são executados quando o instalador que contém a coleção, conforme especificado pela Installer.Parent propriedade, chama seus Installmétodos , Commit, Rollbackou Uninstall .
Para obter exemplos do uso de uma coleção de instalador, consulte as AssemblyInstaller classes e TransactedInstaller .
Propriedades
Capacity |
Obtém ou define o número de elementos que o CollectionBase pode conter. (Herdado de CollectionBase) |
Count |
Obtém o número de elementos contidos na instância de CollectionBase. Essa propriedade não pode ser substituída. (Herdado de CollectionBase) |
InnerList |
Obtém uma ArrayList que contém a lista de elementos na instância de CollectionBase. (Herdado de CollectionBase) |
Item[Int32] |
Obtém ou define um instalador no índice especificado. |
List |
Obtém uma IList que contém a lista de elementos na instância de CollectionBase. (Herdado de CollectionBase) |
Métodos
Add(Installer) |
Adiciona o instalador especificado a esta coleção de instaladores. |
AddRange(Installer[]) |
Adiciona a matriz especificada de instaladores para essa coleção. |
AddRange(InstallerCollection) |
Adiciona a coleção de instaladores especificada a essa coleção. |
Clear() |
Remove todos os objetos da instância CollectionBase. Esse método não pode ser substituído. (Herdado de CollectionBase) |
Contains(Installer) |
Determina se o instalador especificado está incluído na coleção. |
CopyTo(Installer[], Int32) |
Copia os itens da coleção para uma matriz, começando no índice especificado. |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GetEnumerator() |
Retorna um enumerador que itera pela instância CollectionBase. (Herdado de CollectionBase) |
GetHashCode() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
IndexOf(Installer) |
Determina o índice de um instalador especificado na coleção. |
Insert(Int32, Installer) |
Insere o instalador especificado na coleção no índice especificado. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
OnClear() |
Executa processos personalizados adicionais ao limpar o conteúdo da instância CollectionBase. (Herdado de CollectionBase) |
OnClearComplete() |
Executa processos adicionais personalizados após limpar o conteúdo da instância CollectionBase. (Herdado de CollectionBase) |
OnInsert(Int32, Object) |
Executa processos personalizados adicionais antes que um novo instalador seja inserido na coleção. |
OnInsertComplete(Int32, Object) |
Executa processos personalizados adicionais após inserir um novo elemento na instância de CollectionBase. (Herdado de CollectionBase) |
OnRemove(Int32, Object) |
Executa processos personalizados adicionais antes que um instalador seja removido na coleção. |
OnRemoveComplete(Int32, Object) |
Executa processos personalizados adicionais após remover um elemento da instância de CollectionBase. (Herdado de CollectionBase) |
OnSet(Int32, Object, Object) |
Executa processos personalizados adicionais antes que um instalador existente seja definido como um novo valor. |
OnSetComplete(Int32, Object, Object) |
Executa processos personalizados adicionais após configurar um valor na instância de CollectionBase. (Herdado de CollectionBase) |
OnValidate(Object) |
Executa processos personalizados adicionais ao validar um valor. (Herdado de CollectionBase) |
Remove(Installer) |
Remove o Installer especificado da coleção. |
RemoveAt(Int32) |
Remove o elemento no índice especificado da instância CollectionBase. Este método não é substituível. (Herdado de CollectionBase) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
ICollection.CopyTo(Array, Int32) |
Copia todo o CollectionBase em um Array unidimensional compatível, começando no índice especificado da matriz de destino. (Herdado de CollectionBase) |
ICollection.IsSynchronized |
Obtém um valor que indica se o acesso à CollectionBase é sincronizado (thread-safe). (Herdado de CollectionBase) |
ICollection.SyncRoot |
Obtém um objeto que pode ser usado para sincronizar o acesso ao CollectionBase. (Herdado de CollectionBase) |
IList.Add(Object) |
Adiciona um objeto ao final do CollectionBase. (Herdado de CollectionBase) |
IList.Contains(Object) |
Determina se o CollectionBase contém um elemento específico. (Herdado de CollectionBase) |
IList.IndexOf(Object) |
Pesquisa o Object especificado e retorna o índice de base zero da primeira ocorrência dentro de todo o CollectionBase. (Herdado de CollectionBase) |
IList.Insert(Int32, Object) |
Insere um elemento no CollectionBase, no índice especificado. (Herdado de CollectionBase) |
IList.IsFixedSize |
Obtém um valor que indica se o CollectionBase tem um tamanho fixo. (Herdado de CollectionBase) |
IList.IsReadOnly |
Obtém um valor que indica se o CollectionBase é somente leitura. (Herdado de CollectionBase) |
IList.Item[Int32] |
Obtém ou define o elemento no índice especificado. (Herdado de CollectionBase) |
IList.Remove(Object) |
Remove a primeira ocorrência de um objeto específico do CollectionBase. (Herdado de CollectionBase) |
Métodos de Extensão
Cast<TResult>(IEnumerable) |
Converte os elementos de um IEnumerable para o tipo especificado. |
OfType<TResult>(IEnumerable) |
Filtra os elementos de um IEnumerable com base em um tipo especificado. |
AsParallel(IEnumerable) |
Habilita a paralelização de uma consulta. |
AsQueryable(IEnumerable) |
Converte um IEnumerable em um IQueryable. |