연습: Windows Installer 파일을 사용하여 문서 수준 사용자 지정 배포(2003 시스템)
업데이트: 2007년 11월
적용 대상 |
---|
이 항목의 정보는 지정된 Visual Studio Tools for Office 프로젝트 및 Microsoft Office 버전에만 적용됩니다. 프로젝트 형식
Microsoft Office 버전
자세한 내용은 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오. |
이 연습에서는 문서 수준 사용자 지정을 배포하는 데 사용할 수 있는 Microsoft Windows Installer 파일(.msi)을 만드는 방법을 보여 줍니다. 문서 수준 사용자 지정에 대한 자세한 내용은 문서 수준 사용자 지정 아키텍처를 참조하십시오.
이 연습에서는 다음 작업을 수행합니다.
Windows Installer 파일을 빌드하는 데 사용할 수 있는 설치 프로젝트 만들기
Windows Installer 파일을 통해 Visual Studio Tools for Office 솔루션을 설치하도록 설치 프로젝트 수정
Windows Installer 파일을 통해 Visual Studio Tools for Office 솔루션 문서에 포함된 응용 프로그램 매니페스트를 편집하도록 설치 프로젝트에 한 단계 추가
이 연습에서는 대상 컴퓨터에 이미 Visual Studio Tools for Office 솔루션 실행을 위한 필수 구성 요소가 설치되어 있다고 가정합니다. 빌드하는 Windows Installer 파일에서는 이러한 필수 구성 요소를 확인하거나 설치하지 않습니다. 필수 구성 요소를 설치하는 방법에 대한 자세한 내용은 Deploying Visual Studio 2005 Tools for Office Second Edition Solutions Using Windows Installer를 참조하십시오. Visual Studio Tools for Office 솔루션 실행을 위한 필수 구성 요소에 대한 자세한 내용은 방법: Office 솔루션을 실행하도록 최종 사용자 컴퓨터 준비(2003 시스템)를 참조하십시오.
참고: |
---|
솔루션을 실행하려면 먼저 최종 사용자의 보안 정책에서 Visual Studio Tools for Office 솔루션의 어셈블리에 완전 신뢰를 부여해야 합니다. 이 연습에서 빌드하는 Windows Installer 파일은 솔루션을 실행하는 데 필요한 보안 정책을 배포하지 않습니다. 사용자 지정 작업을 추가하여 사용자 지정 어셈블리에 신뢰를 부여하는 방법에 대한 자세한 내용은 Deploying Visual Studio 2005 Tools for Office Second Edition Solutions Using Windows Installer를 참조하십시오. Visual Studio Tools for Office 솔루션의 보안에 대한 자세한 내용은 Office 솔루션 실행을 위한 보안 요구 사항(2003 시스템) 및 Office 솔루션에서 최선의 보안 방법(2003 시스템)을 참조하십시오. 최종 사용자의 컴퓨터에서 보안 정책을 설정하는 데 대한 자세한 내용은 보안 정책 배포를 참조하십시오. |
사전 요구 사항
이 연습을 완료하려면 다음 구성 요소가 필요합니다.
Visual Studio Tools for Office(Visual Studio 2008 Professional 및 Visual Studio Team System의 선택적 구성 요소)
Microsoft Office Word 2003 또는 Microsoft Office Excel 2003
프로젝트 만들기
이 단계에서는 Excel 통합 문서 프로젝트를 만듭니다. 기존의 Word 또는 Excel 솔루션으로 연습을 수행하려면 "설치 프로젝트 만들기"라는 제목의 연습을 시작하고, 코드 예제와 지침에서 프로젝트 이름을 ExcelDeployment에서 자신의 프로젝트 이름으로 바꿉니다.
새 프로젝트를 만들려면
Office 2003의 프로젝트 템플릿을 사용하여 ExcelDeployment라는 Excel 통합 문서 프로젝트를 만듭니다.
마법사에서 새 문서 만들기를 선택합니다. 자세한 내용은 방법: Visual Studio Tools for Office 프로젝트 만들기를 참조하십시오.
Visual Studio의 디자이너에 새 Excel 통합 문서가 열리고 ExcelDeployment 프로젝트가 솔루션 탐색기에 추가됩니다.
통합 문서에 숨겨진 코드 추가
문서를 열 때 솔루션이 올바르게 작동하는지 확인하는 데 사용할 수 있는 코드를 프로젝트에 추가해야 합니다. 이 연습에서는 통합 문서의 Startup 이벤트 처리기에 메시지 상자를 하나 추가합니다.
초기화 이벤트에 메시지 상자를 추가하려면
솔루션 탐색기에서 ThisWorkbook.vb 또는 ThisWorkbook.cs를 마우스 오른쪽 단추로 클릭한 다음 바로 가기 메뉴에서 코드 보기를 클릭합니다.
초기화하는 동안 메시지 상자를 표시하도록 아래의 코드를 ThisWorkbook 클래스 내의 Startup 이벤트 처리기에 추가합니다.
Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Startup MessageBox.Show("The workbook is deployed successfully.") End Sub
private void ThisWorkbook_Startup(object sender, System.EventArgs e) { MessageBox.Show("The workbook is deployed successfully."); }
F5 키를 눌러 프로젝트를 실행합니다.
Excel이 시작되고 메시지 상자가 표시됩니다.
메시지 상자를 닫습니다.
Excel을 종료합니다.
설치 프로젝트 만들기
설치 프로젝트는 솔루션의 Windows Installer를 만들기 위해 컴파일할 수 있는 파일과 코드를 제공합니다. 자세한 내용은 설치 프로젝트를 참조하십시오.
솔루션의 설치 프로젝트를 만들려면
솔루션 탐색기에서 솔루션 노드를 마우스 오른쪽 단추로 클릭합니다.
바로 가기 메뉴에서 추가를 가리키고 새 프로젝트를 클릭합니다.
새 프로젝트 추가 대화 상자가 나타납니다.
프로젝트 형식 창에서 기타 프로젝트 형식을 확장하고 설치 및 배포를 선택합니다.
템플릿 창에서 설치 프로젝트를 선택합니다.
프로젝트 이름을 ExcelSetup으로 지정합니다.
확인을 클릭합니다.
솔루션 탐색기에 설치 프로젝트가 나타납니다. 기본적으로 이 설치 프로젝트를 사용하여 빌드할 Windows Installer 파일에는 최종 사용자가 솔루션의 설치 위치를 지정할 수 있는 대화 상자가 포함되어 있습니다. 자세한 내용은 설치 폴더 사용자 인터페이스 대화 상자를 참조하십시오.
설치 프로젝트에 통합 문서 및 솔루션 어셈블리 추가
ExcelDeployment 프로젝트의 기본 출력은 통합 문서와 솔루션 어셈블리로 구성되어 있습니다. 이러한 구성 요소를 설치 프로젝트에 추가합니다.
설치 프로젝트에 문서 및 어셈블리를 추가하려면
솔루션 탐색기에서 ExcelSetup 프로젝트 노드를 마우스 오른쪽 단추로 클릭합니다.
바로 가기 메뉴에서 보기를 가리킨 다음 파일 시스템을 클릭합니다.
왼쪽 창에서 응용 프로그램 폴더를 마우스 오른쪽 단추로 클릭합니다.
바로 가기 메뉴에서 추가를 가리킨 다음 프로젝트 출력을 클릭합니다.
프로젝트 상자에서 ExcelDeployment를 선택합니다.
출력 형식 목록에서 기본 출력을 선택합니다.
확인을 클릭합니다.
오른쪽 창에는 프로젝트 출력과 종속성이 나타납니다.
솔루션 탐색기의 ExcelSetup 프로젝트 노드에서 발견된 종속성을 확장합니다.
Microsoft .NET Framework를 제외한 모든 종속성을 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 제외를 클릭합니다.
사용자 지정 작업 프로젝트 만들기
사용자 지정 작업은 Windows Installer 기능입니다. 이를 통해 설치 프로세스가 끝날 때 코드를 실행하여 설치 도중 수행할 수 없는 작업을 수행할 수 있습니다. 자세한 내용은 사용자 지정 작업을 참조하십시오.
사용자 지정 작업 프로젝트를 만들려면
솔루션 탐색기에서 솔루션 노드를 마우스 오른쪽 단추로 클릭합니다.
바로 가기 메뉴에서 추가를 가리킨 다음 새 프로젝트를 클릭합니다.
새 프로젝트 추가 대화 상자가 나타납니다.
프로젝트 형식 창에서 프로그래밍 언어에 대한 노드를 확장하고 Windows를 선택합니다.
템플릿 창에서 클래스 라이브러리를 선택합니다.
프로젝트 이름을 ExcelCustomAction으로 지정합니다.
확인을 클릭합니다.
솔루션 탐색기에 새 프로젝트가 나타납니다.
솔루션 탐색기에서 ExcelCustomAction 프로젝트에 있는 Class1.vb 또는 Class1.cs를 마우스 오른쪽 단추로 클릭한 다음 삭제를 클릭합니다. 이 연습에서는 이 파일이 필요하지 않습니다.
응용 프로그램 매니페스트를 편집하는 사용자 지정 작업 만들기
이 연습의 앞에서 F5 키를 눌러 프로젝트를 실행했을 때 빌드 프로세스에서는 어셈블리의 상대 경로를 가리키도록 통합 문서에 포함된 응용 프로그램 매니페스트를 편집했습니다. 설치 후 통합 문서와 어셈블리가 동일한 폴더에 남아 있으면 포함된 응용 프로그램 매니페스트를 수정할 필요가 없으며 이 단원을 무시해도 됩니다. 그러나 솔루션 설치 후 통합 문서를 다른 폴더로 이동할 수 있게 하려는 경우 어셈블리의 전체 경로를 가리키도록 응용 프로그램 매니페스트를 편집해야 합니다.
설치 프로세스가 끝난 후에 사용자 지정 작업을 실행하여 Visual Studio Tools for Office 솔루션 문서에 포함되어 있는 응용 프로그램 매니페스트를 업데이트해야 합니다. 이는 설치하는 동안 사용자가 위치를 지정할 때까지는 솔루션 어셈블리의 위치를 알 수 없기 때문입니다. ServerDocument 클래스를 사용하여 포함된 응용 프로그램 매니페스트를 편집합니다. 설치 프로젝트에서 ServerDocument 클래스를 사용하려면 사용자 지정 작업 프로젝트 내의 Installer 클래스에 코드를 추가합니다.
응용 프로그램 매니페스트를 편집하는 사용자 지정 작업을 만들려면
솔루션 탐색기에서 ExcelCustomAction 프로젝트를 마우스 오른쪽 단추로 클릭합니다.
바로 가기 메뉴에서 추가를 가리킨 다음 새 항목을 클릭합니다.
새 항목 추가 대화 상자가 나타납니다.
설치 관리자 클래스를 선택하고 클래스 이름을 ManifestEditor로 지정합니다.
Microsoft.VisualStudio.Tools.Applications.Runtime 어셈블리에 대한 참조를 ExcelCustomAction 프로젝트에 추가합니다.
솔루션 탐색기에서 ManifestEditor.cs 또는 ManifestEditor.vb 파일을 마우스 오른쪽 단추로 클릭한 다음 코드 보기를 클릭합니다.
코드 파일의 맨 위에 다음 Imports 또는 using 문을 추가합니다.
Imports Microsoft.VisualStudio.Tools.Applications.Runtime
using Microsoft.VisualStudio.Tools.Applications.Runtime;
다음 코드를 ManifestEditor 클래스에 복사합니다.
이 코드에서는 사용자 지정 설치 작업을 수행하는 데 사용되는 Install 메서드를 재정의합니다. 또한 사용자가 지정한 설치 위치를 AssemblyPath 속성으로 설정합니다. 사용자 지정 설치 경로와 문서 및 어셈블리의 이름은 Parameters 속성에서 얻을 수 있습니다.
Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary) UpdateApplicationManifest() MyBase.Install(stateSaver) End Sub Private Sub UpdateApplicationManifest() ' Get the parameters passed to the task. Dim targetDir As String = Me.Context.Parameters("targetdir") Dim documentName As String = Me.Context.Parameters("documentname") Dim assemblyName As String = Me.Context.Parameters("assemblyname") ' Get the application manifest from the document. Dim documentPath As String = System.IO.Path.Combine(targetDir, documentname) Dim serverDocument1 As ServerDocument = New ServerDocument(documentPath, _ System.IO.FileAccess.ReadWrite) Try Dim appManifest1 As AppManifest = serverDocument1.AppManifest Dim assemblyPath As String = System.IO.Path.Combine(targetDir, assemblyName) appManifest1.Dependency.AssemblyPath = assemblyPath serverDocument1.Save() Finally If Not serverDocument1 Is Nothing Then serverDocument1.Close() End If End Try End Sub
// Override the Install method to update the customization location // in the application manifest. public override void Install(System.Collections.IDictionary stateSaver) { UpdateApplicationManifest(); base.Install(stateSaver); } // Update the application manifest according to the the install location. private void UpdateApplicationManifest() { // Get the parameters passed to the task. string targetDir = this.Context.Parameters["targetdir"]; string documentName = this.Context.Parameters["documentname"]; string assemblyName = this.Context.Parameters["assemblyname"]; // Get the application manifest from the document. string documentPath = System.IO.Path.Combine(targetDir, documentName); ServerDocument serverDocument1 = new ServerDocument(documentPath, System.IO.FileAccess.ReadWrite); try { AppManifest appManifest1 = serverDocument1.AppManifest; string assemblyPath = System.IO.Path.Combine(targetDir, assemblyName); appManifest1.Dependency.AssemblyPath = assemblyPath; serverDocument1.Save(); } finally { if (serverDocument1 != null) { serverDocument1.Close(); } } }
솔루션 탐색기에서 ExcelCustomAction 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 빌드를 클릭합니다.
설치 프로젝트에 사용자 지정 작업 추가
이제 Windows Installer 파일로 응용 프로그램 매니페스트를 편집하는 사용자 지정 작업을 실행할 수 있습니다. 이를 위해 ExcelCustomAction 프로젝트의 기본 출력을 설치 프로젝트에 추가합니다.
설치 프로젝트에 사용자 지정 작업 프로젝트의 기본 출력을 추가하려면
솔루션 탐색기에서 ExcelSetup 프로젝트 노드를 마우스 오른쪽 단추로 클릭합니다.
바로 가기 메뉴에서 보기를 가리킨 다음 사용자 지정 작업을 클릭합니다.
사용자 지정 작업 편집기에서 설치 노드를 마우스 오른쪽 단추로 클릭한 다음 사용자 지정 작업 추가를 클릭합니다.
찾는 위치 상자에서 응용 프로그램 폴더를 선택한 다음 출력 추가를 클릭합니다.
프로젝트 상자에서 ExcelCustomAction을 선택합니다.
출력 형식 목록에서 기본 출력을 선택한 다음 확인을 클릭합니다.
설치 프로젝트에 대한 기본 출력 목록에 **ExcelCustomAction의 기본 출력(활성)**이 추가되었는지 확인한 다음 확인을 클릭합니다.
사용자 지정 작업 편집기에서 설치를 확장합니다.
**ExcelCustomAction의 기본 출력(활성)**을 마우스 오른쪽 단추로 클릭한 다음 속성 창을 클릭합니다.
속성 창에서 CustomActionData 속성을 다음 문자열로 설정합니다.
/targetdir="[TARGETDIR]\" /documentname="ExcelDeployment.xls" /assemblyname="ExcelDeployment.dll"
CustomActionData 속성에 대한 내용은 CustomActionData 속성을 참조하십시오.
솔루션 탐색기에서 ExcelSetup 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 빌드를 클릭합니다.
프로젝트 테스트
이제 프로젝트를 테스트하여 개발 컴퓨터에서 Windows Installer 파일을 실행할 때 솔루션이 설치되는지 확인할 수 있습니다.
프로젝트를 테스트하려면
솔루션 탐색기에서 ExcelSetup 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 실행을 클릭합니다.
설치 마법사의 지시를 따르고 개발 컴퓨터의 설치 폴더를 지정합니다.
설치 폴더에서 Excel 통합 문서를 엽니다.
메시지 상자가 표시되는지 확인합니다.
참고 항목
작업
연습: 배포 매니페스트를 사용하여 문서 수준 사용자 지정 배포(2003 시스템)