Windows Installer를 사용하여 Office 솔루션 배포

Windows Installer 파일 (.msi)을 만드는 방법에 대 한 정보를 Office 2013 또는 Office 2010 를 사용 하 여 솔루션 Visual Studio 2012.

사용 하 여 Visual Studio 2012 Windows Installer 파일을 만들어 배포할 수는 Office 2013 또는 Office 2010 최종 사용자의 컴퓨터에 관리자 액세스 권한이 필요로 하는 솔루션입니다.예를 들어, 솔루션은 컴퓨터의 모든 사용자에 대해 한 번만 설치 하려면 이러한 파일을 사용할 수 있습니다.컴퓨터의 각 사용자에 대 한 솔루션을 별도로 설치 해야 하지만 ClickOnce를 사용 하 여 Office 솔루션을 배포할 수도 있습니다.

ClickOnce 배포 및 Windows Installer 배포 간의 차이의 전체 목록을 보려면 배포 전략 선택.

항목 내용

  • 샘플 다운로드

  • Get InstallShield 제한 된 에디션

  • 솔루션에 신뢰를 부여 하는 방법을 결정 합니다.

  • 설치 프로젝트 만들기

  • 프로젝트 출력 추가

  • 배포 및 응용 프로그램 매니페스트에 추가 합니다.

  • 종속 구성 요소를 필수 구성 요소로 구성 합니다.

  • 솔루션은 사용자의 컴퓨터에서 설치 위치를 지정 합니다.

  • Configure an add-in

  • 문서 수준 사용자 지정을 구성 합니다.

  • 설치 프로젝트 빌드

ClickOnce를 사용 하 여 Office 솔루션을 배포 하는 방법에 대 한 자세한 내용은 ClickOnce를 사용하여 Office 솔루션 배포.

사용 하 여 Windows Installer 파일을 만드는 방법에 대 한 내용은 Visual Studio 2010을 참조 하십시오 배포 된 Office 솔루션을 사용 하 여 Windows Installer에 대 한 Visual Studio 2010 도구.

샘플 다운로드

이 항목에서는 다음 다운로드 가능한 샘플을 의미합니다.

샘플

설명

ExcelAddIn

32 비트 또는 64 비트 버전의 Office 실행 되는 Excel 추가 컴퓨터에 설치할 수 있는 기능입니다.

ExcelWorkbook

32 비트 또는 64 비트 버전의 Office 실행 하는 컴퓨터에 설치할 수 있는 Excel 문서 수준 사용자 지정입니다.

솔루션에 신뢰를 부여 하는 방법을 결정 합니다.

사용자 컴퓨터에는 솔루션을 실행 하기 전에 신뢰는 다음 방법 중 하나를 부여 해야 하거나 고객이 솔루션을 설치할 때 사용자가 신뢰 프롬프트에 응답 해야 합니다.

[!참고]

문서 수준 사용자 지정에 대 한 문서의 위치가 트러스트 되어야 합니다.자세한 내용은 문서에 신뢰 부여을 참조하십시오.

Get InstallShield 제한 된 에디션

Visual Studio 설치한 경우에 약속 된 InstallShield 제한 된 에디션 (눈물)을 사용 하 여 Windows Installer 파일을 만들 수 있습니다.눈물 프로젝트 템플릿 제공 하는 이전 버전의 Visual Studio 설치 및 배포의 기능을 대체 합니다.

InstallShield 제한 된 버전을 가져오려면

  1. 메뉴 모음에서 파일, 새로 만들기, 프로젝트를 선택합니다.

    새 프로젝트 대화 상자가 열립니다.

  2. 템플릿 창에서 확장 기타 프로젝트 형식, 다음 선택은 설치 및 배포 템플릿.

  3. 프로젝트 형식에 대 한 목록에서 설치 및 배포, 선택 InstallShield 제한 된 에디션 사용, 다음 선택은 확인 단추.

    InstallShield 제한 된 버전을 구하는 방법에 대 한 정보를 제공 합니다. 페이지가 나타납니다.

  4. 해당 페이지에서 선택 된 다운로드 웹 사이트로 이동 링크.

  5. InstallShield 제한 된 버전을 다운로드 페이지에서 적절 한 필드에 필요한 정보를 입력 한 다음 선택 된 지금 다운로드 링크 합니다.

    다운로드, 설치 및 정품 인증을 한 후에 InstallShield 제한 된 에디션 프로젝트 템플릿은 Visual Studio 나타납니다.

