Tôi cũng biết điều này rất cũ, nhưng có thể giúp ai đó gặp sự cố này! Đây là một cách tôi đã tìm thấy để làm điều đó! thay vì sử dụng:
var assembly = Assembly.LoadFrom(FilePathHere);
sử dụng này:
var assembly = Assembly.Load(File.ReadAllBytes(FilePathHere));
Điều này thực sự tải "Nội dung" của file lắp ráp, thay vì các tập tin riêng của mình. Điều đó có nghĩa là KHÔNG có khóa tập tin được đặt trên tập tin lắp ráp! Vì vậy, bây giờ nó có thể được sao chép, xóa hoặc nâng cấp mà không đóng ứng dụng của bạn hoặc cố gắng sử dụng một AppDomain riêng biệt hoặc Marshaling!
PROS: Rất đơn giản để khắc phục bằng 1 Lót mã! Nhược điểm: Không thể sử dụng AppDomain, Assembly.Location hoặc Assembly.CodeBase.
Bây giờ bạn chỉ cần hủy mọi phiên bản được tạo trên assembly. Ví dụ:
assembly = null;
Nguồn
2015-12-03 22:03:17
Cố gắng không sử dụng LoadFrom, nó ở trong một ngữ cảnh khác với ngữ cảnh tải và có thể gây ra vấn đề. – user7116
Câu hỏi hay nhưng tôi không thể thấy bất kỳ câu trả lời R CLE RÀNG về cách giải quyết var assembly = Assembly.LoadFrom (FilePathHere); –