Подтвердить что ты не робот

Можно ли установить путь пробной сборки без приложения app.config?

Мне нужно разместить DLL для моего приложения внутри подпапки. Можно установить эту подпапку через app.config:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <probing privatePath="Libs"/>
    </assemblyBinding>
  </runtime>

Но по некоторым причинам я не хочу использовать файл .config в этом случае. Возможно ли установить путь исследования непосредственно из кода приложения? Я уверен, что DLL всегда находятся в этой папке.

Любые идеи?

4b9b3361

Ответ 1

Путь зондирования определяется AppDomainSetup для основного домена приложения. На хосте CLR по умолчанию этот AD автоматически создается до запуска вашего кода. Единственный способ настроить его настройку - использовать файл .config, он должен иметь то же имя, что и exe. После этого он будет заморожен, любые изменения, внесенные вами в ваш код, не будут иметь эффекта.

Временные решения - создать свой собственный AD, чтобы вы могли изменить его настройку или реализовать событие AppDomain.AssemblyResolve. Ни один из них не выгодно отличается от простых решений: файла .config или просто сохранения сборки в правильном каталоге. YMMV.

Ответ 2

Вы можете просто подписаться на AppDomain.CurrentDomain.AssemblyResolve и проверить свое конкретное местоположение в своем обработчике...