Share via


연습: 사용자 지정 작업을 사용하여 설치 시 어셈블리 미리 컴파일

업데이트: 2007년 11월

사용자 지정 작업을사용하여 설치 종료 시 대상 컴퓨터에서 수행될 추가 작업을 지정할 수 있습니다. 예를 들어, 이 연습에서는 설치 중에 어셈블리를 네이티브 코드로 미리 컴파일하기 위해 DLL의 경로 이름을 CustomActionData 속성으로 전달합니다.

참고:

실제 설정이나 버전에 따라서 화면에 나타나는 대화 상자와 메뉴 명령이 도움말의 설명과 다를 수 있습니다. 설정을 변경하려면 도구 메뉴에서 설정 가져오기 및 내보내기를 선택합니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

참고:

다음 지침에서는 Visual Basic 프로젝트를 사용하여 배포 프로젝트를 만드는 방법을 보여 줍니다. 여기에서 설명하는 일반 원칙은 Windows 응용 프로그램 배포를 지원하는 모든 Visual Studio 언어 프로젝트에도 적용됩니다.

사용자 지정 작업 클래스를 만들려면

  1. 파일 메뉴에서 새로 만들기, 프로젝트를 차례로 클릭합니다.

  2. 새 프로젝트 대화 상자의 프로젝트 형식 창에서 Visual Basic 프로젝트를 선택한 다음 템플릿 창에서 클래스 라이브러리를 선택합니다. 이름 상자에 InstallClass를 입력합니다.

  3. 프로젝트 메뉴에서 새 항목 추가를 선택합니다.

  4. 새 항목 추가 대화 상자에서 설치 관리자 클래스를 선택합니다. 이름 상자에 InstallClass.vb를 입력합니다. 추가를 클릭하여 프로젝트에 클래스를 추가합니다.

사용자 지정 작업에 코드를 추가하려면

  1. 솔루션 탐색기 또는 디자인 화면에서 InstallClass.vb를 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭하여 코드 편집기를 엽니다. 모듈 맨 위, Imports System.Configuration.Install 아래에 다음 코드를 추가합니다.

    Imports System.Runtime.InteropServices
    Imports System.Text
    
  2. InstallClass.vb에서 다음 선언을 Public Class InstallClass 아래에 추가합니다.

    Private Declare Function GetCORSystemDirectory Lib "mscoree.dll" _
      (<Runtime.InteropServices.MarshalAs( _
      System.Runtime.InteropServices.UnmanagedType.LPWStr)> _
      ByVal Buffer As System.Text.StringBuilder, _
      ByVal BufferLength As Integer, ByRef Length As Integer) As Integer
    
  3. InstallClass.vb에서 MyBase.New에 대한 End Sub 문 다음에 다음 프로시저를 추가하여 기본 클래스의 Install 프로시저를 재정의합니다.

    <Security.Permissions.SecurityPermission(Security.Permissions.SecurityAction.Demand)> _
    Public Overrides Sub Install(ByVal savedState As _
      System.Collections.IDictionary)
    
       MyBase.Install(savedState)
       Dim Args As String = Me.Context.Parameters.Item("Args")
    
       If Args = "" Then
          Throw New InstallException("No arguments specified")
       End If
    
       ' Gets the path to the Framework directory.
       Dim Path As New System.Text.StringBuilder(1024)
       Dim Size As Integer
       GetCORSystemDirectory(Path, Path.Capacity, Size)
    
       Dim P As Process
       ' Quotes the arguments, in case they have a space in them.
       Dim Si As New ProcessStartInfo(Path.ToString() & "ngen.exe", Chr(34) _
         & Args & Chr(34))
       Si.WindowStyle = ProcessWindowStyle.Hidden
       Try
          P = Process.Start(Si)
          P.WaitForExit()
       Catch e As Exception
          Throw New InstallException(e.Message)
       End Try
    End Sub
    

