InstallerCollection 클래스

정의

설치 중에 실행할 설치 관리자 컬렉션을 포함합니다.Contains a collection of installers to be run during an installation.

public ref class InstallerCollection : System::Collections::CollectionBase
public class InstallerCollection : System.Collections.CollectionBase
type InstallerCollection = class
    inherit CollectionBase
Public Class InstallerCollection
Inherits CollectionBase
상속
InstallerCollection

예제

다음 예제는 Add 메서드는 InstallerCollection 클래스입니다.The following example demonstrates the Add method of the InstallerCollection class. 이 예에서는 구현을 비슷합니다 Installutil.exe (설치 관리자 도구)합니다.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. 경우는 "/ u" 또는 "/ 제거" 옵션을 지정 하면 어셈블리를 제거 합니다.If the "/u" or "/uninstall" option is specified, the assemblies are uninstalled. 경우는 "/?"If the "/?" 또는 "/help" 옵션을 도움말 정보를 콘솔에 표시 됩니다.or "/help" option is provided, the help information is displayed to the 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

설명

합니다 InstallerCollection 메서드 및 속성의 컬렉션을 관리 하는 애플리케이션 제공 Installer 개체입니다.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:

  • Add 메서드는 단일 설치 관리자 컬렉션에 추가 합니다.The Add method adds a single installer to the collection.

  • AddRange 메서드 컬렉션에 여러 설치 관리자를 추가 합니다.The AddRange methods add multiple installers to the collection.

  • Insert 메서드 및 Item[Int32] 속성을 InstallerCollection 인덱서 단일 설치 관리자를 컬렉션에서 지정된 된 인덱스에 추가할 각 합니다.The Insert method and the Item[Int32] property, which is the InstallerCollection indexer, each add a single installer to the collection at the specified index.

설치 관리자를 통해 제거 된 Remove 메서드.Remove installers through the Remove method. 사용 하 여 설치 관리자가 컬렉션에 있는지 여부를 확인 합니다 Contains 메서드.Check whether an installer is in the collection by using the Contains method. 사용 하 여 설치 관리자 컬렉션에 있는 위치를 찾기는 IndexOf 메서드.Find where an installer is located in the collection by using the IndexOf method.

경우 컬렉션에 있는 설치 관리자 실행 됩니다 설치 관리자에 지정 된 대로 컬렉션을 포함 하는 Installer.Parent 속성을 호출 해당 InstallCommit, Rollback, 또는 Uninstall 메서드.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.

설치 관리자 컬렉션의 사용법의 예 참조는 AssemblyInstallerTransactedInstaller 클래스입니다.For examples of the usage of an installer collection, see the AssemblyInstaller and TransactedInstaller classes.

속성

Capacity

CollectionBase에 포함될 수 있는 요소의 수를 가져오거나 설정합니다.Gets or sets the number of elements that the CollectionBase can contain.

(다음에서 상속됨 CollectionBase)
Count

CollectionBase 인스턴스에 포함된 요소의 수를 가져옵니다.Gets the number of elements contained in the CollectionBase instance. 이 속성은 재정의할 수 없습니다.This property cannot be overridden.

(다음에서 상속됨 CollectionBase)
InnerList

ArrayList 인스턴스의 요소 목록을 포함하는 CollectionBase를 가져옵니다.Gets an ArrayList containing the list of elements in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
Item[Int32]

지정된 인덱스에 있는 설치 관리자를 가져오거나 설정합니다.Gets or sets an installer at the specified index.

List

IList 인스턴스의 요소 목록을 포함하는 CollectionBase를 가져옵니다.Gets an IList containing the list of elements in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)

메서드

Add(Installer)

이 설치 관리자 컬렉션에 지정된 설치 관리자를 추가합니다.Adds the specified installer to this collection of installers.

AddRange(Installer[])

이 컬렉션에 지정된 설치 관리자 배열을 추가합니다.Adds the specified array of installers to this collection.

AddRange(InstallerCollection)

지정된 설치 관리자 컬렉션을 이 컬렉션에 추가합니다.Adds the specified collection of installers to this collection.

Clear()

CollectionBase 인스턴스에서 개체를 모두 제거합니다.Removes all objects from the CollectionBase instance. 이 메서드는 재정의할 수 없습니다.This method cannot be overridden.

(다음에서 상속됨 CollectionBase)
Contains(Installer)

지정된 설치 관리자가 컬렉션에 포함되어 있는지 여부를 확인합니다.Determines whether the specified installer is included in collection.

CopyTo(Installer[], Int32)

지정된 인덱스에서 시작하여 컬렉션에서 배열로 항목을 복사합니다.Copies the items from the collection to an array, beginning at the specified index.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetEnumerator()

CollectionBase 인스턴스를 반복하는 열거자를 반환합니다.Returns an enumerator that iterates through the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
IndexOf(Installer)

