Tôi đang cố gắng tải một dll vào một ứng dụng giao diện điều khiển và sau đó dỡ bỏ nó và xóa các tập tin hoàn toàn. Vấn đề tôi gặp phải là hành động tải dll trong AppDomain của riêng nó tạo ra một tham chiếu trong Parent AppDomain do đó không cho phép tôi phá hủy tệp dll trừ khi tôi hoàn toàn tắt chương trình. Bất kỳ suy nghĩ về làm cho mã này hoạt động?Tải Assembly trong AppDomain mới mà không tải nó trong Parent AppDomain
string fileLocation = @"C:\Collector.dll";
AppDomain domain = AppDomain.CreateDomain(fileLocation);
domain.Load(@"Services.Collector");
AppDomain.Unload(domain);
BTW Tôi cũng đã thử mã này không có may mắn hoặc
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);
Liên kết này là chết! – ZioN
Vui lòng cung cấp mã số – ZioN
liên kết mới: https://bmark.us/bmark/readable/9503538d6bab80 – user1