설치 프로젝트 만들기

  1. Visual Studio를 배포 하려는 Office 프로젝트를 엽니다.

    이 주제와 관련 된 응용 프로그램 수준 추가 기능에서 샘플 ExcelAddIn 이라는 프로젝트를 포함 합니다.문서 수준 사용자 지정 예제는 ExcelWorkbook 라는 프로젝트를 포함 합니다.이 항목에서는 이러한 두 이름 중 하나를 사용 하 여 솔루션에서 Office 프로젝트를 참조 합니다.

  2. 메뉴 모음에서 파일, 추가, 새 프로젝트를 선택합니다.

    새 프로젝트 추가 대화 상자가 열립니다.

  3. 템플릿 창에서 확장 기타 프로젝트 형식, 다음 선택은 설치 및 배포 템플릿.

  4. 프로젝트 형식 목록에서 설치 및 배포, 선택 InstallShield 제한 된 에디션 프로젝트프로젝트에 이름을 지정 하 고 선택 된 확인 단추.

    방금 만든 InstallShield 설치 프로젝트가 솔루션에 나타납니다.

    이 항목에 대 한 샘플 이라고 설치 프로젝트 포함 OfficeAddInSetup.이 항목에서는 동일한 이름을 사용 하 여 솔루션에 설치 프로젝트를 참조 합니다.

프로젝트 출력 추가

구성 된 OfficeAddInSetup Office 프로젝트의 출력을 포함 하는 프로젝트입니다.응용 프로그램 수준 추가 기능 프로젝트에 프로젝트 출력은 솔루션 어셈블리입니다.문서 수준 사용자 지정 프로젝트에 프로젝트 출력을 솔루션 어셈블리 뿐만 아니라 문서 자체 포함 되어 있습니다.

프로젝트 출력을 추가 하려면

  1. 솔루션 탐색기, 확장의 OfficeAddInSetup 프로젝트 노드 및 다음 선택의 프로젝트 도우미 파일을 다음 그림과.

    솔루션 탐색기의 프로젝트 도우미 파일

  2. 메뉴 모음에서 선택 보기, 열기.

  3. 맨 아래에 프로젝트 도우미 페이지에서 선택의 응용 프로그램 파일 단추를 다음 그림과.

    응용 프로그램 파일 단추입니다.

  4. 응용 프로그램 파일 페이지에서 선택 된 프로젝트 출력 추가 단추.

  5. Visual Studio 출력 선택기 선택 대화 상자에서 기본 출력 확인란을 선택한 다음 선택의 확인 단추.

배포 및 응용 프로그램 매니페스트에 추가 합니다.

  1. 응용 프로그램 파일 페이지에서 선택 된 파일 추가 단추.

  2. 열기 의 출력 디렉터리 찾아보기 대화 상자에서의 ExcelAddIn 프로젝트입니다.

    일반적으로 출력 디렉터리입니다의 매니페스트가 선택 하 여 빌드 구성에 따라 프로젝트 루트 디렉터리의 하위 폴더입니다.

  3. 출력 디렉터리에서 선택의 ExcelAddIn.vstoExcelAddIn.dll.manifest 파일과 다음 선택의 열기 단추.

    응용 프로그램 파일 페이지 이제 포함 프로젝트 출력 파일, 배포 매니페스트 및 응용 프로그램 매니페스트를 다음 그림과 같이.

    설치 프로젝트의 출력 파일입니다.

종속 구성 요소를 필수 구성 요소로 구성 합니다.

설치 응용 프로그램에서 다음 구성 요소 뿐 아니라 솔루션을 실행 하려면 필요한 또한 다른 모든 구성 요소를 포함 해야 합니다.

  • .NET Framework 버전은 Office 솔루션 목표입니다.

  • Microsoft Visual Studio 2010 도구 Office 런타임입니다.

