Em que ordem são os locais pesquisados para carregar DLLs referenciados?

StackOverflow https://stackoverflow.com/questions/49972

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu sei que o .NET framework procura por DLLs referenciados em vários locais

  • Cache de assemblagem Global (GAC)
  • Qualquer privadas caminhos adicionado para o Domínio de aplicação
  • O diretório atual do assembly em execução

Que ordem são os locais pesquisados?É a busca de uma DLL deixou se uma correspondência for encontrada ou não continuar através de todas as localizações (e se sim, como são resolvidos os conflitos)?

Também, por favor, confirmar ou negar os locais e quaisquer outros locais deixei de mencionar.

Foi útil?

Solução

Montagem de carga é um processo mais elaborado, que depende de muitos fatores diferentes, como arquivos de configuração, o publisher políticas, appdomain configurações de hosts CLR, total ou parcial, da assembleia de nomes, etc.

A versão simples é que o GAC é o primeiro e, em seguida, os caminhos particulares.O CAMINHO % nunca é usado.

É melhor usar De Ligação De Assembly Visualizador De Log (Fuslogvw.exe) para depurar qualquer assembleia problemas de carregamento.

EDITAR http://msdn.microsoft.com/en-us/library/aa720133.aspx explica o processo mais detalhadamente.

Outras dicas

Eu encontrei um artigo referenciando o artigo do MSDN sobre Ordem de pesquisa de DLL que diz

Para código gerenciado dependências, o Cache de Assemblagem Global sempre prevalece;a assembleia local de aplicação diretório de não ser pego se existe um (ou mais recente com política) cópia do GAC.

Considerando isso, eu acho que o MSDN lista está correta com um acréscimo

0. Global assembly cache

"Não é o diretório atual procurado em primeiro lugar quando o carregamento de DLLs!Essa alteração também foi feito no Windows XP SP1.O comportamento padrão agora é olhar em todos os locais do sistema em primeiro lugar, o diretório atual, e, finalmente, definido pelo usuário caminhos."

(ref. http://weblogs.asp.net/pwilson/archive/2003/06/24/9214.aspx)

O padrão de pesquisa que se tornaram ordem, que pode ser alterada pela aplicação, também é descrita no MSDN: http://msdn.microsoft.com/en-us/library/ms682586.aspx

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top