Mono 官方提供了一個檢測.Net Framework開發的程式是否能透過Mono跨平台的檢測工具 Mono Migration Analyzer (MoMA),這個工具可以幫忙偵測出.Net程式無法跨平台可能的潛在問題。

測試MoMA

為了這測試這個工具,我找來之前寫的小工具重複文字產生器來當實驗品。

1.首先下載 MoMA,因為MoMA是以.Net Framework寫的,因此如果已經安裝.Net Framework的話,解壓縮後即可執行。

2. 在選擇檔案那一頁中,按下「+」鈕,挑選要進行分析的檔案,由於重複文字產生器並沒有用到其他額外的.dll,只有簡單的主執行檔,因此只將StrTemplate.exe選進來。

3.選完檔案之後,按Next即可進行分析。

4.在分析概要頁中顯示找到1個平台請求呼叫的潛藏問題。

5.到底是什麼原因造成的錯誤呢?按下View Detail Report顯示詳細的報告。

6.詳細報告中指出問題出在StrTemplate.exe中的Label2Click呼叫了來自shell32.dll的ShellExecute。

7.結果很明顯,因為跨平台的程式應該與系統無關才對,但我卻在關於我中呼叫了ShellExecute這個Windows API來開啟網址,因此當然無法跨平台囉。

相關連結

Tagged : , ,

你可能會感興趣

留下迴響