다음을 통해 공유


프라이빗 어셈블리를 사용하여 기존 애플리케이션 수정

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>