Я пытаюсь загрузить сборку без блокировки файла. Эти сборки могут быть сторонними сборками, поэтому мы не обязательно имеем доступ к коду, и один или два из них используют Assembly.Location для чтения файлов из своего каталога, на которые они могут зависеть.Assembly.Load (Byte []) и Assembly.Location/Assembly.Codebase
Я знаю, что вы можете сделать это через Shadow Copying, но это настоящая боль, чтобы заставить его работать правильно, и несколько пользователей на определенных форумах рекомендовали загрузить сборку в массив байтов и использовать Assembly.Load (Byte []) перегрузки. Это отлично работает, пока одна из этих сборок не попытается получить доступ к файлу в родительском каталоге, потому что Assembly.Location возвращает пустую строку, а Assembly.Codebase возвращает местоположение приложения, загружающего сборку.
Есть ли что-нибудь, что я могу сделать, чтобы каким-либо образом установить свойства Codebase или Location сборки, которые я загружаю? В документации MSDN для Codebase и Location они определены как переопределяемые свойства - означает ли это, что я могу переопределить их из приложения-хостинга?
Возможно, теневое копирование будет лучшим решением ... – Restuta
@Restuta, я согласен. –