어셈블리 파일 검색

활성화 컨텍스트는 로더가 어셈블리 파일을 찾는 데 도움이 될 수 있습니다. 로더는 이름으로 로드할 파일을 검색할 때 먼저 현재 활성 활성화 컨텍스트의 멤버인 어셈블리에서 참조하는 지정된 이름의 파일을 검색합니다. SearchPath를 호출하면 이러한 파일도 먼저 찾습니다. 지정된 이름과 현재 활성화 컨텍스트가 있는 파일은 로컬 디렉터리 또는 PATH 환경 변수에 이름이 있는 파일 앞에 찾아서 로드됩니다. 즉, 매니페스트를 만들 때 SearchPath, LoadLibrary 또는 정적 가져오기와 함께 사용하려는 모든 파일을 나열해야 합니다.

이러한 파일은 CreateFile 또는 파일을 검색하지 않는 다른 함수를 사용할 때 자동으로 배치되지 않습니다. CreateFile에서 이러한 파일을 사용하려면 먼저 SearchPath를 사용하여 격리된 파일의 경로를 찾은 다음 반환된 경로에서 CreateFile을 사용합니다.

이 파일 검색 방법은 이름이 같은 여러 파일이 서로 다른 버전 번호의 어셈블리와의 연결에 의해서만 다를 수 있으므로 격리된 애플리케이션을 별도로 유지하는 데 도움이 됩니다. 운영 체제는 파일 작업 중에 사용할 올바른 파일을 찾을 수 있습니다.

LoadLibrary를 사용하여 이러한 방식으로 DLL을 로드하는 경우 DLL 자체가 특정 리소스 ID(ISOLATIONAWARE_MANIFEST_RESOURCE_ID 또는 2)에 매니페스트를 포함하는 경우를 제외하고 원래 활성화 컨텍스트가 활성 상태로 유지되는 동안 해당 DLL의 진입점(DllMain)이 호출됩니다.