Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Este artigo é específico do .NET Framework. Ele não se aplica a implementações mais recentes do .NET, incluindo o .NET 6 e versões posteriores.
O loadFromContext assistente de depuração gerido (MDA) é ativado se um assembly for carregado no LoadFrom contexto. Esta situação pode ocorrer como resultado de chamadas Assembly.LoadFrom ou outros métodos semelhantes.
Sintomas
A utilização de alguns métodos de carregador pode resultar no carregamento de assemblies no LoadFrom contexto. A utilização deste contexto pode resultar em comportamentos inesperados para serialização, casting e resolução de dependências. Em geral, recomenda-se que os assemblies sejam carregados no Load contexto para evitar estes problemas. É difícil determinar em que contexto um assembly foi carregado sem este MDA.
Motivo
Geralmente, uma assembly era carregada no LoadFrom contexto se fosse carregada a partir de um caminho fora do Load contexto, como a cache global de assembly ou a AppDomainSetup.ApplicationBase propriedade.
Resolução
Configure as aplicações de modo a que LoadFrom as chamadas deixem de ser necessárias. Pode usar as seguintes técnicas para o fazer:
Instale assemblies na cache global assembly.
Coloque assemblies no ApplicationBase diretório para o AppDomain. No caso do domínio predefinido, o ApplicationBase diretório é aquele que contém o ficheiro executável que iniciou o processo. Isto também pode exigir a criação de um novo AppDomain , caso não seja conveniente mover o conjunto.
Adicione um caminho de sondagem ao ficheiro de configuração da sua aplicação (.config) ou a domínios de aplicação secundários se os assemblies dependentes estiverem em diretórios filhos relativamente ao executável.
Em cada caso, o código pode ser alterado para usar o Assembly.Load método.
Efeito no tempo de execução
A MDA não tem qualquer efeito sobre o CLR. Reporta o contexto utilizado como resultado de um pedido de carregamento.
Output
A MDA relata que a montagem foi inserida no LoadFrom contexto. Especifica o nome simples da assembleia e do caminho. Também sugere mitigações para evitar o uso do LoadFrom contexto.
Configuração
<mdaConfig>
<assistants>
<loadFromContext />
</assistants>
</mdaConfig>
Exemplo
O seguinte exemplo de código demonstra uma situação que pode ativar este MDA:
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
// The following call caused the LoadFrom context to be used
// because the assembly is loaded using LoadFrom and the path is
// located outside of the Load context probing path.
Assembly.LoadFrom(@"C:\Text\Test.dll");
}
}
}