Installer 클래스

정의

사용자 지정 설치의 기반을 제공합니다.Provides the foundation for custom installations.

public ref class Installer : System::ComponentModel::Component
public class Installer : System.ComponentModel.Component
type Installer = class
    inherit Component
Public Class Installer
Inherits Component
상속
파생

예제

다음 예제에서는 Installer 클래스를 사용 하는 방법을 보여 줍니다.The following example demonstrates the use of the Installer class. Installer에서 상속 되는 클래스를 만듭니다.It creates a class which inherits from Installer. Commit 완료 되 면 Committing 이벤트가 발생 하 고 메시지가 표시 됩니다.When Commit is about to complete, Committing event occurs and a message is displayed. Installer 클래스를 사용 하려면 프로젝트에서 system.web. Install 어셈블리를 참조 해야 합니다.To use the Installer class, you must reference the System.Configuration.Install assembly in your project.

#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의 모든 사용자 지정 설치 관리자에 대 한 기본 클래스입니다.This is the base class for all custom installers in the .NET Framework. 설치 관리자는 컴퓨터에서 애플리케이션을 설치 하는 데 도움이 되는 구성 요소.Installers are components that help install applications on a computer.

Installer를 사용 하려면 몇 가지 단계를 수행 해야 합니다.There are several steps you must follow to use an Installer:

  • Installer 클래스를 상속 합니다.Inherit the Installer class.

  • Install, Commit, RollbackUninstall 메서드를 재정의 합니다.Override the Install, Commit, Rollback, and Uninstall methods.

  • 파생 클래스에 RunInstallerAttribute를 추가 하 고 true로 설정 합니다.Add the RunInstallerAttribute to your derived class and set it to true.

  • 설치할 응용 프로그램을 사용 하 여 어셈블리의 파생된 클래스를 배치 합니다.Put your derived class in the assembly with your application to install.

  • 설치 관리자를 호출 합니다.Invoke the installers. 예를 들어, 설치 관리자를 호출 하 여 InstallUtil.exe를 사용 합니다.For example, use the InstallUtil.exe to invoke the installers.

Installers 속성은 설치 관리자의 컬렉션을 포함 합니다.The Installers property contains a collection of installers. Installer 인스턴스가 설치 관리자 컬렉션의 일부 이면 Parent 속성이 컬렉션을 포함 하는 Installer 인스턴스로 설정 됩니다.If this instance of Installer is part of an installer collection, the Parent property is set to the Installer instance that contains the collection. Installers 컬렉션 사용에 대 한 예제는 AssemblyInstaller 클래스를 참조 하세요.For an example of the use of the Installers collection, see the AssemblyInstaller class.

Installer 클래스의 Install, Commit, RollbackUninstall 메서드는 Installers 속성에 저장 된 설치 관리자의 컬렉션을 통해 이동 하 고 각 설치 관리자의 해당 메서드를 호출 합니다.The Install, Commit, Rollback, and Uninstall methods of the Installer class go through the collection of installers stored in the Installers property, and invokes the corresponding method of each installer.

Install, Commit, RollbackUninstall 메서드는 항상 동일한 Installer 인스턴스에서 호출 되지 않습니다.The Install, Commit, Rollback, and Uninstall methods are not always called on the same Installer instance. 예를 들어 하나 Installer 인스턴스를 설치 하 고 애플리케이션을 커밋하는 동안 사용할 수 및 해당 인스턴스에 대 한 참조 이면 릴리스됩니다.For example, one Installer instance might be used while installing and committing an application, and then the reference to that instance is released. 나중에 새에 대 한 참조를 만들고 애플리케이션 제거 Installer 인스턴스, 즉 합니다 Uninstall 의 다른 인스턴스 메서드는 Installer합니다.Later, uninstalling the application creates a reference to a new Installer instance, meaning that the Uninstall method is called by a different instance of Installer. 이 따라서 파생된 클래스에서 저장 하지 마십시오는 설치 관리자에서 컴퓨터의 상태입니다.For this reason, in your derived class, do not save the state of a computer in an installer. 대신 호출에서 유지 되 고 Install, Commit, RollbackUninstall 메서드에 전달 되는 IDictionary을 사용 합니다.Instead, use an IDictionary that is preserved across calls and passed into your Install, Commit, Rollback, and Uninstall methods.

