게시자 구성 파일

게시자 구성 파일은 한 버전의 병렬 어셈블리를 사용하는 애플리케이션 및 어셈블리를 동일한 어셈블리의 다른 버전으로 전역적으로 리디렉션하는 XML 파일입니다. 일반적으로 어셈블리의 게시자는 서비스 팩 업데이트와 함께 설치할 게시자 구성 파일을 발급하여 어셈블리별로 호환되는 업데이트 또는 보안 수정을 실행합니다. 이를 게시자 구성이라고 합니다. 이 구성 유형에 대한 자세한 내용은 게시자 구성 을 참조하세요 .

게시자 구성 파일에는 다음과 같은 요소와 특성이 있습니다. XML 스키마의 전체 목록은 게시자 구성 파일 스키마를 참조하세요.

요소 특성 필수
assembly Yes
manifestVersion Yes
assemblyIdentity
type
name
language No
processorArchitecture No
version Yes
publicKeyToken No
종속성 No
dependentAssembly No
bindingRedirect Yes
oldVersion Yes
newVersion Yes

파일 위치

게시자 구성 파일은 WinSxS 폴더에 설치해야 합니다. 일반적으로 별도의 파일로 설치되지만 게시자 구성 파일은 DLL에 리소스로 포함할 수도 있습니다. 게시자 구성 파일은 EXE 파일에 리소스로 포함할 수 없습니다. EXE 파일에 는 애플리케이션 매니페스트 가 리소스로 포함될 수 있습니다.

파일 이름 구문

게시자 구성 파일의 파일 이름에는 양식 정책이 있습니다. major. minor. 주 가 영향을 받는 어셈블리 버전의 주 및 부 부분을 참조하는 assemblyname입니다. 어셈블리 이름은 어셈블리의 이름을 참조합니다.

예를 들어 Microsoft.Windows.Common-Controls 어셈블리 버전 6.0에 대한 게시자 구성 파일의 이름은 다음과 같습니다.

policy.6.0.Microsoft.Windows.Common-Controls

정책 구성 파일을 사용하여 어셈블리의 주 버전 또는 부 버전을 증가시키지 마세요. 예를 들어 버전 6.0.0.0을 7.0.0.0 또는 6.1.0.0으로 리디렉션하지 마세요. 애플리케이션이 6.0.0.0과 같은 어셈블리 버전을 참조하는 경우 지정된 주 버전 및 부 버전(예: 6.0)이 있는 정책 구성 파일이 있는지 나란히 확인합니다. 그러면 애플리케이션이 다른 버전의 어셈블리(예: 6.0.1.0)로 리디렉션됩니다. 게시자 구성 파일이 어셈블리의 주 버전 또는 부 버전을 증가시키는 경우 어셈블리의 후속 리디렉션에는 여러 정책 구성 파일을 발급해야 할 수 있습니다.

요소

어셈블리

컨테이너 요소입니다. 첫 번째 하위 항목은 assemblyIdentity여야 합니다. 필수 사항입니다.

어셈블리 요소는 네임스페이스 urn:schemas-microsoft-com:asm.v1에 있어야 합니다. 어셈블리의 자식 요소도 상속 또는 태그 지정을 통해 이 네임스페이스에 있어야 합니다.

어셈블리 요소에는 다음과 같은 특성이 있습니다.

attribute 설명
manifestVersion manifestVersion 특성은 1.0으로 설정해야 합니다.

assemblyIdentity

병렬 어셈블리를 설명하고 고유하게 식별합니다.

어셈블리 요소의 첫 번째 하위 요소인 assemblyIdentity는 하나 이상의 어셈블리 종속성이 변경된 병렬 어셈블리를 설명합니다. 게시자 구성 파일은 식별된 어셈블리의 종속성을 리디렉션합니다. 예를 들어 다음 assemblyIdentity 는 게시자 구성 파일이 x86 Microsoft.Windows.Pop 6.0.0.0 어셈블리의 종속성에 영향을 줍니다.

<assemblyIdentity 
     type="win32-policy" 
     publicKeyToken="0000000000000000" 
     name="policy.6.0.Microsoft.Windows.Pop" 
     version="2.1.0.0" 
     processorArchitecture="x86"/>

dependentAssembly 요소의 첫 번째 하위 요소인 assemblyIdentity는 병렬 어셈블리 종속성을 설명합니다. 게시자 구성 파일은 이 필수 병렬 어셈블리의 ID를 다시 구성합니다. 변경 내용은 bindingRedirect에 지정됩니다. 예를 들어 다음 assemblyIdentity 는 Microsoft.Windows.SampleAssembly 버전 2.0.0.0에 대한 모든 종속성을 Microsoft.Windows.SampleAssembly 버전 2.0.1.0에 대한 종속성으로 변경합니다.

<dependency>
      <dependentAssembly>
         <assemblyIdentity 
type="win32" 
name="Microsoft.Windows.SampleAssembly"  
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
      </dependentAssembly>
</dependency>

assemblyIdentity 요소에는 다음과 같은 특성이 있습니다. 하위 요소가 없습니다.

attribute 설명
type 어셈블리 형식을 지정합니다. 필수 사항입니다. 영향을 받는 어 셈블리의 assemblyIdentity 에서 형식 특성의 값을 win32-policy로 설정해야 합니다. win32-policy 값은 모두 소문자여야 합니다.
변경 어 셈블리 종속성에 대한 assemblyIdentity 에서 형식 특성의 값을 win32로 설정해야 합니다. win32 값은 모두 소문자여야 합니다.
name 어셈블리의 이름을 고유하게 합니다. 필수 사항입니다. 영향을 받는 어셈블리의 assemblyIdentity에서 name에는 양식 정책이 있습니다. major. minor. 주 및 가 어셈블리 버전의 및 부 부분을 참조하는 assemblyname입니다.
변경 어 셈블리 종속성에 대한 assemblyIdentity 에서 name에는 Organization.Division.Name 형식이 있습니다. 예를 들어 Microsoft.Windows.MysampleApp입니다.
language 어셈블리의 언어를 식별합니다. 선택 사항입니다. 영향을 받는 어 셈블리의 assemblyIdentity 에서 어셈블리가 언어별인 경우 DHTML 언어 코드를 지정합니다. 어셈블리가 전 세계적으로 사용(언어 중립)인 경우 이 특성을 생략합니다.
셈블리 종속성에 대한 assemblyIdentity 에서 어셈블리가 언어별인 경우 DHTML 언어 코드를 지정합니다. 어셈블리가 전 세계적으로 사용(언어 중립)인 경우 값을 "*"로 설정합니다.
processorArchitecture 애플리케이션을 실행하는 프로세서를 지정합니다.
version 어셈블리 버전을 지정합니다. 네 부분으로 구성된 버전 구문을 사용합니다. mmmm.nnnn.oooo.pppp DEF 컨텍스트 assemblyIdentity에만 필요합니다. REF 컨텍스트 assemblyIdentity에서 버전 특성을 지정하지 마세요.
publicKeyToken 어셈블리가 서명된 공개 키의 SHA-1 해시의 마지막 8바이트를 나타내는 16자 16자 문자열입니다. 카탈로그에 서명하는 데 사용되는 공개 키는 2048비트 이상이어야 합니다. 모든 공유 병렬 어셈블리에 publicKeyToken이 필요합니다. 게시자 구성 파일에 사용되는 publicKeyToken은 서명된 어셈블리에 사용되는 것과 동일한 키여야 합니다. 어셈블리와 함께 사용되는 것과 동일한 도구를 사용하여 게시자 구성 파일을 서명할 수 있습니다. 어셈블리 서명 예제서명된 파일 및 카탈로그 만들기를 참조하세요.

종속성

하나 이상의 dependentAssembly에 대한 선택적 컨테이너 요소입니다. 특성은 없습니다.

dependentAssembly

모든 dependentAssembly는 정확히 하나의 종속성 내에 있어야 합니다. dependentAssembly에는 특성이 없습니다. dependentAssembly의 첫 번째 하위 항목은 게시자 구성에서 다시 구성되는 side-by-side 어셈블리에 대한 assemblyIdentity여야 합니다.

bindingRedirect

bindingRedirect 요소에는 어셈블리의 바인딩에 대한 리디렉션 정보가 포함됩니다.

이 요소에는 다음 표에 표시된 특성이 있습니다.

attribute Description
oldVersion 재정의 및 리디렉션되는 어셈블리 버전을 지정합니다. 네 부분으로 구성된 버전 구문 nnnnn.nnnnn.nnnnn.nnnnn을 사용합니다. 공백이 없는 대시로 버전 범위를 지정합니다. 예를 들어 2.14.3.0 또는 2.14.3.0 2.16.0.0입니다. 필수 사항입니다.
newVersion 대체 어셈블리 버전을 지정합니다. 네 부분으로 구성된 버전 구문 nnnnn.nnnnn.nnnnn.nnnnn을 사용합니다.

설명

게시자 구성 파일은 파일을 지정하지 않습니다. 언어별 정책 파일은 게시자 구성 파일과 별개입니다.

예제

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Proseware.Research.SampleAssembly" version="1.0.1.0" language="en-us" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" publicKeyToken="0000000000000000" name="Proseware.Research.SampleAssembly" language="en-us" processorArchitecture="x86"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>