프라이빗 어셈블리를 사용하여 기존 애플리케이션 수정
Windows XP부터 프라이빗 어셈블리를 만들고 특정 애플리케이션에서 사용할 수 있도록 할 수 있습니다. 이 기능을 사용하여 업데이트와 호환되지 않는 애플리케이션을 수정할 수 있습니다. 예를 들어 운영 체제를 업그레이드한 후 최신 버전의 MSVCRT.DLL 호환되지 않는 애플리케이션이 있습니다. 이 경우 MSVCRT.DLL Windows 보호 파일이므로 시스템 버전을 바꿀 수 없습니다. 새 버전의 MSVCRT에서 작동하도록 애플리케이션을 다시 작성하는 대신 MSVCRT용 프라이빗 어셈블리를 만들고 애플리케이션 폴더에 설치할 수 있습니다. 모든 공유 구성 요소가 프라이빗 병렬 어셈블리에 적합한 후보는 아니며 일부 구성 요소에는 해당 구성 요소를 설치할 수 있는 위치에 대한 라이선스 제한이 있습니다. 구성 요소는 병렬 구성 요소에 대한 조건을 충족해야 합니다. 적절한 어셈블리를 제공할 수 있는지 구성 요소의 게시자에게 문의합니다.
프라이빗 어셈블리의 매니페스트와 애플리케이션의 매니페스트는 모두 애플리케이션의 실행 파일과 동일한 폴더에 설치되어야 합니다. 애플리케이션이 실행되면 애플리케이션 매니페스트를 참조하고 애플리케이션에 프라이빗인 MSVCRT 버전을 로드합니다.
이 예제에서 프라이빗 어셈블리에는 다음 어셈블리 매니페스트와 같이 MSVCRT.DLL 및 MSVCIRT.DLL 모두 포함됩니다.
<?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.PrivateCPlusPlusRuntime"
version="6.0.0.0"
processorArchitecture="x86"/>
<file name="msvcrt.dll"/>
<file name="msvcirt.dll"/>
</assembly>
다음은 가능한 애플리케이션 매니페스트의 예입니다.
<?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="APPLICATION"
type="win32"
/>
<description>Description of Application</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.PrivateCPlusPlusRuntime"
version="6.0.0.0"
processorArchitecture="x86"/>
</dependentAssembly>
</dependency>
</assembly>