Cc442767.collapse_all(ko-kr,VS.110).gif.NET Framework 4 또는 4.5는.NET Framework 필수 구성 요소로 추가

  1. 솔루션 탐색기, 확장의 OfficeAddInSetup 프로젝트 노드를 확장의 응용 프로그램 데이터 지정 노드를 다음 선택의 재배포 가능 요소 파일을 다음 그림과.

    솔루션 탐색기의 재배포 가능 파일

  2. 메뉴 모음에서 선택 보기, 열기.

    재배포 가능 패키지 페이지가 열립니다.

  3. 재배포 가능 구성 요소 목록에서.NET Framework 버전에 대 한 확인란 선택 적절 하 게 해당 솔루션 목표.

    예를 들어, 경우 솔루션 목표는 .NET Framework 4.5선택은 Microsoft.NET Framework 전체 4.5 확인란을 선택 합니다.재배포 가능 구성 요소를 설치할 것인지 묻는 대화 상자가 나타날 수 있습니다 Installshield를 사용 하기 전에 필요한 구성 요소를 필수 구성 요소로 추가할 수 있습니다.이 대화 상자에 나타나지 않으면 구성 요소가 컴퓨터에 이미.

  4. 이 대화 상자가 표시 되 면 선택 된 재배포 가능 구성 요소를 다운로드 하는 단추입니다.

    [!참고]

    오류 메시지는 다운로드 하지 못했음을 지정할 수 있습니다.일반적으로이 오류를 무시할 수 있습니다.성공적으로 파일을 다운로드 여부를 확인 하려면 컴퓨터에서 다음 디렉터리를 찾습니다.

    32 비트 운영 체제에 대 한: %programfiles%\InstallShield\2012SpringLE\SetupPrerequisites\Microsoft.net\버전\FullOrClient\

    64 비트 운영 체제에 대 한: %programfiles (x86)\InstallShield\2012SpringLE\SetupPrerequisites\Microsoft.net\버전\FullOrClient\

    이러한 디렉터리 중 하나에 파일이 없으면 다운로드 하 고 적절 한 디렉터리에 배치 해야 합니다.

    .NET Framework 4를 다운로드 하려면을 참조 하십시오 https://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe

    .NET Framework 4 클라이언트를 다운로드 하려면 여기를 참조 하십시오. https://download.microsoft.com/download/5/6/2/562A10F9-C9F4-4313-A044-9C94E0A8FAC8/dotNetFx40_Client_x86_x64.exe

    .NET Framework 4.5을 다운로드 하려면을 참조 하십시오 https://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/

    [!참고]

    URL에 나열 된 필수 구성 요소를 찾을 수 있는 재배포 가능 요소 페이지에서 적절 한.prq 파일을 엽니다는 %programfiles%\InstallShield\2012SpringLE\SetupPrerequisites\ 컴퓨터의 디렉터리를.각.prq 파일에는 URL이 나타납니다은 URL 특성은 <file> 요소.

Cc442767.collapse_all(ko-kr,VS.110).gif런타임에 Office Visual Studio 2010 도구를 추가 합니다.

재배포 가능 패키지 페이지 인 항목을 포함 Microsoft VSTO 2010 런타임, 있지만 이전 버전의 런타임을를 말하는 것.따라서 최신 버전을 참조 하는 구성 파일을 수동으로 만들어야 합니다.다음 파일에 나타나는 모든 다른 항목에 대 한 구성 파일과 동일한 디렉터리에 배치 해야의 재배포 가능 패키지 페이지입니다.

Visual Studio 2010 도구 Office 런타임 필수 구성 요소로 추가 하려면

  1. 메모장을 열고 텍스트 파일에 다음 XML을 붙여 넣습니다.

    <?xml version="1.0" encoding="UTF-8"?>
    <SetupPrereq>
    <conditions>
        <condition Type="32" Comparison="2" Path="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VSTO Runtime Setup\v4R" FileName="Version" ReturnValue="10.0.40303" Bits="2"></condition>
    </conditions>
    <files>
        <file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\VSTOR\vstor_redist.exe" URL="https://go.microsoft.com/fwlink/?LinkId=140384" CheckSum="b6639489e159b854b6dc43d5cb539043" FileSize="0,40023024"></file>
    </files>
    <execute file="vstor_redist.exe" returncodetoreboot="1641,3010" requiresmsiengine="1">
    </execute>
    <properties Id="Your GUID goes here" Description="This prerequisite installs the most recent version of the Microsoft Visual Studio 2010 Tools for Office Runtime." >
    </properties>
    
    </SetupPrereq>
    
  2. GUID를 사용 하 여 생성 된 GUID 생성기 컴퓨터에서 프로그램.

    찾을 수 있는 GUID 생성기 컴퓨터에서 열린 프로그램의 시작 메뉴 및 형식 GUID 생성기 검색 상자에서.

  3. GUID 생성기 프로그램을 선택의 레지스트리 형식 옵션 버튼을 선택의 복사 단추를 클릭 한 다음 선택의 종료 단추.

  4. 메모장에서 텍스트 대체 Your GUID goes here GUID를 그 자리에 붙여 넣어.

    <properties> 파일의 요소는 다음과 유사 합니다.

    <properties Id="{87989B73-21DC-4403-8FD1-0C68A41A6D8C}" Description="This prerequisite installs the most recent version of the Microsoft Visual Studio 2010 Tools for Office Runtime." >
    </properties>
    
  5. 메모장의 메뉴 모음에서 선택 파일, 저장.

  6. 저장 대화 상자에서 찾아보기를 데스크톱 폴더.

  7. 형식 목록에서 선택 모든 파일 (*. *).

  8. 파일 이름 상자에 입력 Office Runtime.prq에 대 한 Visual Studio 2010 도구, 다음 선택은 저장 단추.

    [!참고]

    추가 하는 있는지 확인 .prq 이 파일을 필수 파일로 식별 하는 파일 이름 끝에 있습니다.

  9. 메모장을 닫습니다.

  10. 사용자 데스크탑 폴더를 Visual Studio 2010 도구 Office Runtime.prq 파일에 대 한 컴퓨터에 다음 디렉터리 중 하나에 복사 합니다.

    32 비트 운영 체제에 대 한: %programfiles%\InstallShield\2012SpringLE\SetupPrerequisites\

    64 비트 운영 체제에 대 한: %programfiles (x86)\InstallShield\2012SpringLE\SetupPrerequisites\

  11. 재배포 페이지 InstallShield 프로젝트의 선택은 새로 고침 재배포 가능 구성 요소를 다음 그림과 같이 목록 새로 고침 단추.

    새로 고침 단추입니다.

  12. 재배포 가능 구성 요소 목록에서 선택 된 Office 런타임에서 Visual Studio 2010 도구 확인란을 선택 합니다.

    대화 상자는 재배포 가능 구성 요소를 설치할 것인지 묻는 나타날 수 있습니다.이 대화 상자에 나타나지 않으면로 건너뜁니다는 솔루션은 사용자의 컴퓨터에서 설치 위치를 지정 합니다. 이 항목의 섹션입니다.

  13. 이 대화 상자가 표시 되 면 선택 된 재배포 가능 구성 요소를 다운로드 하는 단추입니다.

  14. [!참고]

    오류 메시지는 다운로드 하지 못했음을 지정할 수 있습니다.이 오류를 무시할 수 있습니다.성공적으로 파일을 다운로드 여부를 확인 하려면 컴퓨터에서 다음 디렉터리를 찾습니다.

    32 비트 운영 체제에 대 한: %programfiles%\InstallShield\2012SpringLE\SetupPrerequisites\ VSTOR\

    64 비트 운영 체제에 대 한: %programfiles (x86)\InstallShield\2012SpringLE\SetupPrerequisites\ VSTOR\

    중요중요

    이전 버전의 런타임 InstallShield 다운로드 될 수 있습니다.최신 버전이 있는지 확인 하려면 최신 버전의 Visual Studio 2010 도구에서 Office 런타임 다운로드는 Microsoft 다운로드 센터을 다음 해당 디렉터리에 배치 합니다.

