loadFromContext MDA
The loadFromContext gerenciado Assistente de depuração (MDA) será ativado se um assembly é carregado no LoadFrom contexto. Essa situação pode ocorrer sistema autônomo resultado da chamada Assembly.LoadFrom ou outros métodos similares.
Sintomas
O uso de alguns métodos de carregador pode resultar em assemblies sejam carregados no LoadFrom contexto. O uso deste contexto pode resultar em comportamento inesperado para serialização, conversão e resolução de dependência.Em geral, é recomendável que assemblies seja carregado no Load contexto para evitar esses problemas. É difícil determinar qual contexto um assembly foi carregado sem este MDA.
Causa
Em geral, um assembly foi carregado para o LoadFrom Se ele foi carregado de um caminho fora de contexto do Load contexto, sistema autônomo o cache de assemblies global ou o AppDomainSetup.ApplicationBase propriedade.
Resolução
Configurar aplicativos tais que LoadFrom chamadas não são mais necessários. Você pode usar as técnicas a seguir para fazer isso:
Instale assemblies no cache global de assemblies.
Coloque os assemblies no ApplicationBase diretório para o AppDomain. No caso do domínio padrão, a ApplicationBase diretório é aquele que contém o arquivo executável que iniciou o processo. Isso pode requerer também criando um novo AppDomain Se não for conveniente mover o assembly.
Adicione um caminho de sondagem para seu arquivo de configuração (config) do aplicativo ou domínios de aplicativo secundário se assemblies dependentes no diretórios filho em relação ao executável.
Em cada caso, o código pode ser alterado para usar o Assembly.Load método.
Efeito sobre o tempo de execução
O MDA não tem qualquer efeito sobre o CLR.Ele informa o contexto que foi usado sistema autônomo resultado de uma solicitação de carga.
Saída
O MDA relata que o assembly foi carregado para o LoadFrom contexto. Ele especifica o nome simples do assembly e o caminho.Ele também sugere atenuações para evitar o uso do LoadFrom contexto.
Configuração
<mdaConfig>
<assistants>
<loadFromContext />
</assistants>
</mdaConfig>
Exemplo
O exemplo de código a seguir 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");
}
}
}