DLL, 확장 또는 제어판 호스팅하는 애플리케이션에서 어셈블리 사용
애플리케이션이 타사 DLL, 확장, 플러그 인 또는 제어판을 호스트하는 경우 호스트된 구성 요소에 대해서도 이 어셈블리를 사용하도록 설정하지 않고 애플리케이션에서 어셈블리를 사용하도록 설정할 수 있습니다. 호스트된 구성 요소에서 어셈블리를 사용하기 위해 코드 변경이 필요한 경우일 수 있습니다. 애플리케이션 개발자는 이러한 타사 구성 요소를 변경하지 못할 수 있습니다. 이 경우 애플리케이션이 호스트된 구성 요소에 영향을 주지 않고 어셈블리를 사용할 수 있도록 이 섹션에 설명된 절차를 따라야 합니다.
- 호스트된 DLL, 확장, 플러그 인 또는 제어판에 영향을 주지 않고 애플리케이션에서 어셈블리를 사용하도록 설정하려면 어셈블리에 대한 애플리케이션의 의존도를 설명하는 매니페스트를 애플리케이션에 리소스로 포함해야 합니다. 어셈블리에서 사용하도록 설정되지 않은 호스트된 구성 요소에는 이 종속성을 설명하는 매니페스트가 포함되어서는 안 됩니다.
- 애플리케이션 및 호스트된 DLL, 확장, 플러그 인 또는 제어판에서 어셈블리를 사용하도록 설정하려면 매니페스트를 애플리케이션과 호스트된 구성 요소 모두에 리소스로 포함합니다. 애플리케이션 및 호스트된 구성 요소에 포함된 매니페스트는 각각 어셈블리에 대한 의존성을 설명해야 합니다. 일반적으로 애플리케이션 개발자는 애플리케이션에 매니페스트를 추가하고 호스트된 구성 요소 개발자는 DLL, 확장, 플러그 인 또는 제어판에 매니페스트를 추가합니다.
다음 메서드를 사용하여 애플리케이션 또는 DLL, 확장, 플러그 인 또는 제어판인 호스트된 구성 요소에 매니페스트를 추가할 수 있습니다.
애플리케이션 또는 호스트된 구성 요소에서 어셈블리를 사용하도록 설정하려면
어셈블리에 대한 애플리케이션 또는 확장의 의존성을 설명하는 매니페스트를 작성합니다.
예를 들어 다음 샘플 매니페스트를 복사하고 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>
애플리케이션 또는 RT_MANIFEST id 2 형식의 확장에 리소스를 만듭니다.
예를 들어 애플리케이션 이름이 YourApp인 경우 애플리케이션에는 다음이 포함되어야 합니다.
#define MANIFEST_RESOURCE_ID 2 MANIFEST_RESOURCE_ID RT_MANIFEST "YourApp.manifest"
-DISOLATION_AWARE_ENABLED 플래그를 사용하여 애플리케이션을 컴파일하거나 #include "Windows.h" 문 앞에 이 문을 삽입합니다. 여러 모듈이 있는 애플리케이션의 경우 모든 모듈에 -DISOLATION_AWARE_ENABLED 플래그가 필요합니다.
#define ISOLATION_AWARE_ENABLED 1
애플리케이션에서 사용하는 어셈블리가 애플리케이션 및 호스트된 구성 요소에서 올바르게 작동하는지 테스트합니다.
확장 없이 애플리케이션에 어셈블리를 추가하는 방법에 대한 자세한 내용은 확장 없이 애플리케이션에서 어셈블리 사용을 참조하세요.