1

我有一個網站,目前運行在.NET 3.5下。我想讓它運行在4.0以下,但我使用許多第三方DLL來壓縮Bit.ly,Twitter,XML等。如果這些DLL是爲.NET 3.5(在VS2008中)創建的,它們會繼續運行在3.5以下?或者是4.0以某種方式向後兼容舊庫?斌DLL的目標不同的.NET框架可能嗎?

+0

您可能需要重新修改您的問題 - 我認爲您的意思是「它會繼續運行在4.0以下」。 – x0n 2010-09-22 17:13:23

回答

2

如果這些DLL是爲.NET 3.5(在VS2008中)創建的,它們會繼續在3.5下運行嗎?

有沒有這樣的事情在3.5下運行。 .NET程序集是針對.NET版本編譯的,然後由CLR加載並執行。 .NET 3.5使用CLR 2.0,.NET 4.0使用CLR 4.0。

因此,如果您的應用程序在CLR 4.0下運行,那些程序集將在CLR 4.0下運行,該CLR 4.0與向.NET 3.5編譯的程序集向後兼容。如果那些程序集調用非託管函數,可能會有一些警告,但否則它們應該工作得很好。

繼續嘗試運行它們。

0

如果他們是純粹的託管代碼,我會預計他們在.NET 4下工作得很好。如果他們使用非託管API,我相信可能會有一些問題,並且您可能需要重建這些庫 - 但如果他們是開源的,那應該不成問題。我知道有一個數據庫提供者,他們至少直到最近才提供.NET 3.5 DLL,而他們在.NET 4中並不能正常工作,因爲他們通過P/Invoke使用了非託管API。我不知道不幸的是 - 我傾向於避免像瘟疫一樣的P/Invoke :)

相關問題