TransactedInstaller 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
성공하거나 실패한 설치 관리자를 정의하고 컴퓨터를 원래 상태로 둡니다.
public ref class TransactedInstaller : System::Configuration::Install::Installer
public class TransactedInstaller : System.Configuration.Install.Installer
type TransactedInstaller = class
inherit Installer
Public Class TransactedInstaller
Inherits Installer
- 상속
예제
다음 예제는 TransactedInstaller, Install 및 Uninstall 의 메서드는 TransactedInstaller 클래스입니다.
이 예에서는 구현을 비슷합니다 Installutil.exe (설치 관리자 도구)합니다. 해당 특정 어셈블리의 이전 옵션을 사용 하 여 어셈블리를 설치 합니다. 어셈블리에 대 한 옵션을 지정 하지 않으면, 이전 어셈블리의 옵션 목록에서 이전 어셈블리가 없는 경우 사용 됩니다. 경우는 "/ u" 또는 "/ 제거" 옵션을 지정 하면 어셈블리를 제거 합니다. "/?" 또는 "/help" 옵션이 제공되면 도움말 정보가 콘솔에 표시됩니다.
array<String^>^ args = Environment::GetCommandLineArgs();
ArrayList^ myOptions = gcnew ArrayList;
String^ myOption;
bool toUnInstall = false;
bool toPrintHelp = false;
TransactedInstaller^ myTransactedInstaller = gcnew TransactedInstaller;
AssemblyInstaller^ myAssemblyInstaller;
InstallContext^ myInstallContext;
try
{
for ( int i = 1; 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 0;
}
// Create a instance of 'AssemblyInstaller' that installs the given assembly.
myAssemblyInstaller =
gcnew AssemblyInstaller( args[ i ],
(array<String^>^)( myOptions->ToArray( String::typeid ) ) );
// 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 0;
}
// Create a instance of 'InstallContext' with the options specified.
myInstallContext =
gcnew InstallContext( "Install.log",
(array<String^>^)( myOptions->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( "\nException raised : {0}", e->Message );
}
using System;
using System.ComponentModel;
using System.Collections;
using System.Configuration.Install;
using System.IO;
public class TransactedInstaller_Example
{
public static void Main(String[] args)
{
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);
}
}
public static void PrintHelpMessage()
{
Console.WriteLine("Usage : TransactedInstaller [/u | /uninstall] [option [...]] assembly" +
"[[option [...]] assembly] [...]]");
Console.WriteLine("TransactedInstaller executes the installers in each of" +
" the given assembly. If /u or /uninstall option" +
" is given it uninstalls the assemblies.");
}
}
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' an 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(ControlChars.Newline + _
"Error : {0} - Assembly file doesn't exist.", args(i))
Return
End If
' Create a 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 a 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(ControlChars.Newline + "Exception raised : {0}", e.Message)
End Try
설명
설치 관리자를 트랜잭션에서 실행 하려면 추가할 합니다 Installers 속성의 TransactedInstaller 인스턴스.
생성자
TransactedInstaller() |
TransactedInstaller 클래스의 새 인스턴스를 초기화합니다. |
속성
CanRaiseEvents |
구성 요소가 이벤트를 발생시킬 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
Container |
IContainer을 포함하는 Component를 가져옵니다. (다음에서 상속됨 Component) |
Context |
현재 설치에 대한 정보를 가져오거나 설정합니다. (다음에서 상속됨 Installer) |
DesignMode |
Component가 현재 디자인 모드인지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
Events |
이 Component에 연결된 이벤트 처리기의 목록을 가져옵니다. (다음에서 상속됨 Component) |
HelpText |
설치 관리자 컬렉션에 있는 모든 설치 관리자에 대한 도움말 텍스트를 가져옵니다. (다음에서 상속됨 Installer) |
Installers |
이 설치 관리자에 포함된 설치 관리자 컬렉션을 가져옵니다. (다음에서 상속됨 Installer) |
Parent |
이 설치 관리자가 속한 컬렉션을 포함하는 설치 관리자를 가져오거나 설정합니다. (다음에서 상속됨 Installer) |
Site |
Component의 ISite를 가져오거나 설정합니다. (다음에서 상속됨 Component) |
메서드
Commit(IDictionary) |
파생 클래스에서 재정의할 때 설치 트랜잭션을 완료합니다. (다음에서 상속됨 Installer) |
CreateObjRef(Type) |
원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
Dispose() |
Component에서 사용하는 모든 리소스를 해제합니다. (다음에서 상속됨 Component) |
Dispose(Boolean) |
Component에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다. (다음에서 상속됨 Component) |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다. (다음에서 상속됨 MarshalByRefObject) |
GetService(Type) |
Component 또는 해당 Container에서 제공하는 서비스를 나타내는 개체를 반환합니다. (다음에서 상속됨 Component) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
InitializeLifetimeService() |
사용되지 않음.
이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다. (다음에서 상속됨 MarshalByRefObject) |
Install(IDictionary) |
설치를 수행합니다. |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
MemberwiseClone(Boolean) |
현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다. (다음에서 상속됨 MarshalByRefObject) |
OnAfterInstall(IDictionary) |
AfterInstall 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
OnAfterRollback(IDictionary) |
AfterRollback 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
OnAfterUninstall(IDictionary) |
AfterUninstall 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
OnBeforeInstall(IDictionary) |
BeforeInstall 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
OnBeforeRollback(IDictionary) |
BeforeRollback 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
OnBeforeUninstall(IDictionary) |
BeforeUninstall 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
OnCommitted(IDictionary) |
Committed 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
OnCommitting(IDictionary) |
Committing 이벤트를 발생시킵니다. (다음에서 상속됨 Installer) |
Rollback(IDictionary) |
파생 클래스에서 재정의할 때 컴퓨터의 설치 전 상태를 복원합니다. (다음에서 상속됨 Installer) |
ToString() |
Component의 이름이 포함된 String을 반환합니다(있는 경우). 이 메서드는 재정의할 수 없습니다. (다음에서 상속됨 Component) |
Uninstall(IDictionary) |
설치를 제거합니다. |
이벤트
AfterInstall |
Installers 속성의 모든 설치 관리자에 대한 Install(IDictionary) 메서드가 실행된 후에 발생합니다. (다음에서 상속됨 Installer) |
AfterRollback |
Installers 속성의 모든 설치 관리자에 대한 설치가 롤백된 후에 발생합니다. (다음에서 상속됨 Installer) |
AfterUninstall |
Installers 속성의 모든 설치 관리자가 제거 작업을 수행한 후에 발생합니다. (다음에서 상속됨 Installer) |
BeforeInstall |
설치 관리자 컬렉션에 있는 각 설치 관리자의 Install(IDictionary) 메서드가 실행되기 전에 발생합니다. (다음에서 상속됨 Installer) |
BeforeRollback |
Installers 속성의 설치 관리자가 롤백되기 전에 발생합니다. (다음에서 상속됨 Installer) |
BeforeUninstall |
Installers 속성의 설치 관리자가 제거 작업을 수행하기 전에 발생합니다. (다음에서 상속됨 Installer) |
Committed |
Installers 속성의 모든 설치 관리자가 설치를 커밋한 후에 발생합니다. (다음에서 상속됨 Installer) |
Committing |
Installers 속성의 설치 관리자가 설치를 커밋하기 전에 발생합니다. (다음에서 상속됨 Installer) |
Disposed |
Dispose() 메서드를 호출하여 구성 요소를 삭제할 때 발생합니다. (다음에서 상속됨 Component) |
적용 대상
.NET