Installer 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
사용자 지정 설치의 기반을 제공합니다.
public ref class Installer : System::ComponentModel::Component
public class Installer : System.ComponentModel.Component
type Installer = class
inherit Component
Public Class Installer
Inherits Component
- 상속
- 파생
예제
다음 예제에서는 클래스의 사용을 보여 줍니다 Installer . 에서 Installer상속되는 클래스를 만듭니다. Commit 가 완료 Committing 되려고 하면 이벤트가 발생하고 메시지가 표시됩니다. 클래스를 Installer 사용하려면 프로젝트에서 System.Configuration.Install 어셈블리를 참조해야 합니다.
#using <System.dll>
#using <System.Configuration.Install.dll>
using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::Configuration::Install;
// Set 'RunInstaller' attribute to true.
[RunInstaller(true)]
ref class MyInstallerClass: public Installer
{
private:
// Event handler for 'Committing' event.
void MyInstaller_Committing( Object^ sender, InstallEventArgs^ e )
{
Console::WriteLine( "" );
Console::WriteLine( "Committing Event occurred." );
Console::WriteLine( "" );
}
// Event handler for 'Committed' event.
void MyInstaller_Committed( Object^ sender, InstallEventArgs^ e )
{
Console::WriteLine( "" );
Console::WriteLine( "Committed Event occurred." );
Console::WriteLine( "" );
}
public:
MyInstallerClass()
{
// Attach the 'Committed' event.
this->Committed += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committed );
// Attach the 'Committing' event.
this->Committing += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committing );
}
// Override the 'Install' method.
virtual void Install( IDictionary^ savedState ) override
{
Installer::Install( savedState );
}
// Override the 'Commit' method.
virtual void Commit( IDictionary^ savedState ) override
{
Installer::Commit( savedState );
}
// Override the 'Rollback' method.
virtual void Rollback( IDictionary^ savedState ) override
{
Installer::Rollback( savedState );
}
};
int main()
{
Console::WriteLine( "Usage : installutil.exe Installer.exe " );
}
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;
// Set 'RunInstaller' attribute to true.
[RunInstaller(true)]
public class MyInstallerClass: Installer
{
public MyInstallerClass() :base()
{
// Attach the 'Committed' event.
this.Committed += new InstallEventHandler(MyInstaller_Committed);
// Attach the 'Committing' event.
this.Committing += new InstallEventHandler(MyInstaller_Committing);
}
// Event handler for 'Committing' event.
private void MyInstaller_Committing(object sender, InstallEventArgs e)
{
Console.WriteLine("");
Console.WriteLine("Committing Event occurred.");
Console.WriteLine("");
}
// Event handler for 'Committed' event.
private void MyInstaller_Committed(object sender, InstallEventArgs e)
{
Console.WriteLine("");
Console.WriteLine("Committed Event occurred.");
Console.WriteLine("");
}
// Override the 'Install' method.
public override void Install(IDictionary savedState)
{
base.Install(savedState);
}
// Override the 'Commit' method.
public override void Commit(IDictionary savedState)
{
base.Commit(savedState);
}
// Override the 'Rollback' method.
public override void Rollback(IDictionary savedState)
{
base.Rollback(savedState);
}
public static void Main()
{
Console.WriteLine("Usage : installutil.exe Installer.exe ");
}
}
Imports System.Collections
Imports System.ComponentModel
Imports System.Configuration.Install
' Set 'RunInstaller' attribute to true.
<RunInstaller(True)> _
Public Class MyInstallerClass
Inherits Installer
Public Sub New()
MyBase.New()
' Attach the 'Committed' event.
AddHandler Me.Committed, AddressOf MyInstaller_Committed
' Attach the 'Committing' event.
AddHandler Me.Committing, AddressOf MyInstaller_Committing
End Sub
' Event handler for 'Committing' event.
Private Sub MyInstaller_Committing(ByVal sender As Object, _
ByVal e As InstallEventArgs)
Console.WriteLine("")
Console.WriteLine("Committing Event occurred.")
Console.WriteLine("")
End Sub
' Event handler for 'Committed' event.
Private Sub MyInstaller_Committed(ByVal sender As Object, _
ByVal e As InstallEventArgs)
Console.WriteLine("")
Console.WriteLine("Committed Event occurred.")
Console.WriteLine("")
End Sub
' Override the 'Install' method.
Public Overrides Sub Install(ByVal savedState As IDictionary)
MyBase.Install(savedState)
End Sub
' Override the 'Commit' method.
Public Overrides Sub Commit(ByVal savedState As IDictionary)
MyBase.Commit(savedState)
End Sub
' Override the 'Rollback' method.
Public Overrides Sub Rollback(ByVal savedState As IDictionary)
MyBase.Rollback(savedState)
End Sub
Public Shared Sub Main()
Console.WriteLine("Usage : installutil.exe Installer.exe ")
End Sub
End Class
설명
.NET Framework의 모든 사용자 지정 설치 관리자에 대한 기본 클래스입니다. 설치 관리자는 컴퓨터에서 애플리케이션을 설치 하는 데 도움이 되는 구성 요소.
를 사용 Installer하려면 몇 가지 단계를 수행해야 합니다.
클래스를 상속합니다 Installer .
RunInstallerAttribute 파생 클래스에 를 추가하고 로 설정합니다
true
.설치할 애플리케이션을 사용 하 여 어셈블리의 파생된 클래스를 배치 합니다.
설치 관리자를 호출합니다. 예를 들어 InstallUtil.exe 사용하여 설치 관리자를 호출합니다.
속성에는 Installers 설치 관리자 컬렉션이 포함되어 있습니다. 이 인스턴스 Installer 가 설치 관리자 컬렉션의 일부인 Parent 경우 속성이 컬렉션을 포함하는 인스턴스로 Installer 설정됩니다. 컬렉션 사용에 대한 예제는 Installers 클래스를 참조하세요 AssemblyInstaller .
클래스의 , , 및 Uninstall 메서드는 Install속성에 Installers 저장된 설치 관리자 컬렉션을 살펴보고 각 설치 관리자의 해당 메서드를 호출Rollback합니다. CommitInstaller
Install, Commit, Rollback및 Uninstall 메서드가 항상 동일한 Installer 인스턴스에서 호출되는 것은 아닙니다. 예를 들어 하나 Installer 인스턴스를 설치 하 고 애플리케이션을 커밋하는 동안 사용할 수 및 해당 인스턴스에 대 한 참조 이면 릴리스됩니다. 나중에 새에 대 한 참조를 만들고 애플리케이션 제거 Installer 인스턴스, 즉 합니다 Uninstall 의 다른 인스턴스 메서드는 Installer합니다. 이러한 이유로 파생 클래스에서 컴퓨터의 상태를 설치 관리자에 저장하지 마세요. 대신 호출 간에 유지되고 , , Commit및 메서드에 Install전달되는 을 사용합니다IDictionary.UninstallRollback
두 가지 상황에서는 상태 보호기 에 정보를 저장해야 하는 필요성을 보여 줍니다 IDictionary. 먼저 설치 관리자가 레지스트리 키를 설정한다고 가정합니다. 키의 원래 값을 에 IDictionary저장해야 합니다. 설치가 롤백되면 원래 값을 복원할 수 있습니다. 둘째, 설치 관리자가 기존 파일을 대체한다고 가정합니다. 기존 파일을 임시 디렉터리에 저장하고 에 있는 파일 IDictionary의 새 위치 위치를 저장합니다. 설치가 롤백되면 최신 파일이 삭제되고 임시 위치에서 원본으로 대체됩니다.
Installer.Context 속성 설치에 대 한 정보를 포함 합니다. 예를 들어 설치할 로그 파일의 위치, 메서드에 필요한 Uninstall 정보를 저장할 파일의 위치 및 설치 실행 파일을 실행할 때 입력한 명령줄에 대한 정보입니다.
생성자
Installer() |
Installer 클래스의 새 인스턴스를 초기화합니다. |
속성
CanRaiseEvents |
구성 요소가 이벤트를 발생시킬 수 있는지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
Container |
IContainer을 포함하는 Component를 가져옵니다. (다음에서 상속됨 Component) |
Context |
현재 설치에 대한 정보를 가져오거나 설정합니다. |
DesignMode |
Component가 현재 디자인 모드인지 여부를 나타내는 값을 가져옵니다. (다음에서 상속됨 Component) |
Events |
이 Component에 연결된 이벤트 처리기의 목록을 가져옵니다. (다음에서 상속됨 Component) |
HelpText |
설치 관리자 컬렉션에 있는 모든 설치 관리자에 대한 도움말 텍스트를 가져옵니다. |
Installers |
이 설치 관리자에 포함된 설치 관리자 컬렉션을 가져옵니다. |
Parent |
이 설치 관리자가 속한 컬렉션을 포함하는 설치 관리자를 가져오거나 설정합니다. |
Site |
Component의 ISite를 가져오거나 설정합니다. (다음에서 상속됨 Component) |
메서드
Commit(IDictionary) |
파생 클래스에서 재정의할 때 설치 트랜잭션을 완료합니다. |
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 이벤트를 발생시킵니다. |
OnAfterRollback(IDictionary) |
AfterRollback 이벤트를 발생시킵니다. |
OnAfterUninstall(IDictionary) |
AfterUninstall 이벤트를 발생시킵니다. |
OnBeforeInstall(IDictionary) |
BeforeInstall 이벤트를 발생시킵니다. |
OnBeforeRollback(IDictionary) |
BeforeRollback 이벤트를 발생시킵니다. |
OnBeforeUninstall(IDictionary) |
BeforeUninstall 이벤트를 발생시킵니다. |
OnCommitted(IDictionary) |
Committed 이벤트를 발생시킵니다. |
OnCommitting(IDictionary) |
Committing 이벤트를 발생시킵니다. |
Rollback(IDictionary) |
파생 클래스에서 재정의할 때 컴퓨터의 설치 전 상태를 복원합니다. |
ToString() |
Component의 이름이 포함된 String을 반환합니다(있는 경우). 이 메서드는 재정의할 수 없습니다. (다음에서 상속됨 Component) |
Uninstall(IDictionary) |
파생 클래스에서 재정의할 때 설치를 제거합니다. |
이벤트
AfterInstall |
Installers 속성의 모든 설치 관리자에 대한 Install(IDictionary) 메서드가 실행된 후에 발생합니다. |
AfterRollback |
Installers 속성의 모든 설치 관리자에 대한 설치가 롤백된 후에 발생합니다. |
AfterUninstall |
Installers 속성의 모든 설치 관리자가 제거 작업을 수행한 후에 발생합니다. |
BeforeInstall |
설치 관리자 컬렉션에 있는 각 설치 관리자의 Install(IDictionary) 메서드가 실행되기 전에 발생합니다. |
BeforeRollback |
Installers 속성의 설치 관리자가 롤백되기 전에 발생합니다. |
BeforeUninstall |
Installers 속성의 설치 관리자가 제거 작업을 수행하기 전에 발생합니다. |
Committed |
Installers 속성의 모든 설치 관리자가 설치를 커밋한 후에 발생합니다. |
Committing |
Installers 속성의 설치 관리자가 설치를 커밋하기 전에 발생합니다. |
Disposed |
Dispose() 메서드를 호출하여 구성 요소를 삭제할 때 발생합니다. (다음에서 상속됨 Component) |
적용 대상
추가 정보
.NET