我有一個與.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版本中編譯的程序集會改變行爲嗎?
4
A
回答
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後通過。
相關問題
- 1. 在較低的.NET版本下運行.NET 4程序
- 2. 在已編譯的.NET程序集中更改程序集版本
- 3. 在舊版本的.net上運行應用程序
- 4. 在較新版本的Ruby上運行舊的Ruby版本化應用程序
- 5. 運行Web應用程序具有較高的.NET Framework版本與服務器的.NET Framework版本比較
- 6. .NET程序集版本
- 7. Xcode編譯並運行舊版本的應用程序
- 8. .net運行時試圖使用程序集的錯誤版本
- 9. Eclipse運行舊版本的程序
- 10. Eclipse運行舊版本的Java程序
- 11. MMC .Net運行時版本
- 12. 運行較舊的iOS版本XCode
- 13. 使用舊版本的.Net
- 14. 使用版本化的.Net程序集
- 15. 如何在較低版本中運行較高版本的應用程序?
- 16. 運行與較舊的java版本的swing應用程序
- 17. ipython在運行新版本之前先運行舊版本的腳本
- 18. 您可以混合使用.Net的不同版本編譯的程序集嗎?
- 19. 針對較舊的OS X版本的編譯應用程序
- 20. 我可以將.net程序集版本翻譯成日期嗎?
- 21. 取消註冊.net程序集的舊版本
- 22. 編譯舊版本的gcc
- 23. 更改運行時編譯版本
- 24. Redmine +將較新的升級版本與較舊的升級版本合併(較舊的版本有變化)
- 25. 針對特定.NET版本編譯託管C++程序集(VS2008)
- 26. 用剛剛編譯的新版本替換舊版本的libgmp
- 27. .NET版本號(安裝程序版本)
- 28. VS運行舊版本的Silverlight應用程序而不是新版本
- 29. 在現有Ruby版本旁邊運行較新的Ruby版本
- 30. 如何在Windows Vista和更新版本(Windows 7,2008)中查看.NET程序集的程序集版本?