以下介紹的應用程式相容性,適用於 Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2,除此之外,文章中將 Windows XP 和 Windows Server 2003 視為同一相容層級的作業系統,為了避免文章太過繁瑣,所以文章中僅以 Windows XP 來代表 Windows XP 和 Windows Server 2003;而以 Windows Vista 或 Windows 7 來代表另一組作業系統。
也就是說,本文將說明以下兩組作業系統之間的應用程式相容性差異:
- Windows XP、Windows Server 2003
- Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2
一、應用程式相容性處理與偵錯流程
應用程式一旦發生問題,身為開發人員與 IT 技術人員,與其怪罪硬體、作業系統、…,然後等待神蹟出現,還不如正視眼前面臨的問題,用科學的方式逐一針對所有問題與可能的原因加以分析、處理,當然要能夠解決問題,你必須充份了解到相關的知識與可以協助你的工具,就算最後必須對外求援,至少你也得清楚描述出問題的發生過程,並保留相關的錯誤訊息、記錄檔、… 等等資訊,而不是一句不負責任的「我的程式不能執行,都是 Windows 錯」就交待過去。當然,單兵作戰一定無法克服所有的困難,這時候透過社群、論壇、… 等等途徑,一方面尋求協助,一方面分享自身的處理經驗,進而提升自我的能力,我想,這才是一切的核心價值。
二、相容性議題
首先,筆者將針對 Windows 7 中可能會造成應用程式相容性問題的內容,逐一條列出來,並加以詳細的解譯其發生的原因,以及因應之道。
1. 使用者帳戶控制 (User Account Control, UAC)
2. Mandatory Integrity Control (MIC)
3. Windows Resource Protection (WRP)
5. 網路
8. 資料庫的支援
9. 其它相容性問題
三、有那些偵錯工具
接下來筆者介紹一下常用的測試工具,這些工具在使用上並不會太複雜,卻可以針對應用程式相容性上提出可靠的建議,可以讓我們了解到應用程式中那些地方是不相容的,以及該如何進行處理。
3. Application Compatibility Toolkit
4. Microsoft Platform Ready (MPR)
四、結論
其實每次新版本的作業系統上市,多多少少會因為新功能或安全性 (例如 UAC) 的考量,而造成應用程式在新的作業系統上出現相容性的問題,不過在替你的應用程式宣判死刑之前,不妨試著按照本篇文章的介紹,逐一檢視一下你的應用程式,並且使用系統內建的相容性設定,以及各類型相容性工具來進行處理,相信可以解決 80% 以上的應用程式相容性問題,如果還無法解決,至少你可以知道問題出在那邊,在修改應用程式原始碼時也比較容易找到正確的位置,採取「拖」字訣或許是一種解決方案,但是身為開發人員或 IT 技術人員,正面的面對問題、分析問題、解決問題,才是最好的解決方案 ,不是嗎?