Side-by-side 어셈블리 사용

다음 절차를 사용하여 새 애플리케이션을 개발하거나 기존 애플리케이션을 업데이트하여 Microsoft 또는 다른 병렬 어셈블리 게시자에서 사용할 수 있는 병렬 어셈블리를 사용합니다. 현재 Microsoft에서 제공하는 병렬 어셈블리 목록은 지원되는 Microsoft Side-by-side 어셈블리를 참조하세요. 어셈블리를 병렬 어셈블리로 설치하려면 애플리케이션을 Windows XP에서 실행해야 합니다. 자세한 내용은 병렬 어셈블리 만들기에 대한 지침을 참조하세요.

애플리케이션에 병렬 어셈블리를 추가하려면

  1. 애플리케이션에 필요한 병렬 어셈블리를 식별합니다. Windows XP부터 이러한 병렬 어셈블리 및 어셈블리 매니페스트는 운영 체제와 함께 설치되지만 전역으로 등록되지는 않습니다.

  2. XML 편집기를 사용하여 애플리케이션 매니페스트를 만듭니다. 아래 애플리케이션 매니페스트 예제를 참조하세요. 자세한 내용은 매니페스트 파일 참조애플리케이션 매니페스트를 참조하세요.

  3. 애플리케이션을 고유하게 정의하는 애플리케이션 매니페스트의 DEF 컨텍스트 assemblyIdentity 하위 요소에 특성 값을 입력합니다. DEF 컨텍스트 assemblyIdentity에 대한 자세한 내용은 애플리케이션 매니페스트를 참조하세요.

  4. 어셈블리에 종속 어셈블리가 포함된 경우 애플리케이션 매니페스트의 해당 REF 컨텍스트 assemblyIdentity 하위 요소에 특성 값을 입력합니다. REF 컨텍스트 assemblyIdentity에 대한 자세한 내용은 애플리케이션 매니페스트를 참조하세요.

    <dependentAssembly>
      <assemblyIdentity type="win32"
                        name="Microsoft.Windows.SampleAssembly"
                        version="6.0.0.0" processorArchitecture="x86"
                        publicKeyToken="a5aaf5ba15723d5"/>
    
  5. 애플리케이션의 이진 실행 파일 헤더 파일에 애플리케이션 매니페스트를 포함할 수 있습니다.

    이 경우 애플리케이션 헤더 파일에 다음 줄도 추가합니다.

    CREATEPROCESS\_MANIFEST\_RESOURCE\_ID RT\_MANIFEST "YourApp.exe.manifest"

    또는 애플리케이션의 실행 파일과 동일한 디렉터리에 별도의 매니페스트 파일을 배치할 수 있습니다. 운영 체제는 먼저 파일 시스템에서 매니페스트를 로드한 다음 실행 파일의 리소스 섹션을 확인합니다. 파일 시스템 버전이 우선합니다.

  6. 공유 어셈블리Windows Installer 버전 2.0을 사용하여 설치해야 합니다. Windows XP에서 병렬 공유를 위해 Win32 어셈블리를 설치하는 방법에 설명된 대로 Windows 설치 관리자 패키지를 작성합니다.

  7. Windows Installer 버전 2.0을 사용하여 프라이빗 어셈블리를 설치할 수 있습니다. Windows XP에서 애플리케이션을 비공개로 사용하기 위해 Win32 어셈블리를 설치하는 방법에 설명된 대로 Windows Installer 패키지를 작성합니다. 다른 설치 관리자를 사용하여 프라이빗 어셈블리 및 해당 매니페스트를 애플리케이션의 실행 파일과 동일한 폴더에 복사할 수도 있습니다.

  8. 애플리케이션을 테스트하여 결과를 확인합니다. 테스트 컴퓨터에 병렬 어셈블리가 등록되어 있지 않아야 합니다.

  9. 애플리케이션을 배포하거나 Windows Installer 패키지로 업데이트합니다.

애플리케이션 매니페스트 예제

다음은 애플리케이션 매니페스트의 예입니다.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="Microsoft.Windows.mysampleapp" version="1.0.0.0" processorArchitecture="x86"/>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="a5aaf5ba15723d5"/>
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.Tools.MyPrivateDll" version="2.5.0.0" processorArchitecture="x86"/>
    </dependentAssembly>
  </dependency>
</assembly>