Dot-Net-2.0

從 .NET 4.0 應用程序連結 .NET 2.0 託管程序集時,使用哪個框架?

  • July 16, 2010

如果我有一個需要從 4.0 CLR 應用程序連結到的 2.0 CLR 程序集(純託管程式碼,沒有混合模式問題),那麼 2.0 程式碼是在 2.0 CLR 還是 4.0 上執行。

基本上,是否存在影響 2.0 程式碼的 4.0 重大更改的風險?

上面的答案是不正確的。您確實與完整的框架並排。.Net 2 應用程序(請注意,這意味著 EXE,而不是庫)不會自動升級到 .Net 4。

但是,如果一個 .Net 4 應用程序載入一個 .Net 2 程序集,它將被載入到同一個執行時(否則它們如何共享資訊)。.Net 2 程序集使用一種兼容模式載入到 .net 4 執行時中,該模式應該最大限度地減少更改中的破壞(主要用於 .Net 4 中的安全更改)。

.Net 2 程序集不能引用 .Net 4 程序集,因為它沒有功能。

我知道的唯一例外是,如果您從 C++ 應用程序載入 .Net 程序集。C++ 應用程序可以載入和託管兩個執行時。它可以載入一個 .Net 2 程序集和一個 .Net 4 程序集,但它們不能直接相互通信。這就是 CLR Procs 在 SQL Server 中的工作方式。您可以擁有一個 .Net 2 CLR Proc 和一個 .Net 4 CLR Proc,它們不通信,但都載入在伺服器上。

最近在 MSDN 雜誌上有一篇關於託管 .Net 框架的精彩文章,但我現在找不到。也許其他人可以發布連結。

因此,您應該能夠毫無問題地將幾乎任何 .Net 2 程序集載入到 .Net 4 執行檔中。我看到的唯一問題是安全權限。

引用自:https://stackoverflow.com/questions/3267491