Pesquisando arquivos de assembly

Os contextos de ativação podem ajudar o carregador a encontrar arquivos de assembly. Quando o carregador pesquisa um arquivo a ser carregado pelo nome, ele primeiro pesquisa 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 para SearchPath também localiza esses arquivos primeiro. Os arquivos com o nome especificado e o contexto de ativação atual são encontrados e carregados antes dos arquivos com o nome no diretório local ou na variável de ambiente PATH. Isso significa que, ao criar manifestos, você precisa listar todos os arquivos que planeja usar com SearchPath, LoadLibrary ou importações 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 arquivo ajuda a manter aplicativos isolados separados porque vários arquivos com o mesmo nome podem ser diferentes apenas pela 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 dessa 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)