Giả sử tôi có hai dự án, P4 và P3, nhắm mục tiêu .net 4.0 và 3.5 tương ứng.Ứng dụng .Net của tôi có thể tham chiếu hai phiên bản khác nhau của thư viện khung .net không?
Mỗi dự án cũng có tham chiếu đến System.Data. Trong trường hợp của P4, nó sẽ được System.Data v4.0.0.0 Trong trường hợp của P3, nó sẽ được System.Data v2.0.0.0
Dự án P4 cũng tham chiếu P3.
Nếu P4 được tải và thực hiện, nó sử dụng .net 4.0 CLR. Trong thời gian chạy, tham chiếu đến System.Data dường như giải quyết với v4.0 bên trong cả P4 và P3. Tôi có thể ghi đè lên điều này bằng cách sử dụng assemblyBinding chuyển hướng, nhưng sau đó cả P4 và P3 giải quyết để v2.0.
Có cách nào tôi có thể định cấu hình ứng dụng của mình để P4 sử dụng v4.0 và P3 sử dụng v2.0 không?
Tôi đã thử điều này, nhưng không có may mắn. P3 vẫn chạy v4.0. Bạn có biết nếu cài đặt này có hiệu ứng hiển thị trong assembly được tạo cho P3 không? Ví dụ. Tệp kê khai cho biết ".ver 2: 0: 0: 0" liệu "Phiên bản cụ thể" có được đặt thành true hay không. – Rob
Có - đó là những gì tôi đã làm theo lời khuyên của Seb. Tôi cũng cần xác định useLegacyV2RuntimeActivationPolicy = "true" như một thuộc tính trong thẻ khởi động. Nếu không, nó đã bị lỗi với Ngoại lệ không khớp: System.BadImageFormatException – Rob
Tuyệt vời. Liên kết của anh là điều khiến tôi nhớ đến cấu hình nên chắc chắn chấp nhận câu trả lời của anh. – Randolpho