InstallerCollection Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Innehåller en samling installationsprogram som ska köras under en installation.
public ref class InstallerCollection : System::Collections::CollectionBase
public class InstallerCollection : System.Collections.CollectionBase
type InstallerCollection = class
inherit CollectionBase
Public Class InstallerCollection
Inherits CollectionBase
- Arv
Exempel
I följande exempel visas Add metoden för InstallerCollection klassen. Det här exemplet innehåller en implementering som liknar den förInstallutil.exe (installationsverktyg). Den installerar sammansättningar med de alternativ som föregår den specifika sammansättningen. Om ett alternativ inte har angetts för en sammansättning används alternativen för den tidigare sammansättningen om det finns en tidigare sammansättning i listan. Om alternativet "/u" eller "/uninstall" anges avinstalleras sammansättningarna. Om alternativet "/?" eller "/help" tillhandahålls visas hjälpinformationen för konsolen.
#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
Kommentarer
InstallerCollection Innehåller de metoder och egenskaper som programmet behöver för att hantera en samling Installer objekt.
Använd något av följande tre sätt att lägga till installationsprogram i samlingen:
Metoden Add lägger till ett enda installationsprogram i samlingen.
Metoderna AddRange lägger till flera installationsprogram i samlingen.
Metoden Insert och Item[] egenskapen, som är InstallerCollection indexeraren, lägger var och en till ett enda installationsprogram i samlingen vid det angivna indexet.
Ta bort installationsprogram via Remove -metoden. Kontrollera om ett installationsprogram finns i samlingen med hjälp Contains av metoden . Ta reda på var ett installationsprogram finns i samlingen med hjälp IndexOf av metoden .
Installationsprogrammet i en samling körs när installationsprogrammet som innehåller samlingen, enligt vad som anges av Installer.Parent egenskapen, anropar deras Installmetoder , Commit, Rollbackeller Uninstall .
Exempel på användning av en installationssamling finns i klasserna AssemblyInstaller och TransactedInstaller .
Egenskaper
| Name | Description |
|---|---|
| Capacity |
Hämtar eller anger antalet element som CollectionBase kan innehålla. (Ärvd från CollectionBase) |
| Count |
Hämtar antalet element som finns i instansen CollectionBase . Den här egenskapen kan inte åsidosättas. (Ärvd från CollectionBase) |
| InnerList |
Hämtar en ArrayList lista med element i instansen CollectionBase . (Ärvd från CollectionBase) |
| Item[Int32] |
Hämtar eller anger ett installationsprogram vid det angivna indexet. |
| List |
Hämtar en IList lista med element i instansen CollectionBase . (Ärvd från CollectionBase) |
Metoder
| Name | Description |
|---|---|
| Add(Installer) |
Lägger till det angivna installationsprogrammet i den här samlingen installationsprogram. |
| AddRange(Installer[]) |
Lägger till den angivna matrisen med installationsprogram i den här samlingen. |
| AddRange(InstallerCollection) |
Lägger till den angivna samlingen med installationsprogram i den här samlingen. |
| Clear() |
Tar bort alla objekt från instansen CollectionBase . Den här metoden kan inte åsidosättas. (Ärvd från CollectionBase) |
| Contains(Installer) |
Avgör om det angivna installationsprogrammet ingår i samlingen. |
| CopyTo(Installer[], Int32) |
Kopierar objekten från samlingen till en matris med början vid det angivna indexet. |
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetEnumerator() |
Returnerar en uppräkning som itererar genom instansen CollectionBase . (Ärvd från CollectionBase) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IndexOf(Installer) |
Avgör indexet för ett angivet installationsprogram i samlingen. |
| Insert(Int32, Installer) |
Infogar det angivna installationsprogrammet i samlingen vid det angivna indexet. |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnClear() |
Utför ytterligare anpassade processer när du rensar innehållet i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnClearComplete() |
Utför ytterligare anpassade processer när innehållet i instansen har rensats CollectionBase . (Ärvd från CollectionBase) |
| OnInsert(Int32, Object) |
Utför ytterligare anpassade processer innan ett nytt installationsprogram infogas i samlingen. |
| OnInsertComplete(Int32, Object) |
Utför ytterligare anpassade processer när du har infogat ett nytt element i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnRemove(Int32, Object) |
Utför ytterligare anpassade processer innan ett installationsprogram tas bort från samlingen. |
| OnRemoveComplete(Int32, Object) |
Utför ytterligare anpassade processer när du har tagit bort ett element från instansen CollectionBase . (Ärvd från CollectionBase) |
| OnSet(Int32, Object, Object) |
Utför ytterligare anpassade processer innan ett befintligt installationsprogram anges till ett nytt värde. |
| OnSetComplete(Int32, Object, Object) |
Utför ytterligare anpassade processer när du har angett ett värde i instansen CollectionBase . (Ärvd från CollectionBase) |
| OnValidate(Object) |
Utför ytterligare anpassade processer när du verifierar ett värde. (Ärvd från CollectionBase) |
| Remove(Installer) |
Tar bort den angivna Installer från samlingen. |
| RemoveAt(Int32) |
Tar bort elementet vid det angivna indexet för instansen CollectionBase . Den här metoden kan inte åsidosättas. (Ärvd från CollectionBase) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Kopierar hela CollectionBase till en kompatibel endimensionell Array, med början vid det angivna indexet för målmatrisen. (Ärvd från CollectionBase) |
| ICollection.IsSynchronized |
Hämtar ett värde som anger om åtkomsten CollectionBase till är synkroniserad (trådsäker). (Ärvd från CollectionBase) |
| ICollection.SyncRoot |
Hämtar ett objekt som kan användas för att synkronisera åtkomsten CollectionBasetill . (Ärvd från CollectionBase) |
| IList.Add(Object) |
Lägger till ett objekt i slutet av CollectionBase. (Ärvd från CollectionBase) |
| IList.Contains(Object) |
Avgör om innehåller CollectionBase ett specifikt element. (Ärvd från CollectionBase) |
| IList.IndexOf(Object) |
Söker efter den angivna Object och returnerar det nollbaserade indexet för den första förekomsten i hela CollectionBase. (Ärvd från CollectionBase) |
| IList.Insert(Int32, Object) |
Infogar ett element i CollectionBase det angivna indexet. (Ärvd från CollectionBase) |
| IList.IsFixedSize |
Hämtar ett värde som anger om har CollectionBase en fast storlek. (Ärvd från CollectionBase) |
| IList.IsReadOnly |
Hämtar ett värde som anger om är CollectionBase skrivskyddat. (Ärvd från CollectionBase) |
| IList.Item[Int32] |
Hämtar eller anger elementet vid det angivna indexet. (Ärvd från CollectionBase) |
| IList.Remove(Object) |
Tar bort den första förekomsten av ett specifikt objekt från CollectionBase. (Ärvd från CollectionBase) |
Tilläggsmetoder
| Name | Description |
|---|---|
| AsParallel(IEnumerable) |
Möjliggör parallellisering av en fråga. |
| AsQueryable(IEnumerable) |
Konverterar en IEnumerable till en IQueryable. |
| Cast<TResult>(IEnumerable) |
Omvandlar elementen i en IEnumerable till den angivna typen. |
| OfType<TResult>(IEnumerable) |
Filtrerar elementen i en IEnumerable baserat på en angiven typ. |