跳到主要內容

.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的驅動程式,剩下的就是政府單位的網頁和程式應該改版了吧!!!

在Windows Server設定L2TP over IPSec VPN

簡單地說,macOS Sierra與iOS 10發表後,大家忽然發現Apple不再支援PPTP,所以一定得設定其他的VPN型態。若不要另外裝client,用L2TP是最方便的,SSL VPN雖然好,但若沒有安裝Agent要連線到任一電腦或是非網頁服務還是挺麻煩的。