애플리케이션 구성 파일
애플리케이션 구성 파일은 어셈블리 바인딩을 제어하는 데 사용되는 XML 파일입니다. 한 버전의 병렬 어셈블리를 사용하는 애플리케이션을 동일한 어셈블리의 다른 버전으로 리디렉션할 수 있습니다. 이를 애플리케이션별 구성이라고 합니다. 애플리케이션 구성 파일은 특정 애플리케이션 매니페스트 및 종속 어셈블리에만 적용됩니다. 포함된 ISOLATIONAWARE_MANIFEST_RESOURCE_ID 매니페스트로 컴파일된 격리된 구성 요소에는 별도의 애플리케이션 구성 파일이 필요합니다. CreateActCtx로 관리되는 매니페스트에는 별도의 애플리케이션 구성 파일이 필요합니다.
애플리케이션 구성 파일에서 지정한 리디렉션은 애플리케이션 매니페스트 및 게시자 구성 파일에 지정된 어셈블리 버전을 재정의할 수 있습니다. 예를 들어 게시자 구성 파일에서 어셈블리에 대한 모든 참조를 버전 1.0.0.0에서 1.1.0.0으로 리디렉션하도록 지정하는 경우 애플리케이션 구성 파일을 사용하여 특정 애플리케이션을 리디렉션하여 버전 1.0.0.0을 사용할 수 있습니다. 애플리케이션 구성 파일은 지정된 애플리케이션 매니페스트 및 종속 어셈블리에만 적용됩니다.
XML 스키마의 전체 목록은 애플리케이션 구성 파일 스키마를 참조하세요.
애플리케이션 구성 파일에는 다음 표에 표시된 요소와 특성이 있습니다.
요소 | 특성 | 필수 |
---|---|---|
구성 | Yes | |
windows | Yes | |
publisherPolicy | Yes | |
적용 | Yes | |
런타임 | No | |
assemblyBinding | Yes | |
프로 빙 | No | |
privatePath | Yes | |
종속성 | No | |
dependentAssembly | Yes | |
assemblyIdentity | 예 | |
type | 예 | |
name | 예 | |
language | No | |
processorArchitecture | 예 | |
version | Yes | |
publicKeyToken | No | |
bindingRedirect | Yes | |
oldVersion | Yes | |
newVersion | Yes |
파일 위치
애플리케이션 구성 파일은 애플리케이션의 애플리케이션 매니페스트와 동일한 위치에 설치해야 합니다.
파일 이름 구문
애플리케이션 구성 파일의 이름은 애플리케이션 실행 파일의 이름 뒤에 .config.
예를 들어 Example.exe 또는 Example.dll 참조하는 애플리케이션 구성 파일은 다음 예제와 같이 파일 이름 구문을 사용합니다. 구성 파일을 별도의 파일로 설치하거나 리소스 ID>가 1인 경우 리소스 ID에 대한 < 필드를 생략할 수 있습니다.
example.exe.<리소스 ID>.config
example.dll.<리소스 ID>.config
요소
요소 및 특성의 이름은 대/소문자를 구분합니다. 요소 및 특성의 값은 모두 대/소문자를 구분하지 않습니다( 형식 특성 값 제외).
구성
애플리케이션 구성 파일의 창 및 런타임 요소에 대한 컨테이너 요소입니다. 필수 사항입니다.
Windows
Win32 어셈블리의 리디렉션에 적용되는 애플리케이션 구성 파일의 일부를 포함합니다.
참고
애플리케이션 작성자는 애플리케이션의 일부로 windows 하위 요소가 있는 구성 파일을 포함해서는 안 됩니다. 구성 파일의 유일한 목적이 검색 요소의 privatePath 기능을 사용하도록 설정하는 것일 경우 허용될 수 있습니다 . 검색 요소는 Windows Server 2008 R2 및 Windows 7 이전 시스템에서 사용할 수 없습니다.
publisherPolicy
게시자 정책을 적용할지 여부를 지정합니다.
이 요소에는 다음 표에 표시된 특성이 있습니다.
attribute | 설명 |
---|---|
적용 | "예" 값은 게시자 정책을 적용합니다. 이 값은 기본 설정입니다. "아니요" 값은 게시자 정책을 적용하지 않습니다. |
런타임
.Net 어셈블리의 리디렉션에 적용되는 애플리케이션 구성 파일의 일부를 포함합니다.
assemblyBinding
애플리케이션 및 이 애플리케이션 구성 파일의 영향을 받는 어셈블리에 대한 리디렉션 정보를 포함합니다. assemblyBinding의 첫 번째 하위 항목은 애플리케이션을 식별하는 assemblyIdentity여야 합니다.
Windows Server 2008 R2 및 Windows 7부터 assemblyBinding 요소에는 검색 하위 요소가 포함될 수 있습니다.
검색
어셈블리 검색을 추가 디렉터리로 확장하는 assemblyBinding 요소의 선택적 하위 요소입니다. 추가 디렉터리가 어셈블리 디렉터리의 하위 디렉터리일 필요는 없습니다.
참고
이 요소는 Windows Server 2008 R2 및 Windows 7 이전 시스템에서 사용할 수 없으며 windows 요소 내에서만 사용할 수 있습니다.
이 요소에는 다음 표에 표시된 특성이 있습니다.
attribute | 설명 |
---|---|
privatePath | 어셈블리를 포함할 수 있는 애플리케이션 기본 디렉터리의 하위 디렉터리의 상대 경로를 지정합니다. 최대 9개의 하위 디렉터리 경로를 지정할 수 있습니다. 각 하위 디렉터리 경로를 세미콜론으로 구분합니다. |
경로에서 double-dots 특수 지정자를 사용하여 현재 디렉터리의 부모 디렉터리를 나타낼 수 있습니다. 이중 점을 사용하여 현재 디렉터리보다 두 개 이상의 수준을 지정할 수 없습니다. 삼중 점을 사용하지 마세요. 예를 들어 다음 검색 요소를 사용하는 애플리케이션은 어셈블리에 대한 추가 디렉터리를 확인합니다.
<probing privatePath="bin;..\bin2\subbin;bin3"/>
dependency
하나 이상의 dependentAssembly에 대한 컨테이너 요소입니다. 모든 dependentAssembly는 정확히 하나의 종속성 내에 있을 수 있습니다. 이 요소에는 특성이 없습니다. 선택 사항입니다.
dependentAssembly
첫 번째 하위 요소는 애플리케이션 구성 파일에서 리디렉션되는 side-by-side 어셈블리를 식별하는 assemblyIdentity 요소여야 합니다. dependentAssembly에는 특성이 없습니다.
assemblyIdentity
assemblyBinding 요소의 첫 번째 하위 요소인 assemblyIdentity는 애플리케이션을 설명하고 고유하게 식별합니다. 애플리케이션 구성 파일은 이 애플리케이션의 바인딩을 병렬 어셈블리로 리디렉션합니다. 예를 들어 다음 assemblyIdentity 는 애플리케이션 구성 파일이 병렬 어셈블리에 대한 mysampleApp 애플리케이션 바인딩에 영향을 줍니다. 리디렉션되는 어셈블리는 dependentAssembly에서 식별됩니다.
<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
dependentAssembly 요소의 첫 번째 하위 요소인 assemblyIdentity는 애플리케이션이 종속되는 병렬 어셈블리를 설명합니다. 애플리케이션 구성 파일은 이 필수 어셈블리의 ID를 다시 구성합니다. 예를 들어 다음 assemblyIdentity 및 bindingRedirect 는 Microsoft.Windows.SampleAssembly에 대한 종속성을 버전 2.0.0.0에서 버전 2.1.0.0으로 다시 구성합니다.
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.SampleAssembly"
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.1.0.0"/>
</dependentAssembly>
</dependency>
dependentAssembly에 포함된 모든 assemblyIdentity는 어셈블리 자체 어셈블리 매니페스트의 assemblyIdentity와 정확히 일치해야 합니다.
assemblyIdentity 요소에는 다음과 같은 특성이 있습니다. 하위 요소도 없습니다.
attribute | 설명 |
---|---|
type | 값은 win32(소문자)여야 합니다. 필수 사항입니다. |
name | 이름 특성은 애플리케이션 구성 파일 또는 리디렉션되는 어셈블리의 영향을 받는 애플리케이션을 식별합니다. 이름에 다음 형식을 사용합니다. Organization.Division.Name. 필수 사항입니다. 예: Microsoft.Windows.MysampleApp 또는 Microsoft.Windows.MysampleAsm. |
language | 언어를 식별합니다. 선택 사항입니다.
어셈블리를 참조하는 assemblyIdentity의 경우 어셈블리가 언어별인 경우 DHTML 언어 코드를 지정합니다. 어셈블리가 전 세계적으로 사용(언어 중립)인 경우 값을 "*"로 설정합니다. |
processorArchitecture | 애플리케이션을 실행하는 프로세서를 지정합니다. |
version | 애플리케이션 또는 어셈블리의 버전을 지정합니다. 4부로 구성된 버전 구문 mmmm.nnnn.oooo.pppp를 사용합니다. 필수 사항입니다. |
publicKeyToken | 어셈블리를 참조하는 assemblyIdentity의 경우 어셈블리가 서명된 공개 키의 SHA-1 해시의 마지막 8바트를 나타내는 16자 16자 문자열입니다. 카탈로그에 서명하는 데 사용되는 공개 키는 2048비트 이상이어야 합니다. 모든 공유 병렬 어셈블리에 필요합니다. |
bindingRedirect
bindingRedirect 요소에는 어셈블리의 바인딩에 대한 리디렉션 정보가 포함됩니다. 각 bindingRedirect는 정확히 하나의 dependentAssembly에 포함되어야 합니다. 새 버전과 이전 버전의 4부 버전 구문은 동일한 주 버전과 부 버전을 지정해야 합니다.
이 요소에는 다음 표에 표시된 특성이 있습니다.
attribute | 설명 |
---|---|
oldVersion | 재정의 및 리디렉션되는 어셈블리 버전을 지정합니다. 네 부분으로 구성된 버전 구문 nnnnn.nnnnn.nnnnn.nnnnn을 사용합니다. 공백 없이 대시로 버전 범위를 지정합니다. 예를 들어 2.14.3.0 또는 2.14.3.0 2.16.0.0입니다. 필수 사항입니다. |
newVersion | 대체 어셈블리 버전을 지정합니다. 네 부분으로 구성된 버전 구문 nnnnn.nnnnn.nnnnn.nnnnn을 사용합니다. |
설명
애플리케이션 구성 파일은 파일을 지정하지 않습니다.
예제
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>