다음을 통해 공유


DLL, 확장 또는 제어판 호스팅하는 애플리케이션에서 어셈블리 사용

애플리케이션이 타사 DLL, 확장, 플러그 인 또는 제어판을 호스트하는 경우 호스트된 구성 요소에 대해서도 이 어셈블리를 사용하도록 설정하지 않고 애플리케이션에서 어셈블리를 사용하도록 설정할 수 있습니다. 호스트된 구성 요소에서 어셈블리를 사용하기 위해 코드 변경이 필요한 경우일 수 있습니다. 애플리케이션 개발자는 이러한 타사 구성 요소를 변경하지 못할 수 있습니다. 이 경우 애플리케이션이 호스트된 구성 요소에 영향을 주지 않고 어셈블리를 사용할 수 있도록 이 섹션에 설명된 절차를 따라야 합니다.

  • 호스트된 DLL, 확장, 플러그 인 또는 제어판에 영향을 주지 않고 애플리케이션에서 어셈블리를 사용하도록 설정하려면 어셈블리에 대한 애플리케이션의 의존도를 설명하는 매니페스트를 애플리케이션에 리소스로 포함해야 합니다. 어셈블리에서 사용하도록 설정되지 않은 호스트된 구성 요소에는 이 종속성을 설명하는 매니페스트가 포함되어서는 안 됩니다.
  • 애플리케이션 및 호스트된 DLL, 확장, 플러그 인 또는 제어판에서 어셈블리를 사용하도록 설정하려면 매니페스트를 애플리케이션과 호스트된 구성 요소 모두에 리소스로 포함합니다. 애플리케이션 및 호스트된 구성 요소에 포함된 매니페스트는 각각 어셈블리에 대한 의존성을 설명해야 합니다. 일반적으로 애플리케이션 개발자는 애플리케이션에 매니페스트를 추가하고 호스트된 구성 요소 개발자는 DLL, 확장, 플러그 인 또는 제어판에 매니페스트를 추가합니다.

다음 메서드를 사용하여 애플리케이션 또는 DLL, 확장, 플러그 인 또는 제어판인 호스트된 구성 요소에 매니페스트를 추가할 수 있습니다.

애플리케이션 또는 호스트된 구성 요소에서 어셈블리를 사용하도록 설정하려면

  1. 어셈블리에 대한 애플리케이션 또는 확장의 의존성을 설명하는 매니페스트를 작성합니다.

    예를 들어 다음 샘플 매니페스트를 복사하고 assemblyIdentity, processorArchitecture설명에 올바른 값을 대체하여 "YourApplication"에 대한 매니페스트를 만들 수 있습니다. 32비트 플랫폼에서 빌드하는 경우 processorArchitecture 값을 x86으로 설정하고 64비트 플랫폼에서 빌드하는 경우 ia64로 설정합니다. description 요소에는 애플리케이션에 대한 옵션 설명이 포함되어 있습니다. 매니페스트 형식에 대한 자세한 내용은 애플리케이션 매니페스트를 참조하세요.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
        version="1.0.0.0"
        processorArchitecture="x86"
        name="YourCompanyName.YourDivision.YourApp"
        type="win32"
    />
    <description>Your app description here</description>
    <dependency>
        <dependentAssembly>
            <assemblyIdentity
                type="win32"
                name="Proseware.Research.SampleAssembly"
                version="6.0.0.0"
                processorArchitecture="X86"
                publicKeyToken="0000000000000000"
                language="*"
            />
        </dependentAssembly>
    </dependency>
    </assembly>
    
  2. 애플리케이션 또는 RT_MANIFEST id 2 형식의 확장에 리소스를 만듭니다.

    예를 들어 애플리케이션 이름이 YourApp인 경우 애플리케이션에는 다음이 포함되어야 합니다.

    #define MANIFEST_RESOURCE_ID 2
    MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"
    
  3. -DISOLATION_AWARE_ENABLED 플래그를 사용하여 애플리케이션을 컴파일하거나 #include "Windows.h" 문 앞에 이 문을 삽입합니다. 여러 모듈이 있는 애플리케이션의 경우 모든 모듈에 -DISOLATION_AWARE_ENABLED 플래그가 필요합니다.

    #define ISOLATION_AWARE_ENABLED 1
    
  4. 애플리케이션에서 사용하는 어셈블리가 애플리케이션 및 호스트된 구성 요소에서 올바르게 작동하는지 테스트합니다.

확장 없이 애플리케이션에 어셈블리를 추가하는 방법에 대한 자세한 내용은 확장 없이 애플리케이션에서 어셈블리 사용을 참조하세요.