Я пытаюсь загрузить dll в консольное приложение, а затем выгрузить его и полностью удалить файл. Проблема, с которой я столкнулся, заключается в том, что при загрузке библиотеки DLL в ее собственном домене приложений создается ссылка в родительском домене приложений, что не позволяет мне уничтожить файл библиотеки DLL, пока я полностью не закрою программу. Есть мысли о том, чтобы этот код работал?
string fileLocation = @"C:\Collector.dll";
AppDomain domain = AppDomain.CreateDomain(fileLocation);
domain.Load(@"Services.Collector");
AppDomain.Unload(domain);
Кстати, я тоже пробовал этот код, но безуспешно
string fileLocation = @"C:\Collector.dll";
byte[] assemblyFileBuffer = File.ReadAllBytes(fileLocation);
AppDomainSetup domainSetup = new AppDomainSetup();
domainSetup.ApplicationBase = Environment.CurrentDirectory;
domainSetup.ShadowCopyFiles = "true";
domainSetup.CachePath = Environment.CurrentDirectory;
AppDomain tempAppDomain = AppDomain.CreateDomain("Services.Collector", AppDomain.CurrentDomain.Evidence, domainSetup);
//Load up the temp assembly and do stuff
Assembly projectAssembly = tempAppDomain.Load(assemblyFileBuffer);
//Then I'm trying to clean up
AppDomain.Unload(tempAppDomain);
tempAppDomain = null;
File.Delete(fileLocation);