다음을 통해 공유


Installer 클래스

정의

사용자 지정 설치의 기반을 제공합니다.

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 .

  • , , CommitRollbackUninstall 메서드를 재정의Install합니다.

  • RunInstallerAttribute 파생 클래스에 를 추가하고 로 설정합니다true.

  • 설치할 애플리케이션을 사용 하 여 어셈블리의 파생된 클래스를 배치 합니다.

  • 설치 관리자를 호출합니다. 예를 들어 InstallUtil.exe 사용하여 설치 관리자를 호출합니다.

속성에는 Installers 설치 관리자 컬렉션이 포함되어 있습니다. 이 인스턴스 Installer 가 설치 관리자 컬렉션의 일부인 Parent 경우 속성이 컬렉션을 포함하는 인스턴스로 Installer 설정됩니다. 컬렉션 사용에 대한 예제는 Installers 클래스를 참조하세요 AssemblyInstaller .

클래스의 , , 및 Uninstall 메서드는 Install속성에 Installers 저장된 설치 관리자 컬렉션을 살펴보고 각 설치 관리자의 해당 메서드를 호출Rollback합니다. CommitInstaller

Install, Commit, RollbackUninstall 메서드가 항상 동일한 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

ComponentISite를 가져오거나 설정합니다.

(다음에서 상속됨 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)

적용 대상

추가 정보