격리된 애플리케이션이 어셈블리 종속성을 지정하는 경우 먼저 WinSxS 폴더에 공유 어셈블리 간에 어셈블리를 검색합니다. 필요한 어셈블리를 찾을 수 없는 경우 애플리케이션의 디렉터리 구조 폴더에 설치된 프라이빗 어셈블리를 나란히 검색합니다.
프라이빗 어셈블리 애플리케이션의 디렉터리 구조에서 다음 위치에 배포할 수 있습니다.
- 애플리케이션의 폴더에 있습니다. 일반적으로 애플리케이션의 실행 파일을 포함하는 폴더입니다.
- 애플리케이션 폴더의 하위 폴더에 있습니다. 하위 폴더의 이름은 어셈블리와 같아야 합니다.
- 애플리케이션 폴더의 언어별 하위 폴더에 있습니다. 하위 폴더의 이름은 언어 문화권 또는 언어를 나타내는 DHTML 언어 코드의 문자열입니다.
- 애플리케이션 폴더에 있는 언어별 하위 폴더의 하위 폴더에 있습니다. 상위 하위 폴더의 이름은 언어 문화권 또는 언어를 나타내는 DHTML 언어 코드의 문자열입니다. 더 깊은 하위 폴더의 이름은 어셈블리와 같습니다.
프라이빗 어셈블리를 처음으로 나란히 검색하면 애플리케이션의 디렉터리 구조에 언어별 하위 폴더가 있는지 여부를 결정합니다. 언어별 하위 폴더가 없는 경우 다음 시퀀스를 사용하여 다음 위치에서 프라이빗 어셈블리를 나란히 검색합니다.
- WinSxS 폴더를 병렬로 검색합니다.
- \\<appdir>\<어셈블리 이름>.DLL
- \\<appdir>\<어셈블리 이름>.manifest
- \\<appdir>\<assemblyname>\<assemblyname>.DLL
- \\<appdir>\<어셈블리 이름>\<어셈블리 이름>.manifest
언어별 하위 폴더가 있는 경우 애플리케이션의 디렉터리 구조에는 여러 언어로 지역화된 프라이빗 어셈블리가 포함될 수 있습니다. 언어별 하위 폴더를 나란히 검색하여 애플리케이션이 지정된 언어 또는 사용 가능한 최상의 언어를 사용하는지 확인합니다. 언어별 하위 폴더는 언어 문화권 또는 언어를 지정하는 DHTML 언어 코드 문자열을 사용하여 이름이 지정됩니다. 언어별 하위 폴더가 있는 경우 다음 시퀀스를 사용하여 다음 위치에서 프라이빗 어셈블리를 나란히 검색합니다.
- WinSxS 폴더를 나란히 검색합니다.
- \\<appdir>\<언어 문화권>\<어셈블리 이름>.DLL
- \\<appdir>\<언어 문화권>\<어셈블리 이름>.manifest
- \\<appdir>\<언어-문화>\<어셈블리 이름>\<어셈블리 이름>.DLL
- \\<appdir>\<언어-문화>\<어셈블리네임>\<어셈블리네임>.manifest
병렬 검색 시퀀스는 어셈블리 이름을 가진 DLL 파일을 찾은 후, 어셈블리 이름을 가진 매니페스트 파일 검색을 중단합니다. DLL인 프라이빗 어셈블리를 처리하는 권장 방법은 DLL 파일에 어셈블리 매니페스트를 리소스로 배치하는 것입니다. 리소스 ID는 1이어야 하며 프라이빗 어셈블리의 이름은 DLL의 이름과 같을 수 있습니다. ko-KR: 예를 들어, DLL의 이름이 MICROSOFT.WINDOWS.MYSAMPLE.DLL인 경우, 어셈블리 매니페스트의 assemblyIdentity 요소에 사용되는 이름 특성 값은 Microsoft.Windows.mysample일 수도 있습니다. 또는 어셈블리 매니페스트를 별도의 파일에 넣을 수 있지만 어셈블리의 이름과 해당 매니페스트는 DLL의 이름과 달라야 합니다. 예를 들어 Microsoft.Windows.mysampleAsm, Microsoft.Windows.mysampleAsm.manifest 및 MICROSOFT.WINDOWS.MYSAMPLE.DLL이 있습니다.
예를 들어 myapp이 c 드라이브의 루트에 설치되어 있고 프랑스어-벨기에에서 myasm이 필요한 경우 다음 시퀀스를 함께 사용하여 지역화된 myasm 인스턴스에 대한 최상의 근사치를 검색합니다.
- 병렬로 WinSxS에서 fr-be 버전을 검색합니다.
- c:\myapp\fr-be\myasm.dll
- c:\myapp\fr-be\myasm.manifest
- c:\myapp\fr-be\myasm\myasm.dll
- c:\myapp\fr-be\myasm\myasm.manifest
- 병렬로 Fr 버전에 대한 WinSxS를 검색합니다.
- c:\myapp\fr\myasm.dll
- c:\myapp\fr\myasm.manifest
- c:\myapp\fr\myasm\myasm.dll
- c:\myapp\fr\myasm\myasm.manifest
- 병렬로 WinSxS에서 en-us 버전을 검색합니다.
- c:\myapp\en-us\myasm.dll
- c:\myapp\en-us\myasm.manifest
- c:\myapp\en-us\myasm\myasm.dll
- c:\myapp\en-us\myasm\myasm.manifest
- 병렬로 WinSxS에서 en 버전을 검색합니다.
- c:\myapp\en\myasm.dll
- c:\myapp\en\myasm.manifest
- c:\myapp\en\myasm\myasm.dll
- c:\myapp\en\myasm\myasm.manifest
- 병렬로 WinSxS에서 언어 없음 버전을 검색합니다.
- c:\myapp\myasm.dll
- c:\myapp\myasm.manifest 파일 경로
- c:\myapp\myasm\myasm.dll
- c:\myapp\myasm\myasm.manifest
병렬 검색이 언어 중립적인 어셈블리 버전에 도달하고, 시스템에 MUI(다국어 사용자 인터페이스) 버전의 Windows가 있는 경우, <어셈블리 이름>.mui에 바인딩을 시도합니다. 검색이 어셈블리의 지역화된 버전에 도달하면 <어셈블리 이름에>.mui를 바인딩하려고 시도하지 않습니다. 언어 중립적 어셈블리의 어셈블리 매니페스트에는 그 어셈블리 식별 요소에 언어 특성이 없습니다. 병렬 실행이 언어 중립 어셈블리에 도달하고 MUI가 설치된 경우, 다음의 순서에 따라 다음 위치에서 <어셈블리 이름>.mui 파일을 검색합니다. 어셈블리가 문화권 중립인 경우 동일한 검색 순서를 사용하되, 언어>는 검색하지 않으며 <도 마찬가지입니다.
- 병렬로 WinSxS 폴더에서 <어셈블리 이름>.mui를 검색합니다.
- \\<사용자의 언어 문화권>\<어셈블리 이름>.mui
- \\<사용자의 언어>\<어셈블리 이름>.mui
- \\<시스템의 언어-문화>\<어셈블리 이름>.mui
- \\<시스템의 언어>\<어셈블리 이름>.mui
- \\<언어 없음>\<어셈블리 이름>.mui
예를 들어 나란히 검색하는 경우 c:\myapp\myasm\myasm.manifest에서 프라이빗 어셈블리를 찾고 myasm은 언어 중립적 어셈블리입니다. 그런 다음, 다음 시퀀스를 사용하여 myasm.mui를 검색합니다. 사이드 바이 사이드는 언어 중립 MUI 어셈블리를 검색하지 않습니다.
- 병렬로 WinSxS에서 MUI 어셈블리의 fr-be 버전을 검색합니다.
- c:\myapp\fr-be\myasm.mui.dll
- c:\myapp\fr-be\myasm.mui.manifest
- c:\myapp\fr-be\myasm\myasm.mui.dll
- c:\myapp\fr-be\myasm\myasm.mui.manifest
- 병렬로 WinSxS에서 MUI 어셈블리의 fr 버전을 검색합니다.
- c:\myapp\fr\myasm.mui.dll
- c:\myapp\fr\myasm.mui.manifest
- c:\myapp\fr\myasm\myasm.mui.dll
- c:\myapp\fr\myasm\myasm.mui.manifest
- 병렬로 WinSxS에서 MUI 어셈블리의 en-us 버전을 검색합니다.
- c:\myapp\en-us\myasm.mui.dll
- c:\myapp\en-us\myasm.mui.manifest
- c:\myapp\en-us\myasm\myasm.mui.dll
- c:\myapp\en-us\myasm\myasm.mui.manifest
- 병렬로 WinSxS에서 MUI 어셈블리의 en 버전을 검색합니다.
- c:\myapp\en\myasm.mui.dll
- c:\myapp\en\myasm.mui.manifest
- c:\myapp\en\myasm\myasm.mui.dll
- c:\myapp\en\myasm\myasm.mui.manifest