2010-09-24 4 views
29

Можете ли вы использовать DLL .NET 4.0 в проекте 3.5?Можете ли вы использовать DLL .NET 4.0 в проекте 3.5?

+11

ли что-нибудь когда-либо вперед совместимы? – ChaosPandion

+3

Вы можете, если не возражаете создать COM-обертку/адаптер и вызывать библиотеку .NET 4 через этот http://stackoverflow.com/a/9508452/74585 –

+0

. Пожалуйста, проверьте мой другой ответ на тот же вопрос: 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

ответ

26

Nope. Вы можете использовать сборку .Net 3.5 в проекте 4.0, но не наоборот.

17

Нет, вы не можете. Сборка, собранная против .NET 4.0, может быть загружена только CLR 4.0. С другой стороны, CLR 4.0 может загружать сборки, собранные против .NET 3.5.

+0

CLR 4.0 загрузка 3.5 сборки удивила и смутила меня на днях. Поцарапал мою голову над этим. –

+1

@ Jim, почему? Если это невозможно, я даже не могу себе представить, что когда-либо перешел на .NET 4.0. Microsoft всегда делала хорошую работу по поддержанию обратной совместимости при выпуске новых версий фреймворка/CLR. –

+0

Я не знаю, почему это меня удивило. Оглядываясь назад, этого не должно было быть. Но почему-то в то время я этого не ожидал. –

0

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

Используйте нашу .NET 4 DLL через 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(); 
     } 
    } 

} 
Смежные вопросы