У меня есть сайт ASP.NET, который создает CreateInstanceAndUnwrap:
var setup = new AppDomainSetup
{
ShadowCopyFiles = "true",
ShadowCopyDirectories = "true",
ApplicationBase = textPipe["host"] == "web" ? Path.GetDirectoryName(new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath) : Environment.CurrentDirectory,
ConfigurationFile = $"UnitTests/{testProject}/app.config"
};
var domain = AppDomain.CreateDomain("UnitTestDomain", null, setup);
var type = typeof(TestProxy);
var instance = (TestProxy)domain.CreateInstanceAndUnwrap(
type.Assembly.FullName,
type.FullName);
Все работает, но после запуска этого кода под IISExpress на моей рабочей станции dev я больше не могу перекомпилировать библиотеки DLL - ошибка, которую я получаю, - "Невозможно скопировать файл... потому что он используется другим процессом". Я должен остановить IISExpress перед перекомпиляцией. Это определенно будет большой проблемой в производстве, если будет необходимо остановить AppPool до каждого развертывания.
Не знаете, почему файлы заблокированы? Я использую ShadowCopyFiles и ShadowCopyDirectories, но это, похоже, не помогает.
Что я могу сделать, чтобы избежать блокировки файлов? Спасибо.