솔루션은 사용자의 컴퓨터에서 설치 위치를 지정 합니다.

  1. 솔루션 탐색기, 확장의 OfficeAddInSetup 노드를 확장의 구성 설치 노드를 다음 선택의 일반 정보 파일.

  2. 메뉴 모음에서 선택 보기, 열기.

  3. 속성 목록에서 선택의 찾아보기 단추 옆에 있는 되었습니다 속성.

  4. 설정 되었습니다 대화 상자에서 사용자의 컴퓨터에 솔루션을 설치 하려는 폴더를 선택 합니다.

    [!참고]

    하위 디렉터리를 만들 수도 있습니다는 설정 되었습니다 목록에 있는 폴더의 바로 가기 메뉴를 사용 하 여 대화 상자.

응용 프로그램 수준 추가 기능을 구성 합니다.

이 섹션에서는 경우에 적용 됩니다. 응용 프로그램 수준 추가 기능에서 you'redeploying.문서 수준 사용자 지정을 배포 하는 경우에 즉시 이동할 수 있는 문서 수준 사용자 지정을 구성 합니다. 섹션.

Office 응용 프로그램을 검색 하 고 추가 기능을 로드할 수 있도록 하려면 레지스트리 키를 만들어야 합니다.레지스트리 키의 위치는 Office 응용 프로그램에 따라 달라 집니다.자세한 내용은 응용 프로그램 수준 추가 기능에 대한 레지스트리 항목을 참조하십시오.

레지스트리를 구성 하려면

  1. 솔루션 탐색기, 확장의 OfficeAddInSetup 프로젝트 노드를 확장은 사용자 설정 구성 노드를 다음 선택의 일반 정보 파일.

  2. 메뉴 모음에서 선택 보기, 열기.

    설치 프로젝트의 속성을 표시 합니다.

  3. 목록에 있는 AllUSERS 속성을이 솔루션 솔루션 설치 사용자만 또는 컴퓨터의 모든 사용자에 대 한 설치 여부를 지정 합니다.

    모든 사용자에 대 한 솔루션을 설치 하려면 ALLUSERS = 1 (컴퓨터별 설치).

  4. 솔루션 탐색기, 선택은 프로젝트 도우미 노드.

    메뉴 모음에서 선택 보기, 열기.

  5. 맨 아래에 프로젝트 도우미 페이지에서 선택의 응용 프로그램 레지스트리 단추를 다음 그림과.

    응용 프로그램 레지스트리 단추입니다.

    응용 프로그램 레지스트리 페이지가 나타납니다.

  6. 아래 응용 프로그램을 설치 하는 레지스트리 데이터를 구성 하 시겠습니까?, 선택은 옵션 단추.

  7. 대상 컴퓨터의 레지스트리 뷰 목록에서 선택 HKEY_USER_SELECTABLE.

    HKEY_USER_SELECTABLE 폴더를 설치 하 여 선택한 내용에 따라 적절 한 레지스트리 하이브에 ALLUSERS 이 절차의 앞부분에서 속성.해당 속성을 설정는 경우 ALLUSERS = 1 (컴퓨터별 설치), HKEY_LOCAL_MACHINE 레지스트리 하이브에 솔루션을 설치 합니다.

  8. 바로 가기 메뉴를 엽니다의 HKEY_USER_SELECTABLE 폴더를 선택 New, 다음 선택 .

    라는 폴더 새 키 #1 표시 된 HKEY_USER_SELECTABLE 폴더.

  9. 새 폴더 이름 바꾸기 소프트웨어.

  10. 바로 가기 메뉴를 엽니다의 소프트웨어 폴더를 선택 New, 다음 선택 .

    라는 폴더 새 키 #1 표시 된 소프트웨어 폴더.

  11. 새 폴더 이름 바꾸기 Microsoft, 및 이러한 키 계층 구조 전체를 나타낼 때까지 하위 폴더를 만들 수 있습니다.

    전체 키 계층 구조 HKEY_USER_SELECTABLE\Software\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn.

    64 비트 버전의 Office에 대 한 설치 관리자를 만드는 경우 전체 계층 구조는 HKEY_USER_SELECTABLE\Software\Wow6432Node\Microsoft\Office\Excel\Addins\SampleCompany.ExcelAddIn.

    키의 계층 구조는 다음 그림과이 실습이 완료 한 때.

    레지스트리의 키 계층 구조입니다.

    [!참고]

    최선의 방법으로 추가 기능의 이름을 회사 이름으로 시작 합니다.이 규칙에는 키를 고유 하 고 다른 공급 업체에서 추가 기능을 충돌의 가능성을 감소 가능성이 높아집니다.같은 이름을 가진 추가 기능 서로의 등록 키 예를 들어, 덮어쓸 수 있습니다.이 방법은 키 고유 이름 충돌 가능성을 줄일 수는 보장할 수 없습니다.

  12. 바로 가기 메뉴를 엽니다의 SampleCompany.ExcelAddIn 키, 선택 New, 다음 선택 문자열 값.

    새 문자열 값이 있는 는 대상 컴퓨터의 레지스트리 데이터 목록.이름을 바꿀 수 있도록 하는 문자열 값의 이름은 강조 표시 됩니다.

  13. 설명에 대 한 값을 바꿉니다.

  14. 다음 값을 만들려면이 프로세스를 반복 합니다.

    값 형식

    이름

    문자열 값

    FriendlyName

    DWORD 값

    LoadBehavior

    문자열 값

    매니페스트

  15. 바로 가기 메뉴를 엽니다의 설명 값 및 다음 선택 수정.

    데이터 편집 대화 상자가 나타납니다.

  16. 값 데이터 텍스트 상자 Excel 데모에서 추가 기능을 입력 한 다음 선택은 확인 단추.

    사용자 열립니다 Office 응용 프로그램을 열 때이 설명이 나타납니다의 옵션 대화 상자 한 다음의 추가 기능 창에서 선택 하는 추가 기능을 합니다.

  17. 바로 가기 메뉴를 열고를 FriendlyName 값 및 다음 선택 수정.

    데이터 편집 대화 상자가 나타납니다.

  18. 값 데이터 텍스트 상자 Excel 데모에서 추가 기능을 입력 한 다음 선택은 확인 단추.

    이 문자열 표시의 COM 추가 기능 Office 응용 프로그램에서 대화 상자.기본적으로 해당 문자열의 값은 추가 기능의 ID입니다.

  19. 바로 가기 메뉴를 열고를 LoadBehavior 값 및 다음 선택 수정.

    데이터 편집 대화 상자가 나타납니다.

  20. 값 데이터 텍스트 상자에 3을 입력 한 다음 선택 된 확인 단추.

    응용 프로그램이 시작 될 때 값이 3에서 추가 기능을 로드 합니다.LoadBehavior 값에 대 한 자세한 내용은 응용 프로그램 수준 추가 기능에 대한 레지스트리 항목.

  21. 바로 가기 메뉴를 열고를 매니페스트 값 및 다음 선택 수정.

    데이터 편집 대화 상자가 나타납니다.

  22. 값 데이터 텍스트 상자에 file:///[installdir]exceladdin.vsto|vstolocal를 입력 한 다음 선택 된 확인 단추.

    Visual Studio 2010 도구 Office 런타임에서이 경로 사용 하 여 배포 매니페스트를 찾습니다.[INSTALLDIR] 이 경로 부분에 매핑되는 매크로입니다의 INSTALLDIR 속성에는 일반 정보 InstallShield 설치 프로젝트의 속성 페이지입니다.이 속성에서 추가 기능을 설치 하려면 대상 컴퓨터에서의 위치를 지정 합니다.|vstolocal 접미사 되도록 ClickOnce 캐시 없습니다 설치 폴더에서 솔루션을 로드 합니다.

    다음 그림과 어떻게이 연습을 완료 한 후 값을 표시 합니다.

    추가 기능 설치 프로젝트의 레지스트리 값

중요중요

Outlook 사용자 지정 양식 영역에서 추가 기능을 만들 경우 Outlook 영역을 등록 하는 자세한 레지스트리 항목을 만들어야 합니다.자세한 내용은 Outlook 양식 영역에 대한 레지스트리 항목을 참조하십시오.

문서 수준 사용자 지정을 구성 합니다.

문서 수준 사용자 지정을 배포 하는 경우이 섹션에 적용 됩니다.응용 프로그램 수준 추가 기능을 배포 하는 경우 바로 이동할 수 있는 설치 프로젝트 빌드 섹션.

문서 수준 사용자 지정 레지스트리 키를 사용 하지 마십시오.대신 배포 매니페스트의 위치를 사용자 지정 문서 속성을 포함 합니다.

사용자 지정 속성을 수정 하려면 문서 수준 사용자 지정을 문서에서 제거 하 고, 적절 한 속성을 수정 하 고 다음 사용자 지정 된 문서에 다시 연결될지는 프로그램을 만듭니다.다음 프로그램을 실행 하는 사용자 지정 작업을 만듭니다 및 해당 동작을 설치 프로젝트에 추가 합니다.

문서 속성을 수정 하는 프로그램을 만들려면

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

    새 프로젝트 추가 대화 상자가 나타납니다.

  2. 템플릿 창에서 사용 하려는 언어 노드 아래의 선택 된 Windows 폴더입니다.

  3. 프로젝트 형식에 대 한 목록에서 Windows, 선택은 콘솔 응용 프로그램 템플릿.

  4. SetExcelDocumentProperties, 프로젝트 이름을 지정 하 고 선택 된 확인 단추.

  5. 솔루션 탐색기, 선택은 모든 파일 표시 단추, 바로 가기 메뉴를 엽니다의 SetExcelDocumentProperties 프로젝트 노드 및 다음 선택 참조 추가.

  6. 관리자 참조 대화 상자에서 선택의 확장 탭을 다음 다음 어셈블리를 옆에 있는 확인란을 선택 하 고 다음을 선택의 확인 단추.

    • Microsoft.VisualStudio.Tools.Applications.Runtime

    • Microsoft.VisualStudio.Tools.Applications.ServerDocument

  7. 솔루션 탐색기, 선택은 Program.cs (C# 응용 프로그램)에 대 한 파일 또는 Module1.vb 파일 (Visual Basic 응용 프로그램).

  8. 메뉴 모음에서 선택 보기, 열기.

  9. 전체 파일의 내용을 다음 코드로 대체 합니다.

    Imports Microsoft.VisualStudio.Tools.Applications.Runtime
    Imports Microsoft.VisualStudio.Tools.Applications
    
    Module Module1
    
        Sub Main()
    
            Dim assemblyLocation As String = ""
            Dim solutionID As Guid
            Dim deploymentManifestLocation As Uri = Nothing
            Dim documentLocation As String = ""
            Dim nonpublicCachedDataMembers As String() = Nothing
    
            Dim CommandLineArgs As  _
                System.Collections.ObjectModel.ReadOnlyCollection(Of String) = _
                My.Application.CommandLineArgs
    
            For i As Integer = 0 To CommandLineArgs.Count - 1
    
                Console.WriteLine(CommandLineArgs(i))
                Dim oArugment As String() = CommandLineArgs(i).Split("=")
    
                Select Case oArugment(0)
    
                    Case "/assemblyLocation"
                        assemblyLocation = oArugment(1)
    
                    Case "/deploymentManifestLocation"
                        If Not Uri.TryCreate(oArugment(1), UriKind.Absolute, _
                                             deploymentManifestLocation) Then
                            MsgBox("Error creating URI")
                        End If
    
                    Case "/documentLocation"
                        documentLocation = oArugment(1)
    
                    Case "/solutionID"
                        solutionID = Guid.Parse(oArugment(1))
                End Select
            Next
            Try
                ServerDocument.RemoveCustomization(documentLocation)
                ServerDocument.AddCustomization(documentLocation, assemblyLocation, _
                                                solutionID, deploymentManifestLocation, _
                                                True, nonpublicCachedDataMembers)
    
                Console.WriteLine("Insallation Location Modified Successfully")
    
            Catch ex As System.IO.FileNotFoundException
                Console.WriteLine("The specified document does not exist.")
                Console.ReadLine()
    
    
            Catch ex As System.IO.IOException
                Console.WriteLine("The specified document is read-only.")
                Console.ReadLine()
    
    
            Catch ex As InvalidOperationException
    
                Console.WriteLine("The customization could not be removed.\n" &
                    ex.Message)
                Console.ReadLine()
    
    
            Catch ex As DocumentNotCustomizedException
                Console.WriteLine("The document could not be customized.\n" &
                    ex.Message)
                Console.ReadLine()
    
            End Try
        End Sub
    
    End Module
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using Microsoft.VisualStudio.Tools.Applications.Runtime;
    using Microsoft.VisualStudio.Tools.Applications;
    
    namespace SetExcelDocumentProperties
    {
        class Program
        {
            static void Main(string[] args)
            {
                string assemblyLocation = "";
                Guid solutionID = new Guid();
                Uri deploymentManifestLocation = null;
                string documentLocation = "";
                string[] nonpublicCachedDataMembers = null;
    
                for (int i = 0; i <= args.Count() - 1; i++)
                {
                    Console.WriteLine(args[i]);
                    string[] oArugment = args[i].Split('=');
    
                    switch (oArugment[0])
                    {
                        case "/assemblyLocation":
                            assemblyLocation = oArugment[1];
                            break;
                        case "/deploymentManifestLocation":
                            if (!Uri.TryCreate(oArugment[1], UriKind.Absolute, out deploymentManifestLocation))
                            {
                                Console.WriteLine("Error creating URI");
                            }
                            break;
                        case "/documentLocation":
                            documentLocation = oArugment[1];
                            break;
                        case "/solutionID":
                            solutionID = Guid.Parse(oArugment[1]);
                            break;
                    }
                }
                try
                {
                    ServerDocument.RemoveCustomization(documentLocation);
                    ServerDocument.AddCustomization(documentLocation, assemblyLocation,
                                                solutionID, deploymentManifestLocation,
                                                true, out nonpublicCachedDataMembers);
    
                }
                catch (System.IO.FileNotFoundException)
                {
                    Console.WriteLine("The specified document does not exist.");
                }
                catch (System.IO.IOException)
                {
                    Console.WriteLine("The specified document is read-only.");
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine("The customization could not be removed.\n" +
                        ex.Message);
                }
                catch (DocumentNotCustomizedException ex)
                {
                    Console.WriteLine("The document could not be customized.\n" +
                        ex.Message);
                }
            }
        }
    }
    
  10. 프로젝트를 컴파일합니다.

프로그램이 실행 되는 사용자 지정 작업을 추가 하려면

  1. 솔루션 탐색기, 확장의 OfficeAddInSetup 프로젝트 노드 및 다음 선택의 프로젝트 도우미 파일을 다음 그림과.

    솔루션 탐색기의 프로젝트 도우미 파일

  2. 메뉴 모음에서 선택 보기, 열기.

  3. 맨 아래에 프로젝트 도우미 페이지에서 선택의 응용 프로그램 파일 단추를 다음 그림과.

    응용 프로그램 파일 단추입니다.

  4. 응용 프로그램 파일 페이지에서 선택 된 프로젝트 출력 추가 단추.

    Visual Studio 출력 선택기 대화 상자가 나타납니다.

  5. 아래는 SetExcelDocumentProperties 노드를 선택은 기본 출력 확인란을 선택한 다음 선택은 확인 단추.

  6. 솔루션 탐색기아래에서 OfficeAddInSetup 노드를 확장은 설치 요구 사항 정의 및 동작 노드를 다음 선택의 사용자 지정 작업 폴더.

  7. 메뉴 모음에서 선택 보기, 열기.

    이벤트 목록을 화면의 왼쪽 창에 표시 됩니다.

    [!참고]

    이 목록에 몇 개의 이벤트만 InstallShield 제한 된 버전에서 사용할 수 있습니다.이 절차를 사용 하 여 프로그램을 실행할 것을 후 설치 완료 성공 대화 상자가 이벤트입니다.

  8. 이벤트 목록에서에서 동안 사용자 지정 작업 설치, 바로 가기 메뉴를 엽니다의 후 설치 완료 성공 대화 상자가 이벤트를 다음 선택 새 EXE.

    라는 사용자 지정 작업 NewCustomAction1 표시는 후 설치 완료 성공 대화 이벤트입니다.사용자 지정 작업에 대 한 속성 집합을 이벤트 옆의 창에 표시 합니다.

    중요중요

    두 개의 후 설치 완료 성공 대화 이벤트의 이벤트 목록에 나타납니다.인스턴스를 선택 했는지 확인은 후 설치 완료 성공 대화 상자가 아래에 나타나는 이벤트의 동안 사용자 지정 작업 설치 노드.

  9. 목록에 있는 원본 위치 속성 선택 제품과 함께 설치 된.

  10. 선택은 찾아보기 단추 옆에 있는 파일 이름 속성.

  11. 대상 파일을 찾습니다 대화 상자에서 찾아보기는 SetExcelDocumentProperties.Primary.output 파일과 다음 선택은 열기 단추.

    이 파일의 위치를 지정한 폴더에 따라 달라 집니다를 되었습니다 설치 프로젝트의 속성입니다.예를 들어, 명명 된 폴더에 해당 속성을 설정 하면 [PersonalFolder] DemoWorkbookApp, 찾을 수 있습니다의 SetExcelDocumentProperties.Primary.output 파일을 검색 하 여 [ProgramFilesFolder] \DemoWorkbookApp.

    다음 몇 단계에서는 문서의 솔루션 ID를 표시 하 고 콘솔 응용 프로그램에 해당 ID를 매개 변수로 전달 합니다.문서, 배포 매니페스트 및 문서 어셈블리의 위치를 전달할 수도 있습니다.

  12. 응용 프로그램에 대 한 바로 가기 메뉴를 열고 ExcelWorkbook 프로젝트를 하 고 선택 Windows 탐색기에서 폴더 열기 또는 파일 탐색기에서 폴더 열기 사용 중인 운영 체제에 따라.

    솔루션이 들어 있는 폴더를 엽니다.

  13. 솔루션의 프로젝트 파일을 메모장에서 엽니다.Visual Basic 프로젝트의 경우 파일의 이름은 ExcelWorkbook.vbproj입니다.C# 프로젝트의 경우 파일의 이름은 ExcelWorkbook.csproj입니다.

  14. 프로젝트 파일에서 검색 된 <SolutionID> 요소에서 해당 값을 클립보드에 복사 하 고 메모장을 닫습니다.

    매개 변수로이 값이 콘솔 응용 프로그램에 전달합니다.

  15. 속성 페이지의 NewCustomAction1로 설정 된 명령줄 속성 텍스트의 다음 줄을.

    /assemblyLocation="[INSTALLDIR]ExcelWorkbook.dll" /deploymentManifestLocation="[INSTALLDIR]ExcelWorkbook.vsto" /documentLocation="[INSTALLDIR]ExcelWorkbook.xlsx" /solutionID="Your Solution ID"
    
  16. 대체 Your Solution ID 솔루션 id에 대 한 클립보드에 복사 합니다.

    중요중요

    이 사용자 지정 동작을 실행 하는 콘솔 응용 프로그램에서 문서 [되었습니다] 디렉터리에 액세스할 수 있는지 확인 하려면 설치 관리자를 테스트 합니다.일부 디렉터리에 사용자의 관리 액세스 (예: Program Files 디렉터리)를 요구할 수 있습니다.솔루션 관리 액세스가 필요한 디렉터리에 배포 하는 경우 열어야는 속성 대화 상자 setup.exe 파일의 선택은 호환성 탭을 클릭 한 다음 선택의 관리자 권한으로이 프로그램을 실행 설치 관리자를 배포 하기 전에 확인란.사용자가 관리자 권한으로 설치 프로그램을 실행 하지 않으려면 [되었습니다] 속성은 아마도 있는 액세스 디렉터리로 설정 이미, 등의 방법으로 문서 디렉터리.자세한 내용은 이 항목의 솔루션은 사용자의 컴퓨터에서 설치 위치를 지정 합니다. 단원을 참조하십시오.

설치 프로젝트 빌드

  1. 솔루션 탐색기, 확장은 릴리스에 대 한 준비 노드를 다음 선택은 릴리스 파일.

  2. 메뉴 모음에서 선택 보기, 열기.

    빌드 탐색기 만들 릴리스 유형을 선택할 수 있도록 왼쪽 창에 열립니다.

  3. 빌드 탐색기 선택은 SingleImage 폴더입니다.

  4. 창 옆에 있는 빌드 탐색기 선택은 Setup.exe 탭.

  5. Setup.exe 속성 페이지에서의 InstallShield 필수 구성 요소를 위치 목록에서 선택 Setup.exe에서 추출한.

  6. 메뉴 모음에서 선택 빌드, 구성 관리자.

  7. 활성 솔루션 구성 목록에서 선택 SingleImage.

  8. 프로젝트 컨텍스트 테이블에 구성 열은 OfficeAddInSetup 프로젝트를 선택 SingleImage, 다음 선택의 닫기 단추.

  9. 메뉴 모음에서 선택 빌드, 빌드 OfficeAddInSetup.

    빌드가 완료 된 후 setup.exe 파일을 찾을 수 있는 OfficeAddInSetup 프로젝트는 다음 위치: OfficeAddInSetupProjectRoot\OfficeAddInSetup\Express\SingleImage\DiskImages\DISK1\

참고 항목

참조

응용 프로그램 수준 추가 기능에 대한 레지스트리 항목

개념

사용자 지정 문서 속성 개요

Office 솔루션에 신뢰 부여

문서에 신뢰 부여

기타 리소스

Office 솔루션 배포 필수 구성 요소

Office 솔루션 배포

Windows Installer를 사용 하 여 Office 솔루션을 Visual Studio 2010 도구 배포