2013-05-04 92 views
4

我有一個與.NET 3.5編譯的程序集。我無法在.NET 4.5中重新編譯它,因爲它在仍然運行.NET 3.5的其他應用程序中使用。當我在運行.NET 4.5的應用程序中使用程序集時,程序集會被視爲在.NET 4.5而不是.NET 3.5中運行?我在.NET 4.5中都有一個WinForms應用程序和一個WebForms應用程序。如果.NET 3.5和.NET 4.5之間的行爲有變化,程序集返回4.5結果?在較新的.NET版本中運行的舊.NET版本中編譯的程序集會改變行爲嗎?

回答

5

通常.Net框架是向後兼容的,因此執行.Net 3.5中開發的程序集應該不會成爲4.5的問題。

你應該看到:Version Compatibility in the .NET Framework

在.NET Framework 4.5是與 建成與.NET Framework版本1.1,2.0,3.0,3.5應用程序的向後兼容,以及4 在其他文字,應用程序和以前版本的.NET Framework 4.5構建的.NET Framework的 版本構建的組件。

但也可能有問題,以及像文章中提到的一個:

然而,在實踐中,這種兼容性可以通過在.NET Framework和變化看似無關緊要的 打破變化 編程技術。例如,.NET Framework 4中的性能改進可能會暴露早期版本上未發生的爭用情況。同樣,使用到.NET Framework 程序集的硬編碼路徑,執行與特定的.NET Framework版本的等效比較,並通過使用反射來獲取專用 字段的值不是向後兼容的做法。另外,每個版本的.NET Framework都包含錯誤修復和可能影響某些 應用程序和組件的兼容性的安全相關更改。

對於您來說,最好的方法是確保您的測試用例在包含3.5之後的dll後通過。

相關問題