Làm cách nào để tạo một miền ứng dụng, thêm các assembly vào nó, sau đó hủy miền ứng dụng đó? Đây là những gì tôi đã cố gắng:Tạo AppDomain tùy chỉnh và thêm các assembly vào nó
static void Main(string[] args)
{
string pathToExe = @"A:\Users\Tono\Desktop\ConsoleApplication1.exe";
AppDomain myDomain = AppDomain.CreateDomain("MyDomain");
Assembly a = Assembly.Load(System.IO.File.ReadAllBytes(pathToExe));
myDomain.Load(a.FullName); // Crashes here!
}
Tôi cũng đã cố gắng:
myDomain.Load(File.ReadAllBytes(pathToExe));
làm thế nào tôi có thể thêm một hội đồng để appdomain. Khi tôi làm điều đó tôi có thể tìm ra phương pháp thông qua phản ánh thực hiện nó và sau đó phá hủy các appdomain
Trường hợp ngoại lệ mà tôi nhận được là:
Không thể tải tập tin hoặc lắp ráp 'ConsoleApplication1, Version = 1.0.0.0, Văn hóa = trung lập, PublicKeyToken = null 'hoặc một trong các phụ thuộc của nó. Hệ thống không thể tìm thấy tệp được chỉ định.
Nó là dễ dàng để tải lắp ráp để tên miền riêng của bạn - vì vậy thay vì cố gắng đẩy lắp ráp vào miền khác xem xét việc chạy một số mã trong miền khác để tải bất kỳ lắp ráp nào bạn muốn (đừng quên rằng bạn có thể cần phải tải trước phụ thuộc hoặc thiết lập đường dẫn tìm kiếm lắp ráp chính xác). –
"Hoặc một trong những phụ thuộc của nó" là vấn đề thông thường. Sử dụng Fuslogvw.exe nếu bạn không có ý tưởng đó có thể là gì. Và sử dụng AppDomainSetup để thiết lập đường dẫn riêng đúng. –