簡體   English   中英

如何將較高版本的 .net 庫 (.dll) 與較低版本的二進制文件集成

[英]how to integrate .net library (.dll) from higher version with binaries from lower version

我有使用 .net framework 4 編譯的外部 .net 庫(它的提供者最近移至 .net 4)我的代碼目前在 .net framework 3.5 上運行 如何在我的應用程序中使用該外部庫? 將整個應用程序遷移到 .net 4 需要時間和測試,所以也許在未來我會這樣做,但現在,有哪些可能性?

不可能,.NET 3.5 附帶的 CLR 版本無法加載 4.0 程序集。 元數據格式已更改。 必須強制您的應用程序使用 .NET 4.0 CLR 版本。 為此, <requestedRuntime>使用 VS2010 重新編譯它,以 4.0 為目標,或者使用包含<requestedRuntime>元素的 .config 文件來請求“v4.0”。

順便說一句,.NET 4.0 的兼容性非常好。

雖然您無法直接加載 .Net DLL,但您可以將其包裝在 COM 接口中,並在您的 .Net 3.5 進程中加載​​該 COM 接口。

請參閱從基於 .NET 2 的應用程序使用基於 .NET 4 的 DLL

有關更多背景信息,Microsoft 最初在 .Net 4 中添加了In-Process Side-by-Side以更好地支持應用程序通過 COM 加載加載項的場景,並且加載項是使用各種版本的 .Net 編寫的。 在 .Net 3.5 進程中加載​​ .Net 4 DLL 的能力只是它的一個很好的副作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM