애플리케이션별 구성

애플리케이션별 구성은 특정 애플리케이션의 의존성을 한 버전의 병렬 어셈블리에서 다른 버전의 어셈블리로 리디렉션합니다. 특정 애플리케이션의 올바른 작업에 일반적으로 기본 구성 또는 게시자 구성으로 지정된 버전과 다른 어셈블리 버전이 필요한 경우 애플리케이션별 구성이 필요할 수 있습니다. 예를 들어 게시자에 의한 어셈블리 버전의 전역 업데이트는 어셈블리를 수정하지만 이 특정 애플리케이션을 중단할 수 있습니다. 이 경우 애플리케이션별 구성을 사용하여 애플리케이션이 이전 어셈블리 버전으로 계속 실행되도록 할 수 있습니다.

Windows Server 2003부터 애플리케이션별 구성은 항상 애플리케이션별로 기본 구성 을 재정의합니다. 애플리케이션별 구성은 애플리케이션 구성 파일이 publisherPolicy에서 apply="no"를 지정하고 애플리케이션 호환성 데이터베이스에 해당 항목이 있는 경우에만 애플리케이션별로 게시자 구성을 재정의합니다.

참고

Windows XP에서 애플리케이션별 구성은 애플리케이션별로 기본 구성게시자 구성 을 모두 재정의합니다. 자세한 내용은 Windows XP의 애플리케이션별 구성을 참조하세요.

 

Windows Server 2003부터 애플리케이션 구성 파일이 publisherPolicy에서 apply="yes"를 지정하고 Application Compatibility 데이터베이스의 애플리케이션에 대해 EnableAppConfig 플래그가 설정된 경우 애플리케이션별 구성이 게시구성을 재정의합니다. 애플리케이션별 구성을 사용하여 게시자 구성을 재정의하는 이 기능을 사용하면 Safemode에서 애플리케이션을 실행할 수 있습니다. 애플리케이션 호환성 데이터베이스 및 Safemode에 대한 자세한 내용은 Windows 애플리케이션 호환성 도구 키트를 참조하세요. 에서 Windows 애플리케이션 호환성 도구 키트를 https://www.microsoft.com/downloads가져올 수 있습니다.

참고

publisherPolicy에서 apply="no"를 지정하는 애플리케이션 구성 파일(.config 파일)과 함께 구성 요소를 제공하는 경우 활성화 컨텍스트 생성이 실패합니다. publisherPolicy에서 apply="yes"를 지정하는 .config 파일이 있는 구성 요소를 제공하면 애플리케이션별 구성은 무시됩니다.

 

애플리케이션 관리자는 애플리케이션 구성 파일을 작성 및 설치하고 애플리케이션 호환성 데이터베이스를 업데이트하여 애플리케이션별 구성을 구현할 수 있습니다. 그런 다음 애플리케이션 구성 파일을 배포하고 애플리케이션의 실행 파일과 동일한 폴더에 설치해야 합니다. 파일 스키마 목록은 애플리케이션 구성 파일 스키마를 참조하세요. 애플리케이션 호환성 데이터베이스는 애플리케이션 호환성 도구 키트에 설명된 대로 배포해야 합니다.

참고

애플리케이션이 Safemode에서 실행되는 경우 어셈블리 게시자가 게시자 구성 파일로 발급할 수 있는 중요한 보안 수정 또는 버그 수정을 받지 못합니다. 따라서 애플리케이션별 구성을 사용하는 애플리케이션은 이러한 수정 사항이 포함된 새 어셈블리가 시스템에 적용된 후에도 안전하지 않거나 계속 잘못 작동할 수 있습니다. 이러한 이유로 애플리케이션 개발자는 애플리케이션별 구성을 사용하여 애플리케이션을 제공해서는 안 됩니다. 애플리케이션별 구성은 게시자 구성에 의해 애플리케이션이 손상된 경우에만 회사 관리자가 임시 수정으로 사용해야 합니다. 이 경우 영구 솔루션은 어셈블리 개발자와 애플리케이션 개발자가 함께 작업하여 게시자 구성이 있는 어셈블리가 완전히 이전 버전과 호환되도록 해야 한다는 것입니다.

 

다음은 애플리케이션 구성 파일의 예입니다. 자세한 내용은 애플리케이션 구성 파일을 참조하세요.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<configuration>
 <windows>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
   <assemblyIdentity  processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
   <publisherPolicy apply="no"/>                     
   <dependentAssembly>
    <assemblyIdentity type="win32" processorArchitecture="x86" name="Microsoft.Windows.SampleAssembly" publicKeyToken="0000000000000000"/>
    <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
   </dependentAssembly>
  </assemblyBinding>
 </windows>
</configuration>

애플리케이션 관리자는 필요한 항목을 애플리케이션 호환성 데이터베이스에 추가해야 합니다. 에서 Windows 애플리케이션 호환성 도구 키트 2.6을 https://www.microsoft.com/downloads다운로드하여 설치합니다. 도구 키트에 설명된 대로 호환성 관리자를 사용하여 새 사용자 지정을 만들거나 기존 데이터베이스를 업데이트합니다. 애플리케이션의 호환성 계층에 대해 선택하려는 호환성 수정 사항은 EnableAppConfig입니다. 새 호환성 데이터베이스를 설치하기 전에 항상 애플리케이션을 테스트해야 합니다.