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.Configuration를 참조 해야 합니다 **. **프로젝트에 어셈블리를 설치 합니다.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 및 메서드를 재정의 Rollback Uninstall 합니다.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.

Install Commit Rollback 클래스의,, 및 Uninstall 메서드는 Installer 속성에 저장 된 설치 관리자의 컬렉션을 통해 이동 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 Rollback 및 메서드는 Uninstall 항상 동일한 인스턴스에서 호출 되지 않습니다 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. 대신 IDictionary 호출에서 유지 되 고,, 및 메서드에 전달 되는를 사용 Install Commit Rollback Uninstall 합니다.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)

적용 대상

추가 정보