[英]Is it possible to reference an assembly that targets .net 4.5 in a project that targets 4.0?
[英]Why cant a .net 4.0 project reference a 4.5 assembly?
我正在開發一個針對.NET 4.0的項目,現在我需要引用一個針對.NET 4.5構建的第三方dll。 似乎visual studio不接受這個? 為什么? VS告訴我當前上下文中不存在dll名稱。
因為您引用了更高版本。 微軟可以兼容,但不兼容“未來兼容”。 您需要將整個項目轉換為更高版本,以便能夠使用該二進制文件。
不知道你正在談論什么技術,但如果是asp.net
,請考慮在vNext中你可以在服務器上部署自己的cloud clr版本。 所以你可能有2個版本的應用程序,一個目標4.5
,其他4.0
。
介紹vNext 。 重復,如果這涉及到你。
面向.NET 4.0的項目可以在4.0運行時運行。 一個針對.NET 4.5的DLL不能。
如果允許的話; 您將能夠構建似乎在4.0中工作的項目,並在嘗試加載4.5組件時失敗。
你可以參考另一種方式; 因為4.0 DLL可以在4.5運行時加載。
您需要從第三方請求4.0版本的DLL; 或目標.NET 4.5。
應用程序域將在4.0運行時下運行,因此無法引用較新的dotnet版本,只有相反的情況才是真的。
4.5是一個不同的.net運行時,因此無法在舊版本中加載4.5。
您必須記住,運行時需要將中間語言(IL)解釋為機器代碼。 如果IL是在4.5上創建的,那么4.0運行時將不知道如何解釋它。
在4.5中創建一個控制台應用程序,然后從4.0執行cmd以從4.5獲取所需的數據,這可能是一個快速的解決方案。 不知道,但它做的工作:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.