다음을 통해 공유


연습: 단일 ClickOnce 설치 관리자에서 여러 Office 솔루션 배포

여러 Office 솔루션을 단일 패키지로 배포하여 설치 및 업데이트 프로세스를 간소화할 수 있습니다. 이를 위해서는 게시를 완료하고 설치를 시작하기 전에 응용 프로그램 및 배포 매니페스트를 수정하고 다시 서명해야 합니다.

적용 대상: Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능이 항목의 정보는 Microsoft Office 2013 미리 보기 및 Microsoft Office 2010의 문서 수준 프로젝트 및 응용 프로그램 수준 프로젝트에 적용됩니다. 자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.

이 연습에서는 다음 작업을 수행합니다.

  • 여러 Office 솔루션 만들기.

  • 응용 프로그램 매니페스트 수정.

  • 매니페스트 다시 서명.

참고

일부 Visual Studio 사용자 인터페이스 요소의 경우 다음 지침에 설명된 것과 다른 이름 또는 위치가 시스템에 표시될 수 있습니다. 이러한 요소는 사용하는 Visual Studio 버전 및 설정에 따라 결정됩니다. 자세한 내용은 Visual Studio 설정을 참조하십시오.

사전 요구 사항

이 연습을 완료하려면 다음 구성 요소가 필요합니다.

-

Microsoft Office 개발자 도구를 포함하는 Visual Studio 2012 버전입니다. 자세한 내용은 [Office 솔루션을 개발할 수 있도록 컴퓨터 구성](https://msdn.microsoft.com/ko-kr/library/bb398242\(v=vs.110\))을 참조하십시오.
  • Word 2013 Preview

  • Outlook 2013 Preview

  • Excel 2013 Preview

  • Word 2010

  • Outlook 2010

  • Excel 2010

  • 테스트 컴퓨터

여러 Office 솔루션 만들기

먼저 세 개의 Office 프로젝트를 만들고 그 중 하나는 설치 관리자 역할을 하도록 합니다. 다른 두 솔루션은 최종 사용자 컴퓨터에 배포합니다.

새 Word, Outlook 및 Excel 프로젝트를 만들고 개발하려면

  1. Word 문서 수준 프로젝트를 만듭니다. 프로젝트에 ContosoInstaller라는 이름을 지정한 후 %USERPROFILE%\Documents\Visual Studio 2012\Projects 디렉터리에 프로젝트를 저장합니다.

    ContosoInstaller 프로젝트는 설치 관리자로 사용됩니다. 자세한 내용은 방법: Visual Studio에서 Office 프로젝트 만들기을 참조하십시오.

  2. ContosoInstaller 솔루션에서 Outlook 응용 프로그램 수준 프로젝트를 ContosoOutlookAddIn이라는 이름으로 추가한 후 Outlook 프로젝트에 코드를 추가합니다.

  3. ContosoInstaller 솔루션에서 Excel 문서 수준 프로젝트를 ContosoExcelWorkbook이라는 이름으로 추가한 후 Excel 프로젝트에 코드를 추가합니다.

Office 솔루션 게시

게시 마법사 또는 프로젝트 디자이너프로젝트 페이지를 사용하여 Office 솔루션을 개발 컴퓨터에 게시합니다.

Word, Outlook 및 Excel 프로젝트를 게시하려면

  1. ContosoInstaller 프로젝트를 c:\publish 폴더에 게시합니다. 자세한 내용은 방법: ClickOnce를 사용하여 Office 솔루션 게시을 참조하십시오.

  2. ContosoOutlookAddIn 프로젝트를 c:\publish 폴더에 게시합니다.

  3. ContosoExcelWorkbook 프로젝트를 c:\publish 폴더에 게시합니다.

응용 프로그램 매니페스트 수정

Visual Studio의 XML 편집기를 사용하여 설치 종속성, 파일, 진입점 및 어셈블리를 응용 프로그램 매니페스트에 추가합니다. 응용 프로그램 매니페스트의 내용은 상자의 전체 내용물을 나열하는 제품 구성 정보와 유사합니다. 응용 프로그램 매니페스트에는 모든 종속 어셈블리 및 필수 구성 요소 어셈블리와 응용 프로그램에 필요한 파일이 나열됩니다. Office 솔루션용 응용 프로그램 매니페스트에는 응용 프로그램 수준 추가 기능 및 문서 수준 사용자 지정을 위해 Office 응용 프로그램에서 로드되어야 하는 어셈블리도 나열됩니다.

Dd465290.collapse_all(ko-kr,VS.110).gif설치 종속성 추가

ContosoOutlookAddin 및 ContosoExcelWorkbook 어셈블리를 설치하고 ContosoInstaller 어셈블리에 대한 참조를 제거하도록 응용 프로그램 매니페스트를 수정합니다.

설치 종속성을 응용 프로그램 매니페스트에 추가하려면

  1. c:\publish\Application Files 폴더에서 ContosoOutlookAddIn_1_0_0_0 및 ContosoExcelWorkbook_1_0_0_0 디렉터리의 내용을 ContosoInstaller_1_0_0_0 디렉터리로 이동합니다.

  2. XML 편집기에서 ContosoInstaller.dll.manifest, ContosoOutlookAddIn.dll.manifest 및 ContosoExcelWorkbook.dll.manifest 파일을 엽니다.

  3. ContosoOutlookAddIn.dll.manifest 파일에서 ContosoOutlookAddIn.dll을 비롯한 모든 설치 및 파일 종속성을 복사합니다. 즉, <dependentAssembly dependencyType="install" 또는 <file name="app.config">로 시작하는 모든 종속성을 복사합니다. 다음 코드와 같아야 합니다:만 <dsig:DigestValue> 요소가 달라 집니다.

      <dependency>
        <dependentAssembly 
           dependencyType="install"
           allowDelayedBinding="true" 
           codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" 
           size="30816">
          <assemblyIdentity 
            name="Microsoft.Office.Tools.Common.v4.0.Utilities" 
            version="10.0.0.0"
            publicKeyToken="B03F5F7F11D50A3A"
            language="neutral"
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform
                Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod 
              Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>Ki0…</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly
          dependencyType="install"
          allowDelayedBinding="true" 
          codebase="Microsoft.Office.Tools.Outlook.v4.0.Utilities.dll"   
          size="47200">
          <assemblyIdentity 
            name="Microsoft.Office.Tools.Outlook.v4.0.Utilities" 
            version="10.0.0.0"
            publicKeyToken="B03F5F7F11D50A3A"
            language="neutral" 
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform
                Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod 
              Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>050...</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly
          dependencyType="install" 
          allowDelayedBinding="true"
          codebase="ContosoOutlookAddIn.dll"
          size="10240">
          <assemblyIdentity
            name="ContosoOutlookAddIn" 
            version="1.0.0.0" 
            language="neutral" 
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform Algorithm=
                "urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod Algorithm=
              "http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>i4e</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <file name="ContosoOutlookAddIn.dll.config" size="77">
        <hash>
          <dsig:Transforms>
            <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
          </dsig:Transforms>
          <dsig:DigestMethod 
             Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <dsig:DigestValue>w7W...</dsig:DigestValue>
        </hash>
      </file>
    
  4. ContosoInstaller.dll.manifest 파일에서 종속성 섹션의 끝에 ContosoOutlookAddIn.dll 설치 종속성을 붙여 넣습니다.

  5. ContosoExcelWorkbook.dll.manifest 파일에서 ContosoExcelWorkbook.dll 및 Microsoft.Office.Tools.Common.v4.0.Utilities.dll을 비롯한 모든 설치 및 파일 종속성을 복사합니다. 즉, <dependentAssembly dependencyType="install" 또는 <file name="app.config">로 시작하는 모든 종속성을 복사합니다. 다음 코드와 같아야 합니다:만 <dsig:DigestValue> 요소가 달라 집니다.

      <dependency>
        <dependentAssembly
          dependencyType="install"
          allowDelayedBinding="true"
          codebase="ContosoExcelWorkbook.dll"
          size="12800">
          <assemblyIdentity
            name="ContosoExcelWorkbook" 
            version="1.0.0.0"
            language="neutral"
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform Algorithm=
                "urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod Algorithm=
              "http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>i4e</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly dependencyType="install" allowDelayedBinding="true" codebase="Microsoft.Office.Tools.Common.v4.0.Utilities.dll" size="30816">
          <assemblyIdentity name="Microsoft.Office.Tools.Common.v4.0.Utilities" version="10.0.0.0" publicKeyToken="B03F5F7F11D50A3A" language="neutral" processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>Ki0A9wOpes1YX5NaAvjmUeFSh0g=</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <dependency>
        <dependentAssembly
          dependencyType="install"
          allowDelayedBinding="true" 
          codebase="Microsoft.Office.Tools.Excel.v4.0.Utilities.dll" 
          size="235104">
          <assemblyIdentity 
            name="Microsoft.Office.Tools.Excel.v4.0.Utilities" 
            version="10.0.0.0"
            publicKeyToken="B03F5F7F11D50A3A"
            language="neutral"
            processorArchitecture="msil" />
          <hash>
            <dsig:Transforms>
              <dsig:Transform
               Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
            </dsig:Transforms>
            <dsig:DigestMethod 
              Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
            <dsig:DigestValue>Te/...</dsig:DigestValue>
          </hash>
        </dependentAssembly>
      </dependency>
      <file name=" ContosoExcelWorkbook.dll.config" size="77">
        <hash>
          <dsig:Transforms>
            <dsig:Transform
             Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
          </dsig:Transforms>
          <dsig:DigestMethod 
            Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
          <dsig:DigestValue>w7W...</dsig:DigestValue>
        </hash>
      </file>
    
  6. ContosoInstaller.dll.manifest 파일에서 종속성 섹션의 끝에 설치 종속성을 붙여 넣습니다.

  7. ContosoInstaller.dll.manifest 파일에서 ContosoInstaller.dll 및 Microsoft.Office.Tools.Word.v4.0.Utilities.dll 설치 종속성을 제거합니다. 중복 종속성도 모두 제거합니다. 예를 들어 Microsoft.Office.Tools.Common.v4.0.Utilities.dll에 대한 설치 종속성을 여러 개 복사했을 수 있습니다.

    참고

    Word 문서 수준 솔루션을 배포하는 경우 최종 매니페스트에 Microsoft.Office.Tools.Word.v4.0.Utilities.dll을 남겨 두십시오.

Dd465290.collapse_all(ko-kr,VS.110).gif진입점 추가

ContosoOutlookAddin 및 ContosoExcelWorkbook 어셈블리를 <vstav3> 네임스페이스에 로드하도록 응용 프로그램 매니페스트를 수정합니다.

vstav3 네임스페이스의 진입점을 응용 프로그램 매니페스트에 추가하려면

  1. ContosoInstaller.dll.manifest 파일에서 <vstav3:entryPointsCollection> 요소와 </vstav3:entryPointsCollection> 요소 사이에 있는 텍스트를 제거합니다.

  2. ContosoOutlookAddIn.dll.manifest 파일에서 <vstav3:entryPointsCollection> 요소와 </vstav3:entryPointsCollection> 요소 사이에 있는 텍스트를 복사합니다. 코드는 다음과 유사 합니다.

          <vstav3:entryPoints>
            <vstav3:entryPoint
              class="ContosoOutlookAddIn.ThisAddIn">
              <assemblyIdentity
                name="ContosoOutlookAddIn"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
          </vstav3:entryPoints>
    

    참고

    Outlook 응용 프로그램 수준 추가 기능에서 양식 영역을 사용하는 경우 Outlook 진입점은 <vstav3:entryPoints> 섹션에 나열된 마지막 진입점이어야 합니다.

  3. ContosoInstaller.dll.manifest 파일에서 <vstav3:entryPointsCollection> 요소 뒤에 코드를 붙여 넣습니다.

  4. 추가 된 id 특성은 <vstav3:entryPoints> 입력 지점 다른 시나리오와 차별화 하는 요소.

          <vstav3:entryPoints id="ContosoOutlook">
    
  5. ContosoExcelWorkbook.dll.manifest 파일에서 <vstav3:entryPointsCollection> 요소와 </vstav3:entryPointsCollection> 요소 사이에 있는 텍스트를 복사합니다. 코드는 다음 코드와 유사 합니다.

          <vstav3:entryPoints>
            <vstav3:entryPoint 
              class="ContosoExcelWorkbook.ThisWorkbook">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
            <vstav3:entryPoint
               class="ContosoExcelWorkbook.Sheet1">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
            <vstav3:entryPoint
              class="ContosoExcelWorkbook.Sheet2">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
            <vstav3:entryPoint
              class="ContosoExcelWorkbook.Sheet3">
              <assemblyIdentity
                name="ContosoExcelWorkbook"
                version="1.0.0.0"
                language="neutral"
                processorArchitecture="msil" />
            </vstav3:entryPoint>
          </vstav3:entryPoints>
    
  6. ContosoInstaller.dll.manifest 파일에서 <vstav3:entryPointsCollection> 요소 뒤에 코드를 붙여 넣습니다.

  7. 다른 진입점과 구별하기 위해 id 특성을 <vstav3:entryPoints> 요소에 추가합니다.

          <vstav3:entryPoints id="ContosoExcel">
    

Dd465290.collapse_all(ko-kr,VS.110).gif어셈블리 추가

ContosoOutlookAddin 및 ContosoExcelWorkbook 어셈블리를 <vstov4> 네임스페이스에 로드하도록 응용 프로그램 매니페스트를 수정합니다.

어셈블리를 응용 프로그램 매니페스트의 vstov4 네임스페이스에 추가하려면

  1. ContosoInstaller.dll.manifest 파일에서 <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> 요소와 </vstov4:customizations> 요소 사이에 있는 모든 텍스트를 제거합니다.

  2. ContosoOutlookAddIn.dll.manifest 파일에서 <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> 요소와 </vstov4:customizations> 요소 사이에 있는 텍스트를 복사합니다. 이 코드는 다음과 같습니다.

            <vstov4:customization>
              <vstov4:appAddIn
                application="Outlook"
                loadBehavior="3"
                keyName="ContosoOutlookAddIn">
                <vstov4:friendlyName>
                  ContosoOutlookAddIn
                </vstov4:friendlyName>
                <vstov4:description>
                  ContosoOutlookAddIn - Outlook add-in created with
                  Visual Studio Tools for Office
                </vstov4:description>
              </vstov4:appAddIn>
            </vstov4:customization>
    
  3. ContosoInstaller.dll.manifest 파일에서 <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> 요소 뒤에 코드를 붙여 넣습니다.

  4. 다른 사용자 지정과 구별하기 위해 id 특성을 <vstav3:customization> 요소에 추가합니다. 이 ID는 이전 절차에서 <vstav3:entryPoints> 요소에 추가한 ID와 같습니다.

            <vstov4:customization id="ContosoOutlook">
    
  5. ContosoExcelWorkbook.dll.manifest 파일에서 <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> 요소와 </vstov4:customizations> 요소 사이에 있는 텍스트를 복사합니다. 다음과 유사한 코드를 찾습니다. <solutionId> 요소만 달라집니다.

            <vstov4:customization>
              <vstov4:document
                solutionId="73e" />
            </vstov4:customization>
    
  6. ContosoInstaller.dll.manifest 파일에서 <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> 요소 뒤에 코드를 붙여 넣습니다.

  7. 다른 사용자 지정과 구별하기 위해 id 특성을 <vstov4:customizations xmlns:vstov4="urn:schemas-microsoft-com:vsto.v4"> 요소에 추가합니다. 이 ID는 이전 절차에서 <vstav3:entryPoints> 요소에 추가한 ID와 같습니다.

            <vstov4:customization id="ContosoExcel">
    

문서 수준 프로젝트 수정

다중 프로젝트 배포에 포함된 모든 문서 수준 프로젝트에 대해 _AssemblyLocation 사용자 지정 문서 속성에 ID를 추가해야 합니다. 이 단원에서는 ContosoExcelWorkbook.xlsx 파일의 _AssemblyLocation 속성을 업데이트하는 방법을 보여 줍니다. 모든 문서 수준 프로젝트에 대해 이 단계를 반복해야 합니다.

Excel 또는 Word 2010에서 _AssemblyLocation을 수정하려면

  1. Excel에서 선택 된 파일 탭입니다.

  2. 선택 된 정보 단추입니다.

  3. 선택은 속성 드롭다운 화살표를 클릭 하 고 다음을 선택 고급 속성.

  4. 선택 된 사용자 지정 탭입니다.

  5. 속성이 창에서 선택 _AssemblyLocation.

  6. textbox에서 텍스트를 제거 하려면 편집 |vstolocal (텍스트가 있는 경우) 및 추가 |id=ContosoInstaller.

  7. 확인 단추를 선택합니다.

매니페스트 다시 서명

인증서를 사용하여 응용 프로그램 및 배포 매니페스트에 서명합니다. 이는 파일이 훼손되지 않았음을 보장합니다.

응용 프로그램 및 배포 매니페스트에 다시 서명하려면

  1. 복사본은 ContosoInstaller_TemporaryKey.pfx 인증서 파일에서의 Studio 2012\Projects\ContosoInstaller\ContosoInstaller %USERPROFILE%\Documents\Visual 솔루션 디렉터리로 c:\publish\Application Files\ContosoInstaller_1_0_0_0 디렉터리.

  2. Visual Studio 명령 프롬프트를 엽니다.

  3. c:\publish\Application Files\ContosoInstaller_1_0_0_0 디렉터리로 변경합니다.

  4. 다음 명령을 실행하여 수정된 응용 프로그램 매니페스트에 서명합니다.

    mage -sign ContosoInstaller.dll.manifest -certfile ContosoInstaller_TemporaryKey.pfx
    

    "ContosoInstaller.dll.manifest에 서명했습니다"라는 메시지가 나타납니다.

  5. c:\publish 디렉터리로 변경합니다.

  6. 다음 명령을 실행하여 배포 매니페스트를 업데이트하고 서명합니다.

    mage -update ContosoInstaller.vsto -appmanifest "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller.dll.manifest" -certfile "Application Files\ContosoInstaller_1_0_0_0\ContosoInstaller_TemporaryKey.pfx"
    

    "ContosoInstaller.vsto에 서명했습니다."라는 메시지가 나타납니다.

  7. ContosoInstaller.vsto 파일을 c:\publish\Application Files\ContosoInstaller_1_0_0_0 디렉터리에 복사합니다.

다중 프로젝트 배포 테스트

다음 절차에서는 매니페스트가 Outlook 추가 기능과 Excel 통합 문서를 설치했는지 확인합니다.

다중 프로젝트 배포를 테스트하려면

  1. c:\publish 디렉터리를 테스트 컴퓨터에 복사합니다.

  2. 설치 프로그램을 실행하여 다중 프로젝트 배포를 설치합니다.

    Microsoft Office 사용자 지정 설치 관리자가 나타납니다.

  3. 선택 설치.

    Microsoft Office 사용자 지정 설치 관리자 대화 상자에 "Microsoft Office 사용자 지정을 설치했습니다."라는 메시지가 표시됩니다.

  4. Outlook을 열고 추가 기능이 작동하는지 확인합니다.

  5. Excel 통합 문서 파일을 열고 문서 수준 사용자 지정이 작동하는지 확인합니다.

  6. 설치된 응용 프로그램 목록에서 다중 프로젝트 배포에 단일 항목이 있는지 확인합니다.

    프로그램 추가/제거(Windows XP) 또는 프로그램 및 기능(Windows Vista)에 ContosoInstaller가 표시됩니다.

게시 디렉터리 정리

다음 절차에서는 게시 디렉터리에서 불필요한 파일을 제거합니다.

게시 디렉터리를 정리하려면

  1. c:\publish\Application Files\ContosoInstaller_1_0_0_0 디렉터리에서 다음 파일을 제거합니다.

    • ContosoExcelWorkbook.dll.manifest

    • ContosoExcelWorkbook.vsto

    • ContosoInstaller.dll.deploy

    • ContosoInstaller.docx

    • ContosoInstaller_TemporaryKey.pfx

    • ContosoOutlookAddIn.dll.manifest

    • ContosoOutlookAddIn.vsto

  2. c:\publish 디렉터리에서 다음 파일을 제거합니다.

    • ContosoExcelWorkbook.vsto

    • ContosoInstaller.docx

    • ContosoOutlookAddIn.vsto

참고 항목

작업

방법: 응용 프로그램 및 배포 매니페스트에 다시 서명

개념

ClickOnce 응용 프로그램 보안

기타 리소스

Office 솔루션 배포