2010-09-24 29 views
29

Bạn có thể sử dụng tệp .NET 4.0 dll trong dự án 3.5 không?Bạn có thể sử dụng tệp .NET 4.0 dll trong dự án 3.5 không?

+11

là bất cứ điều gì bao giờ hết về phía trước tương thích? – ChaosPandion

+3

Bạn có thể nếu bạn không nhớ tạo trình bao bọc/bộ điều hợp COM và gọi .NET 4 DLL thông qua http://stackoverflow.com/a/9508452/74585 –

+0

Vui lòng kiểm tra câu trả lời khác của tôi cho cùng một câu hỏi: http://stackoverflow.com/questions/16038442/how-can-i-use-net-4-0-code-in-c-sharp-project-which-is-built-using-net-framewo/ 16040309 # 16040309 – Aidin

Trả lời

26

Không. Bạn có thể sử dụng một .Net 3.5 lắp ráp trong một dự án 4.0, nhưng không phải là cách khác xung quanh.

17

Không, bạn không thể. Một assembly được biên dịch với .NET 4.0 có thể được tải chỉ bởi CLR 4.0. Mặt khác, CLR 4.0 có thể tải các assembly được biên dịch dựa trên .NET 3.5.

+0

CLR 4.0 tải phiên bản 3.5 bất ngờ và làm tôi bối rối vào một ngày khác. Trầy xước đầu tôi một chút. –

+1

@Jim, tại sao? Nếu điều này là không thể tôi thậm chí không thể tưởng tượng bao giờ di cư đến. NET 4.0. Microsoft luôn thực hiện tốt công việc giữ tính tương thích ngược khi phát hành các phiên bản mới của khung công tác/CLR. –

+0

Tôi không biết tại sao nó làm tôi ngạc nhiên. Nhìn lại, nó không nên có. Nhưng vì một số lý do tại thời điểm tôi không mong đợi nó. –

0

https://code.msdn.microsoft.com/Using-a-NET-4-Based-DLL-bb141db3/

Sử dụng của chúng tôi DLL NET 4 qua COM

 
using System; 
using Net4ToNet2Adapter; 

namespace Net2Assembly 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("CLR version from EXE: {0}", Environment.Version); 
      Type myClassAdapterType = Type.GetTypeFromProgID("Net4ToNet2Adapter.MyClassAdapter"); 
      object myClassAdapterInstance = Activator.CreateInstance(myClassAdapterType); 
      IMyClassAdapter myClassAdapter = (IMyClassAdapter)myClassAdapterInstance; 
      myClassAdapter.DoNet4Action(); 
     } 
    } 

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