InstallerCollection 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
설치 중에 실행할 설치 관리자 컬렉션을 포함합니다.
public ref class InstallerCollection : System::Collections::CollectionBase
public class InstallerCollection : System.Collections.CollectionBase
type InstallerCollection = class
inherit CollectionBase
Public Class InstallerCollection
Inherits CollectionBase
- 상속
예제
다음 예제에서는 클래스의 Add 메서드를 보여 줍니다 InstallerCollection . 이 예에서는 구현을 비슷합니다 Installutil.exe (설치 관리자 도구)합니다. 해당 특정 어셈블리의 이전 옵션을 사용 하 여 어셈블리를 설치 합니다. 어셈블리에 대한 옵션을 지정하지 않으면 목록에 이전 어셈블리가 있는 경우 이전 어셈블리의 옵션이 사용됩니다. "/u" 또는 "/uninstall" 옵션을 지정하면 어셈블리가 제거됩니다. "/?" 또는 "/help" 옵션이 제공되면 도움말 정보가 콘솔에 표시됩니다.
#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 개체입니다.
다음 세 가지 방법 중 어떤 방법으로든 컬렉션에 설치 관리자를 추가합니다.
메서드는 Add 컬렉션에 단일 설치 관리자를 추가합니다.
메서드는 AddRange 컬렉션에 여러 설치 관리자를 추가합니다.
Insert 인덱서인 메서드와 Item[] 속성은 InstallerCollection 각각 지정된 인덱스에서 컬렉션에 단일 설치 관리자를 추가합니다.
메서드를 통해 설치 관리자를 제거합니다 Remove . 메서드를 사용하여 Contains 설치 관리자가 컬렉션에 있는지 확인합니다. 메서드를 사용하여 컬렉션에 설치 관리자가 있는 위치를 찾습니다 IndexOf .
컬렉션의 설치 관리자는 속성에 지정된 Installer.Parent 대로 컬렉션이 포함된 설치 관리자가 , , CommitRollback또는 Uninstall 메서드를 호출할 Install때 실행됩니다.
설치 관리자 컬렉션의 사용 예제는 및 TransactedInstaller 클래스를 AssemblyInstaller 참조하세요.
속성
Capacity |
CollectionBase에 포함될 수 있는 요소의 수를 가져오거나 설정합니다. (다음에서 상속됨 CollectionBase) |
Count |
CollectionBase 인스턴스에 포함된 요소 수를 가져옵니다. 이 속성은 재정의할 수 없습니다. (다음에서 상속됨 CollectionBase) |
InnerList |
ArrayList 인스턴스의 요소 목록을 포함하는 CollectionBase를 가져옵니다. (다음에서 상속됨 CollectionBase) |
Item[Int32] |
지정된 인덱스에 있는 설치 관리자를 가져오거나 설정합니다. |
List |
IList 인스턴스의 요소 목록을 포함하는 CollectionBase를 가져옵니다. (다음에서 상속됨 CollectionBase) |
메서드
Add(Installer) |
이 설치 관리자 컬렉션에 지정된 설치 관리자를 추가합니다. |
AddRange(Installer[]) |
이 컬렉션에 지정된 설치 관리자 배열을 추가합니다. |
AddRange(InstallerCollection) |
지정된 설치 관리자 컬렉션을 이 컬렉션에 추가합니다. |
Clear() |
CollectionBase 인스턴스에서 개체를 모두 제거합니다. 이 메서드는 재정의할 수 없습니다. (다음에서 상속됨 CollectionBase) |
Contains(Installer) |
지정된 설치 관리자가 컬렉션에 포함되어 있는지 여부를 확인합니다. |
CopyTo(Installer[], Int32) |
지정된 인덱스에서 시작하여 컬렉션에서 배열로 항목을 복사합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetEnumerator() |
CollectionBase 인스턴스를 반복하는 열거자를 반환합니다. (다음에서 상속됨 CollectionBase) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
IndexOf(Installer) |
컬렉션에서 지정된 설치 관리자의 인덱스를 확인합니다. |
Insert(Int32, Installer) |
컬렉션의 지정된 인덱스에 지정된 설치 관리자를 삽입합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
OnClear() |
CollectionBase 인스턴스의 콘텐츠를 지운 후에 추가로 사용자 지정 프로세스를 수행합니다. (다음에서 상속됨 CollectionBase) |
OnClearComplete() |
CollectionBase 인스턴스의 내용을 지운 후에 추가로 사용자 지정 프로세스를 수행합니다. (다음에서 상속됨 CollectionBase) |
OnInsert(Int32, Object) |
컬렉션에 새 설치 관리자를 삽입하기 전에 추가 사용자 지정 프로세스를 수행합니다. |
OnInsertComplete(Int32, Object) |
CollectionBase 인스턴스에 새 요소를 삽입한 후에 추가로 사용자 지정 프로세스를 수행합니다. (다음에서 상속됨 CollectionBase) |
OnRemove(Int32, Object) |
컬렉션에서 설치 관리자를 제거하기 전에 추가 사용자 지정 프로세스를 수행합니다. |
OnRemoveComplete(Int32, Object) |
CollectionBase 인스턴스에서 요소를 제거한 후에 추가로 사용자 지정 프로세스를 수행합니다. (다음에서 상속됨 CollectionBase) |
OnSet(Int32, Object, Object) |
기존 설치 관리자를 새 값으로 설정하기 전에 추가 사용자 지정 프로세스를 수행합니다. |
OnSetComplete(Int32, Object, Object) |
CollectionBase 인스턴스에 값을 설정한 후에 추가로 사용자 지정 프로세스를 수행합니다. (다음에서 상속됨 CollectionBase) |
OnValidate(Object) |
값의 유효성을 검사할 때 추가로 사용자 지정 프로세스를 수행합니다. (다음에서 상속됨 CollectionBase) |
Remove(Installer) |
지정된 Installer를 컬렉션에서 제거합니다. |
RemoveAt(Int32) |
CollectionBase 인스턴스의 지정한 인덱스에서 요소를 제거합니다. 이 메서드는 재정의할 수 없습니다. (다음에서 상속됨 CollectionBase) |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
확장 메서드
Cast<TResult>(IEnumerable) |
IEnumerable의 요소를 지정된 형식으로 캐스팅합니다. |
OfType<TResult>(IEnumerable) |
지정된 형식에 따라 IEnumerable의 요소를 필터링합니다. |
AsParallel(IEnumerable) |
쿼리를 병렬화할 수 있도록 합니다. |
AsQueryable(IEnumerable) |
IEnumerable을 IQueryable로 변환합니다. |
적용 대상
추가 정보
.NET