跳到主要內容

.Net 2.0 CLR 相容性

最近,同事在測試Crystal Reports的網頁是否能升級成asp.net 2.0,結果卻相當令人失望,因為.net 2.0的CLR並不能向下相容.net 1.1的程式,所以必須買新版的Crystal Reports才能再試著改版,這其中若有API的變化還要另外考量。

在GotDotNet的 Compatibility Considerations and Version Changes裏有提到:
"Backward compatibility means an application written for the .NET Framework version 1.0 can execute on version 1.1. The .NET Framework provides the highest degree of support for backward compatibility. Most applications that work on the current version of the .NET Framework will work on the next version of the .NET Framework. "

所以1.1版應該是向下相容1.0版的程式,但對2.0版與1.1版的相容性完全查不到,只有beta版的相容性列表。而根據我實測的結果,.net 1.1的程式在.net 2.0的CLR執行時,若沒有指定CLR版本是可以執行的。

但有指定版本則會去找.net 1.1的CLR來執行,若找不到,則會跳出畫面顯示找不到1.1版的CLR。
所以一般的exe檔確實有向下相容,但問題還在後面;我另外有個舊的dll則不能執行,因為那個dll有指定版本。

而Crystal Reports這些商用軟體或元件都有把RunTime版本寫死在dll裏,自然是沒辦法使用;就算沒有指定,要把所有相關的dll找出來,放在bin裏手動reference也是很痛苦的事。這種時候,就覺得Java好很多...

留言

這個網誌中的熱門文章

自然人憑證讀卡機驅動程式

鳥毅用的是第一代的自然人憑證讀卡機,EZ100PU(後來有同事買EZmini可以讀SIM卡似乎更好),每年報稅時用一次。 本來只是要申請些政府業務,一時之間找不到光碟,沒想到在 驅動程式下載 居然看到Linux和Mac的驅動程式,剩下的就是政府單位的網頁和程式應該改版了吧!!!

DBeaver 介面語言

DBeaver是我個人頗常用的一套跨平台Database管理工具,最近升級後發現Windows版本居然變成簡體中文,而且無法切換為英文。

如何將較高版本SQL Server複製到低版本SQL Server (降級為舊版)並保留權限及資料庫圖表

一般若是要將SQL Server裡的Database轉往其他Server時,最簡單的方式就是備份(Backup)後再還原(Restore),或者是䣃離(detach)後附加(attach)。 但是很不幸地,若是由較低版本(e.g. 2008)到較高版本(e.g. 2012)要怎麼辦呢?