배포 프로젝트를 추가하려면

  1. 파일 메뉴에서 추가를 선택한 다음 새 프로젝트를 클릭합니다.

  2. 새 프로젝트 추가 대화 상자의 프로젝트 형식 창에서 설치 및 배포 프로젝트를 선택한 다음 템플릿 창에서 설치 프로젝트를 선택합니다. 이름 상자에 InstallClass Installer를 입력합니다.

  3. 속성 창에서 ProductName 속성을 선택한 다음 InstallClass를 입력합니다.

  4. 파일 시스템 편집기에서 응용 프로그램 폴더를 선택합니다. 작업 메뉴에서 추가를 선택한 다음 프로젝트 출력을 클릭합니다.

  5. 프로젝트 출력 그룹 추가 대화 상자에서 InstallClass 프로젝트의 기본 출력을 선택한 다음 확인을 클릭하여 대화 상자를 닫습니다.

사용자 지정 작업을 추가하려면

  1. 솔루션 탐색기에서 InstallClass Installer 프로젝트를 선택합니다. 보기 메뉴에서 편집기를 가리킨 다음 사용자 지정 작업을 클릭합니다.

  2. 사용자 지정 작업 편집기에서 사용자 지정 작업노드를 선택합니다. 작업 메뉴에서 사용자 지정 작업 추가를 선택합니다.

  3. 프로젝트에서 항목 선택 대화 상자에서 응용 프로그램 폴더를 두 번 클릭한 다음 InstallClass의 기본 출력(활성)을 선택합니다. 확인을 클릭하여 InstallClass 사용자 지정 작업을 네 가지 사용자 지정 작업 노드 모두에 추가합니다.

  4. 설치 노드 아래의 InstallClass의 기본 출력(활성) 노드를 선택합니다.

  5. 속성 창에서 CustomActionData 속성을 선택하고 /Args="[TARGETDIR]InstallClass.dll"을 입력합니다. 큰따옴표(")로 묶어야 합니다.

  6. InstallClass의 기본 출력(활성)의 나머지 세 인스턴스 각각에 대해 반복합니다.

  7. 빌드 메뉴에서 InstallClass Installer 빌드를 선택합니다.

개발 컴퓨터에 설치하려면

  • 솔루션 탐색기에서 InstallClass Installer 프로젝트를 선택합니다. 프로젝트 메뉴에서 설치를 선택합니다.

    참고:

    설치 관리자를 실행하려면 해당 컴퓨터에 대한 설치 권한이 있어야 합니다.

다른 컴퓨터에 배포하려면

  1. Windows 탐색기에서 프로젝트 디렉터리로 이동한 다음 빌드된 설치 관리자를 찾습니다. 기본 경로는 \Documents and Settings\yourloginname\My Documents\Visual Studio 2005\Projects\Solution Folder Name\My Notepad Installer\project configuration\My Notepad Installer.msi입니다. 기본 project configuration은 Debug 또는 Release입니다.

  2. 디렉터리에 있는 InstallClass Installer.msi, Setup.exe 및 다른 모든 파일과 하위 디렉터리를 다른 컴퓨터로 복사합니다.

    참고:

    네트워크에 연결되어 있지 않은 컴퓨터에 설치하려면 CD-ROM 등의 미디어에 파일을 복사하십시오.

  3. 대상 컴퓨터에서 Setup.exe 파일을 두 번 클릭하여 설치 관리자를 실행합니다.

    참고:

    설치 관리자를 실행하려면 해당 컴퓨터에 대한 설치 권한이 있어야 합니다.

설치를 테스트하려면

  • %windir%\assembly 어셈블리 폴더(예: C:\Windows\assembly)로 이동하고 InstallClass를 찾습니다. 형식 열에 해당 형식이 네이티브 이미지로 표시되어야 합니다.

응용 프로그램을 제거하려면

  1. Windows 제어판에서 프로그램 추가/제거를 두 번 클릭합니다.

  2. 프로그램 추가/제거 대화 상자에서 InstallClass Installer를 선택하고 제거를 클릭한 다음 확인을 클릭하여 대화 상자를 닫습니다.

    팁:

    개발 컴퓨터에서 제거하려면 프로젝트 메뉴에서 설치 제거를 선택합니다.

참고 항목

개념

MSIL을 네이티브 코드로 컴파일

참조

CustomActionData 속성

네이티브 이미지 생성기(Ngen.exe)

기타 리소스

배포 시 사용자 지정 작업 관리