Dot-Net

.NET 4.0 程式碼可以與 .NET 2.0 程式碼互操作嗎?

  • April 15, 2010

.NET 2.0 程序集中的 .NET 4.0 程序集呼叫程式碼是否存在兼容性障礙?反之亦然?

更具體地說,我正在研究在使用基於 .NET 2.0 的第三方應用程序時升級到 Visual Studio 2010。該應用程序可以通過引用我的自定義程式碼的鉤子進行擴展。反之亦然,我的程式碼將引用應用程序的程序集。

.NET 4 中的 CLR 可以使用 .NET 2 程序集並正確使用它們。

如果您希望 .NET 2 應用程序能夠載入 .NET 4 程序集,則需要對其進行不同的配置。通過將 requiredRuntime 設置為 .NET 4 和舊版載入策略,您應該能夠強制使用 CLR 4 載入 .NET 2 應用程序,這將允許使用您的 .NET 4 程序集。

設置您的 app.config 文件以包括:

<?xml version="1.0"?>
<configuration>
 <startup useLegacyV2RuntimeActivationPolicy="true">
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
 </startup>
</configuration>

話雖如此,在這種情況下,我建議只使用 VS 2010 並以 .NET 3.5 而不是 .NET 4 為目標。這將為 CLR 2 編譯您的程序集,並完全避免此問題。

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