Есть ли способ загрузить сборку с диска и выполнить на ней код, не блокируя файл на диске? Я так и не понял, зачем блокировать файл, так как код будет загружен в ОЗУ и JIT-скомпилирован?
То, что вы ищете, называется теневым копированием. Вы должны создать новый AppDomain и предоставить экземпляр AppDomainSetup со свойством ShadowCopyFiles, установленным в строку true.
AppDomain
AppDomainSetup
ShadowCopyFiles
true
Этот домен приложения будет копировать сборки во временное местоположение перед их загрузкой. Подробнее см. MSDN .
Возможно, вы можете использовать Assembly.Load (byte []) для загрузки сборки.Эта сборка не имеет «контекста загрузки», вы можете загружать ее повторно.Однако справиться с этим нелегко, вы обязательно узнаете.