상태 보호기 IDictionary에 정보를 저장 해야 하는 두 가지 상황이 있습니다.Two situations illustrate the need to save information in the state-saver IDictionary. 첫째, 설치 관리자는 레지스트리 키를 설정 하는 것으로 가정 합니다.First, suppose that your installer sets a registry key. 키의 원래 값을 IDictionary저장 해야 합니다.It should save the key's original value in the IDictionary. 설치, 롤백됩니다. 원래 값을 복원할 수 있습니다.If the installation is rolled back, the original value can be restored. 둘째, 설치 관리자는 기존 파일을 대체 가정 합니다.Second, suppose the installer replaces an existing file. 기존 파일을 임시 디렉터리에 저장 하 고 IDictionary에서 파일의 새 위치 위치를 저장 합니다.Save the existing file in a temporary directory and the location of the new location of the file in the IDictionary. 설치 롤백되면 최신 파일 삭제 되 고 임시 위치에서 원본으로 대체 합니다.If the installation is rolled back, the newer file is deleted and replaced by the original from the temporary location.

Installer.Context 속성 설치에 대 한 정보를 포함 합니다.The Installer.Context property contains information about the installation. 예를 들어 설치용 로그 파일의 위치, Uninstall 메서드에 필요한 정보를 저장할 파일의 위치 및 설치 실행 파일이 실행 될 때 입력 된 명령줄에 대 한 정보를 입력 합니다.For example, information about the location of the log file for the installation, the location of the file to save information required by the Uninstall method, and the command line that was entered when the installation executable was run.

생성자

Installer() Installer 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Installer class.

속성

CanRaiseEvents

구성 요소 이벤트를 발생 시킬 수 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the component can raise an event.

(다음에서 상속됨 Component)
Container

IContainer을 포함하는 Component를 가져옵니다.Gets the IContainer that contains the Component.

(다음에서 상속됨 Component)
Context

현재 설치에 대한 정보를 가져오거나 설정합니다.Gets or sets information about the current installation.

DesignMode

Component가 현재 디자인 모드인지 여부를 나타내는 값을 가져옵니다.Gets a value that indicates whether the Component is currently in design mode.

(다음에서 상속됨 Component)
Events

Component에 연결된 이벤트 처리기의 목록을 가져옵니다.Gets the list of event handlers that are attached to this Component.

(다음에서 상속됨 Component)
HelpText

설치 관리자 컬렉션에 있는 모든 설치 관리자에 대한 도움말 텍스트를 가져옵니다.Gets the help text for all the installers in the installer collection.

Installers

이 설치 관리자에 포함된 설치 관리자 컬렉션을 가져옵니다.Gets the collection of installers that this installer contains.

Parent

이 설치 관리자가 속한 컬렉션을 포함하는 설치 관리자를 가져오거나 설정합니다.Gets or sets the installer containing the collection that this installer belongs to.

Site

ComponentISite를 가져오거나 설정합니다.Gets or sets the ISite of the Component.

(다음에서 상속됨 Component)

메서드

Commit(IDictionary)

파생 클래스에서 재정의되면 설치 트랜잭션을 완료합니다.When overridden in a derived class, completes the install transaction.

CreateObjRef(Type)

원격 개체와 통신 하는 데 프록시를 생성 하는 데 필요한 모든 관련 정보를 포함 하는 개체를 만듭니다.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(다음에서 상속됨 MarshalByRefObject)
Dispose() Component에서 사용한 모든 리소스를 해제합니다.Releases all resources used by the Component. (다음에서 상속됨 Component)
Dispose(Boolean) Component에서 사용한 관리되지 않는 리소스를 해제하고 선택적으로 관리되는 리소스를 해제합니다.Releases the unmanaged resources used by the Component and optionally releases the managed resources. (다음에서 상속됨 Component)
Equals(Object)

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

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

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

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

