Как установить путь поиска сборки после запуска CLR? - PullRequest
1 голос
/ 08 августа 2011

Существует ли способ (функция API) задать путь поиска сборки C # после запуска хоста CLR, чтобы функция ExecuteInDefaultAppDomain () нашла его?

заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 10 августа 2011

Вы можете сделать что-то вроде этого.Как правило, событие AssemblyResolve вызывается каждый раз, когда не удается найти путь к сборке.Затем у вас есть возможность загрузить эту сборку вручную.

AppDomain.CurrentDomain.AssemblyResolve += 
  new ResolveEventHandler(CurrentDomain_AssemblyResolve);

private System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender,
  ResolveEventArgs args)
    {
      string name = args.Name;
      //You can return null if you don't know how to load this assembly
      return Assembly.LoadFrom(SomeFunction(name));
    }
0 голосов
/ 10 августа 2011

Кажется, есть только два способа для указания местоположения сборки.

К сожалению, ни один из них не работает в этом случае.Таким образом, имея возможные списки каталогов сборок и названия сборок, необходимо найти файл вручную и затем передать полный путь к функции ExecuteInDefaultAppDomain ().

Однако я до сих пор не понимаю, почему такаявозможность не предусмотрена в API CLR (или, возможно, она есть, но не документирована надлежащим образом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...