Procurando arquivos de assembly
Contextos de ativação podem ajudar o carregador a localizar arquivos de assembly. Quando o carregador procura um arquivo a ser carregado pelo nome, ele primeiro procura arquivos com o nome especificado que são referenciados por assemblies que são membros do contexto de ativação ativo no momento. Uma chamada ao SearchPath também localiza esses arquivos primeiro. Arquivos com o nome especificado e o contexto de ativação atual são encontrados e carregados antes de arquivos com o nome no diretório local ou na variável de ambiente PATH. Isso significa que, quando você cria manifestos, precisa listar todos os arquivos que planeja usar com as importações SearchPath, LoadLibrary ou estáticas.
Observe que esses arquivos não são localizados automaticamente ao usar CreateFile ou outras funções que não pesquisam arquivos. Para usar esses arquivos com CreateFile, use SearchPath primeiro para localizar o caminho para o arquivo isolado e, em seguida, use CreateFile no caminho retornado.
Esse método de pesquisa de arquivos ajuda a manter os aplicativos isolados separados porque vários arquivos com o mesmo nome só podem ser diferentes por sua associação com assemblies de números de versão diferentes. O sistema operacional pode encontrar o arquivo correto a ser usado durante as operações de arquivo.
Se uma DLL for carregada dessa maneira usando LoadLibrary, o ponto de entrada da DLL (DllMain) será chamado enquanto o contexto de ativação original for mantido ativo, exceto se a própria DLL contiver um manifesto em uma determinada ID de recurso (ISOLATIONAWARE_MANIFEST_RESOURCE_ID ou 2)