2014-11-17 16 views

Trả lời

11

Vì bạn đang tham chiếu đến phiên bản cao hơn. Microsoft có thể tương thích ngược, nhưng không tương thích với "tương lai". Bạn cần phải chuyển đổi toàn bộ dự án của bạn sang vesion cao hơn, để có thể sử dụng nhị phân đó.

Không biết tecnology bạn đang nói về chính xác, nhưng nếu đó asp.net, hãy xem xét rằng trong vNext bạn có thể triển khai phiên bản của riêng bạn của đám mây clr trên máy chủ. Vì vậy, bạn có thể có 2 phiên bản ứng dụng của bạn, một phiên bản nhắm mục tiêu 4.5, khác 4.0.

Introducing vNext. Lặp lại, nếu điều này liên quan đến bạn.

5

Nhắm mục tiêu dự án .NET 4.0 có thể chạy trên thời gian chạy 4.0. Nhắm mục tiêu DLL .NET 4.5 không thể.

Nếu được phép; bạn sẽ có thể xây dựng các dự án xuất hiện để làm việc trong 4.0 và không thành công khi họ cố gắng tải 4.5 thành phần.

Bạn có thể tham chiếu mọi thứ theo cách khác; như một DLL 4.0 có thể được nạp trong thời gian chạy 4.5.

Bạn sẽ cần phải yêu cầu phiên bản 4.0 của DLL từ bên thứ ba; hoặc mục tiêu .NET 4.5.

1

Miền ứng dụng sẽ chạy trong thời gian chạy 4.0 và do đó không thể tham chiếu phiên bản dotnet mới hơn, chỉ ngược lại là đúng.

4.5 là thời gian chạy mạng khác nhau do đó không thể tải 4.5 trong phiên bản cũ hơn.

Bạn phải nhớ rằng thời gian chạy sẽ cần phải diễn giải Ngôn ngữ trung gian (IL) thành mã máy. Nếu IL được tạo ra trên 4.5 một thời gian chạy 4.0 sẽ không có ý tưởng làm thế nào để giải thích nó.

2

Tạo ứng dụng bảng điều khiển ở 4.5 và sau đó thực thi cmd từ 4.0 để nhận dữ liệu bạn cần từ 4.5, có thể là giải pháp nhanh. Không ý tưởng nhưng nó thực hiện công việc :)

+0

Bạn có thể sử dụng một trong các cơ chế IPC của Windows để giao tiếp giữa các quá trình. (Ví dụ: tôi thích 'IpcServerChannel'). – xmedeko

Các vấn đề liên quan