Precisa conectar o evento AssemblyResolve quando DisallowApplicationBaseProbing = true

Eu preciso ligar um evento AssemblyResolve no meu AppDomain criado quando eu definir DisallowApplicationBaseProbing = true. A razão pela qual estou fazendo isso é forçar o tempo de execução a chamar o evento AssemblyResolve necessário para resolver um assembly, em vez de sondar primeiro. Dessa forma, outro desenvolvedor não pode simplesmente colar MyDllName.dll no diretório ApplicationBase e substituir o assembly que eu queria carregar no evento AssemblyResolve.

A questão de fazer isso é a seguinte ...

  class Program
  {
 static void Main()
 {
    AppDomainSetup ads = new AppDomainSetup();
    ads.DisallowApplicationBaseProbing = true;
    AppDomain appDomain = AppDomain.CreateDomain("SomeDomain", null, ads);
    appDomain.AssemblyResolve += OnAssemblyResolve;
    appDomain.DoCallBack(target);
 }

 static System.Reflection.Assembly OnAssemblyResolve(object sender, ResolveEventArgs args)
 {
    Console.WriteLine("Hello");
    return null;

 }

 private static void target()
 {
    Console.WriteLine(AppDomain.CurrentDomain);
 }
  }

O código nunca ultrapassa a linha + = OnAssemblyResolve.

Quando o código tenta executar, o novo domínio de aplicativo tenta resolver o assembly que estou executando. Como DisallowApplicationBaseProbing = true, não tem idéia de onde encontrar esse assembly. Eu tenho um problema de galinha e ovo, parece. Ele precisa resolver meu assembly para ligar o resolvedor de montagem, mas precisa do resolvedor de assembly para resolver o meu assembly.

Obrigado por toda e qualquer ajuda.

-Mike

questionAnswers(1)

yourAnswerToTheQuestion