컬렉션에서 지정된 설치 관리자의 인덱스를 확인합니다.Determines the index of a specified installer in the collection.

Insert(Int32, Installer)

컬렉션의 지정된 인덱스에 지정된 설치 관리자를 삽입합니다.Inserts the specified installer into the collection at the specified index.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
OnClear()

CollectionBase 인스턴스의 콘텐츠를 지운 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes when clearing the contents of the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnClearComplete()

CollectionBase 인스턴스의 내용을 지운 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after clearing the contents of the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnInsert(Int32, Object)

컬렉션에 새 설치 관리자를 삽입하기 전에 추가 사용자 지정 프로세스를 수행합니다.Performs additional custom processes before a new installer is inserted into the collection.

OnInsertComplete(Int32, Object)

CollectionBase 인스턴스에 새 요소를 삽입한 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after inserting a new element into the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnRemove(Int32, Object)

컬렉션에서 설치 관리자를 제거하기 전에 추가 사용자 지정 프로세스를 수행합니다.Performs additional custom processes before an installer is removed from the collection.

OnRemoveComplete(Int32, Object)

CollectionBase 인스턴스에서 요소를 제거한 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after removing an element from the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnSet(Int32, Object, Object)

기존 설치 관리자를 새 값으로 설정하기 전에 추가 사용자 지정 프로세스를 수행합니다.Performs additional custom processes before an existing installer is set to a new value.

OnSetComplete(Int32, Object, Object)

CollectionBase 인스턴스에 값을 설정한 후에 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes after setting a value in the CollectionBase instance.

(다음에서 상속됨 CollectionBase)
OnValidate(Object)

값의 유효성을 검사할 때 추가로 사용자 지정 프로세스를 수행합니다.Performs additional custom processes when validating a value.

(다음에서 상속됨 CollectionBase)
Remove(Installer)

지정된 Installer를 컬렉션에서 제거합니다.Removes the specified Installer from the collection.

RemoveAt(Int32)

CollectionBase 인스턴스의 지정한 인덱스에서 요소를 제거합니다.Removes the element at the specified index of the CollectionBase instance. 이 메서드는 재정의할 수 없습니다.This method is not overridable.

(다음에서 상속됨 CollectionBase)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

ICollection.CopyTo(Array, Int32)

대상 배열의 지정된 인덱스에서 시작하여 전체 CollectionBase을 호환되는 1차원 Array에 복사합니다.Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array.

(다음에서 상속됨 CollectionBase)
ICollection.IsSynchronized

CollectionBase에 대한 액세스가 동기화되어 스레드로부터 안전하게 보호되는지를 나타내는 값을 가져옵니다.Gets a value indicating whether access to the CollectionBase is synchronized (thread safe).

(다음에서 상속됨 CollectionBase)
ICollection.SyncRoot

CollectionBase에 대한 액세스를 동기화하는 데 사용할 수 있는 개체를 가져옵니다.Gets an object that can be used to synchronize access to the CollectionBase.

(다음에서 상속됨 CollectionBase)
IList.Add(Object)

개체를 CollectionBase의 끝 부분에 추가합니다.Adds an object to the end of the CollectionBase.

(다음에서 상속됨 CollectionBase)
IList.Contains(Object)

CollectionBase에 특정 요소가 들어 있는지 여부를 확인합니다.Determines whether the CollectionBase contains a specific element.

(다음에서 상속됨 CollectionBase)
IList.IndexOf(Object)

지정한 Object를 검색하고, 전체 CollectionBase 내에서 처음 나오는 0부터 시작하는 인덱스를 반환합니다.Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase.

(다음에서 상속됨 CollectionBase)
IList.Insert(Int32, Object)

CollectionBase의 지정된 인덱스에 요소를 삽입합니다.Inserts an element into the CollectionBase at the specified index.

(다음에서 상속됨 CollectionBase)
IList.IsFixedSize

CollectionBase의 크기가 고정되어 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the CollectionBase has a fixed size.

(다음에서 상속됨 CollectionBase)
IList.IsReadOnly

CollectionBase가 읽기 전용인지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the CollectionBase is read-only.

(다음에서 상속됨 CollectionBase)
IList.Item[Int32]

지정한 인덱스에 있는 요소를 가져오거나 설정합니다.Gets or sets the element at the specified index.

(다음에서 상속됨 CollectionBase)
IList.Remove(Object)

CollectionBase에서 맨 처음 발견되는 특정 개체를 제거합니다.Removes the first occurrence of a specific object from the CollectionBase.

(다음에서 상속됨 CollectionBase)

확장 메서드

Cast<TResult>(IEnumerable)

IEnumerable의 요소를 지정된 형식으로 캐스팅합니다.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

지정된 형식에 따라 IEnumerable의 요소를 필터링합니다.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

쿼리를 병렬화할 수 있도록 합니다.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerableIQueryable로 변환합니다.Converts an IEnumerable to an IQueryable.

적용 대상

추가 정보