이 인스턴스의 수명 정책을 제어 하는 현재의 수명 서비스 개체를 검색 합니다.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(다음에서 상속됨 MarshalByRefObject)
GetService(Type)

Component 또는 해당 Container에서 제공하는 서비스를 나타내는 개체를 반환합니다.Returns an object that represents a service provided by the Component or by its Container.

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

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

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

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.Obtains a lifetime service object to control the lifetime policy for this instance.

(다음에서 상속됨 MarshalByRefObject)
Install(IDictionary)

파생 클래스에서 재정의되면 설치를 수행합니다.When overridden in a derived class, performs the installation.

MemberwiseClone()

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

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

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

(다음에서 상속됨 MarshalByRefObject)
OnAfterInstall(IDictionary) AfterInstall 이벤트를 발생시킵니다.Raises the AfterInstall event.
OnAfterRollback(IDictionary) AfterRollback 이벤트를 발생시킵니다.Raises the AfterRollback event.
OnAfterUninstall(IDictionary) AfterUninstall 이벤트를 발생시킵니다.Raises the AfterUninstall event.
OnBeforeInstall(IDictionary) BeforeInstall 이벤트를 발생시킵니다.Raises the BeforeInstall event.
OnBeforeRollback(IDictionary) BeforeRollback 이벤트를 발생시킵니다.Raises the BeforeRollback event.
OnBeforeUninstall(IDictionary) BeforeUninstall 이벤트를 발생시킵니다.Raises the BeforeUninstall event.
OnCommitted(IDictionary) Committed 이벤트를 발생시킵니다.Raises the Committed event.
OnCommitting(IDictionary) Committing 이벤트를 발생시킵니다.Raises the Committing event.
Rollback(IDictionary)

파생 클래스에서 재정의되면 컴퓨터의 설치 전 상태를 복원합니다.When overridden in a derived class, restores the pre-installation state of the computer.

ToString()

Component의 이름이 포함된 String을 반환합니다(있는 경우).Returns a String containing the name of the Component, if any. 이 메서드는 재정의할 수 없습니다.This method should not be overridden.

(다음에서 상속됨 Component)
Uninstall(IDictionary)

파생 클래스에서 재정의되면 설치를 제거합니다.When overridden in a derived class, removes an installation.

이벤트

AfterInstall

Installers 속성의 모든 설치 관리자에 대한 Install(IDictionary) 메서드가 실행된 후에 발생합니다.Occurs after the Install(IDictionary) methods of all the installers in the Installers property have run.

AfterRollback

Installers 속성의 모든 설치 관리자에 대한 설치가 롤백된 후에 발생합니다.Occurs after the installations of all the installers in the Installers property are rolled back.

AfterUninstall

Installers 속성의 모든 설치 관리자가 제거 작업을 수행한 후에 발생합니다.Occurs after all the installers in the Installers property perform their uninstallation operations.

BeforeInstall

설치 관리자 컬렉션에 있는 각 설치 관리자의 Install(IDictionary) 메서드가 실행되기 전에 발생합니다.Occurs before the Install(IDictionary) method of each installer in the installer collection has run.

BeforeRollback

Installers 속성의 설치 관리자가 롤백되기 전에 발생합니다.Occurs before the installers in the Installers property are rolled back.

BeforeUninstall

Installers 속성의 설치 관리자가 제거 작업을 수행하기 전에 발생합니다.Occurs before the installers in the Installers property perform their uninstall operations.

Committed

Installers 속성의 모든 설치 관리자가 설치를 커밋한 후에 발생합니다.Occurs after all the installers in the Installers property have committed their installations.

Committing

Installers 속성의 설치 관리자가 설치를 커밋하기 전에 발생합니다.Occurs before the installers in the Installers property commit their installations.

Disposed

Dispose() 메서드를 호출하여 구성 요소를 삭제할 때 발생합니다.Occurs when the component is disposed by a call to the Dispose() method.

(다음에서 상속됨 Component)

적용 대상

추가 정보