請按一下此處安裝 Silverlight*
Taiwan變更|所有的 Microsoft 網站
Microsoft
|教學短片|技術中心|最新活動時程|網路廣播教學|TechNet 論壇|訂閱電子報|訂閱 TechNet Plus|好書推薦|技術支援服務
伺服器作業系統
個人電腦作業系統
伺服器產品與技術
個人電腦產品與技術
資訊安全產品與技術
System Center 產品
Office System 產品
IT 人員常用資源
嵌入式作業系統
TechNet 在地資源
Technet 首頁 > 產品與技術 > Desktop Operating Systems > Windows XP Professional
Windows XP 應用程式相容性技術

作者:Dave Morehouse ,Todd Phillips

Microsoft Corporation

發行日期: 2001 年 10 月

摘要

本文詳細說明 Microsoft® Windows® XP 作業系統的應用程式相容性技術,然後概述如何使用和擴充這些技術來處理許多應用程式相容性問題。

感謝

Mark Carroll, Lead Program Manager, Microsoft Corporation

Bryan Chee, Product Manager, Microsoft Corporation

Mark Derbecker, Software Design Engineer, Microsoft Corporation

Ryan Marshall, Program Manager, Microsoft Corporation

Brandon McMillon, Program Manager, Microsoft Corporation 序言

一般而言,應用程式在特殊的作業系統或作業系統版本,都已高度最佳化。當使用者想要在較新版的 Microsoft® Windows® 作業系統 (例如,比原先撰寫應用程式的作業系統更新的版本) 執行他們喜好的程式時,就可能發生應用程式相容性問題。特別是當許多舊版應用程式遷移至 Windows XP 時,因為 Windows XP 是以 Windows NT® 和 Windows 2000 為基礎,而不是客戶導向的作業系統產品 (Windows 95、Windows 98 和 Windows Millennium Edition)。

因為 Windows NT 和 Windows 2000 是商務作業系統,許多家庭使用者的應用程式開發人員選擇撰寫僅用於 Windows 95 及其後續產品的程式。因此,若要將這些應用程式遷移至 Windows XP 必須要考慮到個別作業系統應用程式發展介面 (APIs) 的差異。某些差異來自 Windows XP 的新功能,有些則是因為比 Windows NT 程式碼基礎更嚴格的程式發展需求。

因為不同的原因,在舊版的 Windows 上執行的應用程式在 Windows XP 可能無法正常運作—應用程式可能需要舊版的 Windows 資料格式,或者它所需要的使用者資訊,例如個人資料夾和暫時資料夾中的資訊,必須位於特定位置或特殊格式。這些問題大部分發生於在 Windows 95、Windows 98 或 Windows Me 所寫的應用程式,但是有些在 Windows NT 或 Windows 2000 所寫的應用程式也會受影響。

若要解決這個問題並讓使用者在使用傳統應用程式時有較好的使用經驗,Microsoft 已經將應用程式相容性技術整合至 Windows XP,不管是在系統升級的過程或正常的作業期間,都能使安裝於該作業系統上的應用程式正常運作。本文首先詳細說明這些技術,然後概述如何使用和擴充這些技術,特別是 Application Compatibility Toolkit 中可使用的補充工具。

應用程式相容性技術

Windows XP 的應用程式相容性技術分為二個不同的群組:幫助您從不同的 Windows 版本升級時遷移應用程式的「遷移相容性技術」 ;以及一起支援 Windows XP 作業系統之應用程式的安裝與作業的「相容性修正檔」、「相容性模式」和「應用程式說明」。這些技術使用 "matching information"—亦即,發生相容性問題時,不管是管理相容性修正檔或者傳送主要的說明資訊給使用者,讓作業系統識別應用程式並執行正確動作的特定應用程式資訊。特定應用程式的相符資訊可能包括檔案名稱、大小、檔案內容的總和檢查碼 、檔案版本,以及類似的資料。

為何需要應用程式相容性技術

本文的序論已經列出為何需要應用程式相容性技術的一些原因:不同作業系統版本資料格式的變更,或者使用者資訊不同的位置或格式。但是還有其他原因。例如,當 Windows 報告新的版本號碼時,應用程式可能無法執行。通常在這種情況下,如果使用者可以解決這個障礙,應用程式在新的 Windows 版本可以正常運作。否則,應用程式可能會呼叫舊版的 Microsoft Win32® API 函數,而未預期的傳回具有大量資源 (例如可用磁碟空間) 電腦的值。

再者,從 Windows 95、Windows 98 或 Windows Me 升級電腦的使用者也可能會遇到相容性問題,因為在該平台撰寫的應用程式可能會使用 Windows XP 不允許的硬體存取程式設計方法。直接硬體存取會大幅降低作業系統穩定性,而且因為 Windows NT 的傳統,Windows XP 需要經由正確的管道來處理硬體存取。

但是,因為作業系統具有相同的程式碼基礎,原始在 Windows NT 或 Windows 2000 撰寫的應用程式則不大會在 Windows XP 產生嚴重的相容性問題。無論如何,某些應用程式可能是要在單一的 Windows NT 版本執行,因此需要相容性修正檔才可以在 Windows XP 正確執行。

應用程式資料庫檔案

這些技術根據—而且大部分可以區別—作業系統使用的應用程式資料庫檔案在安裝或作業時,與應用程式互動。除了載入器中快速應用程式檢查常式之外,應用程式相容性基礎結構本身位於核心作業系統元件 (例如核心) 之外。只有當載入器的初始資料庫查詢指出需要應用程式相容性基礎結構,才會呼叫。這樣就排除 APIs 本身所需的特殊相容性程式碼路徑 (可能只有一個應用程式需要)。相容性修正檔支援並非侵入性,因此不會大幅影響作業系統或安裝的應用程式的效能。

應用程式資料庫檔案如下:

  • MigDB.inf,用於支援從 Windows 95–、Windows 98–和 Windows Me–系統遷移。此檔案包含不相容或系統升級前需要使用者操作之相符資訊和旗標應用程式。
  • NTCompat.inf,包含與 MigDB 相同類型的資訊,但用於支援從 Windows NT 4.0– 和 Windows 2000–系統升級。
  • SysMain.sdb,包含相符資訊和相容性修正檔。這個檔案可以在 %Windir%\AppPatch 目錄找到。
  • AppHelp.sdb,只儲存說明訊息,以提示使用者輸入修補檔案,提供使用者下載非 Microsoft 修補檔案之 URL,或者告訴使用者哪裡可以找到詳細的資訊。這個檔案也可以在 %Windir%\AppPatch 目錄找到。

因此,MigDB 和 NTCompat 通知 Windows XP 的遷移相容性技術,而 SysMain 和 AppHelp 則通知 (且有效包含) 安裝並操作 Windows XP 運用程式時使用的相容性技術:相容性修正檔、相容性模式和應用程式說明。

遷移相容性技術

如上所概述,為了確保成功地從 Windows 95–、Windows 98–和 Windows Me–系統,或者從 Windows NT- 和 Windows 2000–系統遷移應用程式,Windows XP 個別使用 MigDB.inf 和 NTCompat.inf 資料庫檔案來識別已知的應用程式相容性問題。安裝 Windows XP 時電腦會執行相容性檢查常式,用以在安裝常式完成警告使用者任何嚴重的相容性問題。有問題的應用程式與硬體相容性資訊一起列在安裝程式產生的升級報表。這二個檔案首先包括於 Windows 2000 安裝程式,並於 Windows XP 更新。

相容性修正檔

如上所述,作業系統使用相符資訊來決定與應用程式互動的方式,特別是傳送給指定應用程式的修正檔或訊息。包含於 SysMain.sdb 的相容性修正檔 (也稱為 "shims" 或 "shim technology") 處理安裝 Windows 95、Windows 98、Windows NT 4.0 或 Windows 2000 的應用程式時產生的通用應用程式相容性問題。修正檔可以提供最常見相容性問題的簡單解答方案:例如,修正檔可以提供具有舊版作業系統認證之應用程式,以讓應用程式正常運作。他們也可以處理特定應用程式產生的特殊問題—這種修正檔會允許作業系統略過特定的警告或延遲堆積和記憶體釋放呼叫。

Windows XP 發行時 SysMain 資料庫大約包括 200 個相容性修正檔。這些修正檔處理大部分開發 Windows XP 時遇到的相容性問題。雖然軟體廠商、IT 經理、程式開發人員可以使用現有的檔案,卻無法建立新的檔案。這個限制是經過設計規劃的,其目的在於降低因允許非 Microsoft 廠商在載入程序加入可能有害的程式碼而產生的系統安全性風險。

相容性模式

相容性模式—也稱為"層"—是用來模擬應用程式之特定作業系統環境的主要相容性修正檔的集合。例如,Windows 95 相容性模式包含大約 50 個最常使用,適用於舊版 Windows 95 應用程式的修正檔,這些修正檔可以讓應用程式在 Windows XP 上正確執行。這些修正檔包括:傳回 Windows 95 版認證;精確模擬 Windows 95/Windows 98/Windows Me 堆積管理員;檔案路徑修正檔以將 Windows 95/Windows 98/Windows Me 桌面和開始功能表資料夾重新導向至 Windows XP 中 Documents 和 Settings 資料夾對等的資料夾;以及虛擬登錄以模擬 Windows 95/Windows 98/Windows Me 登錄資料。

有三種不同的模式:

  • 使用者模式 , 顯示於 Windows XP 的不同 shell 功能,例如 [相容性] 頁籤或「程式相容性精靈」(下面將會詳細討論)。使用者可以透過此介面存取五個基本模式:Windows 95、Windows 98/Windows Me、Windows NT 4.0、Windows 2000,256 色,640 x 480 螢幕解析度。
  • [系統模式 ,包括上面所列的所有使用者模式加上一些獨立軟體廠商 (ISVs)、系統管理員和其他 IT 專家可以用來控制應用程式之行為的其他選項。這些選項包括 Limited User Account security mode 與設定檔模式。 Limited User Account 模式用在當應用程式必須在特殊使用者的有限安全性環境下操作時。設定檔模式可以用於幫助應用程式判定與 Windows XP 使用者設定檔互動的方式。您可以使用 QFixApp 或 CompatAdmin 工具來存取和設定這些模式,本文下一節將詳細討論這二個工具。
  • [自訂模式 ,系統管理員或其他 IT 專家可以使用 CompatAdmin 工具 (請參閱下面的討論) 來建立特殊應用程式或應用程式集的自訂模式。建立之後,自訂模式僅適用於使用者安裝的特殊應用程式,而且可以使用該封裝中的任何特殊修正檔。

即使 Windows XP 已經套用 SysMain 的個別相容性修正檔,使用者仍然可以套用其中一種相容性模式。當套用相容性模式時,模式包含的所有修正檔都會串連並套用至執行的應用程式。當處理相容性問題而無法自 SysMain 資料庫、Microsoft 線上或軟體廠商取得修正檔時,這會是很有用的選項。

應用程式說明

當相符資訊判定使用者要執行不相容的應用程式時,Windows XP 可以呼叫相容性修正檔或在使用者介面產生 [說明] 訊息。

[應用程式說明] (最嚴苛的相容性技術) 用於產生相容性問題而無法使用修正檔來解決的情況。它的基本機制很簡單:作業系統使用 SysMain 的相符資訊來判定從 AppHelp 資料庫擷取哪些訊息來中斷有相容性問題的應用程式作業並 (或) 通知使用者。

更精確的說,[應用程式說明] 會在要初始有問題的程序時,產生中文化的說明呈現給使用者。包含問題簡短訊息的對話方塊會出現 ,並以圖示表示其嚴重性。如果是黃色三角形圖示加上驚歎號,則該應用程式未被阻擋,這表示使用者仍然可以執行該程式。


如果您的瀏覽器不支援內嵌頁框,請按一下此處以檢視個別的頁面。

圖 1 與 Windows XP 不相容之程式的應用程式說明訊息。

如果圖示是紅色停止符號 (如上圖所示),則該應用程式是被阻擋的,表示使用者無法執行該程式。按一下 [詳細資料] 按鈕可以讓使用者取得其他資訊。這些資訊顯示於 Windows XP [說明及支援中心] (如下面圖 2 所示),其中 [說明] 內容來自 Microsoft.com (如果電腦有連線),或本機 HTML Help 檔 (%Windir%\help\apps.chm)。


如果您的瀏覽器不支援內嵌頁框,請按一下此處以檢視個別的頁面。

圖 2 說明及支援中心提供阻擋問題的其他資訊。

[應用程式說明] 最常用來阻擋低階應用程式—例如,防毒和磁碟存取公用程式—這些程式並不是為了在 Windows XP 上使用而寫的。透過阻擋安裝這些應用程式,[應用程式說明] 可以用來防止危及系統整合性的嚴重問題,使系統更具穩定性,使用者使用時更為滿意。

使用和擴充應用程式相容性技術

就如上面所討論的,內建於 Windows XP 的應用程式相容性技術是根據包含 matching information、修正檔和 [說明] 內容的資料庫檔案。雖然這些檔案涵蓋大約 1,000 個最常使用的應用程式,還是有許多應用程式並未包括在內,例如自建應用程式或 niche 應用程式。對於這些狀況,Microsoft 提供了其他有助的服務和工具。

使用自動化服務更新核心資料庫檔案

Microsoft 提供了二個自動化服務來補充包含於 Windows XP 應用程式資料庫檔案的相容性資訊:

  • 動態更新 ,Windows XP 的新功能,可以幫助確保您總是使用最新的驅動程式和相容性檔案。此功能是 Windows XP 安裝程式的一部份,它會檢查表比 Windows XP 安裝 CD 中所包括之驅動程式或修補檔案路徑更新的驅動程式或修補檔案路徑。如果開始裝時電腦可以連線至網際網路,它會檢查新的驅動程式、軟體修補檔案以及其他重要的更新檔案,然後下載這些檔案,並在安裝過程中自動安裝下載的檔案。

    動態更新套件會在可以使用時貼在 Windows Update 網站。這對於在發行之後正要安裝 Windows XP 的使用者或可以使用應用程式新修正檔和 [說明] 內容的使用者特別有幫助。

  • Windows Update (Windows XP 的線上擴充) 提供產品增強 (例如 service pack、裝置驅動程式和系統安全性更新) 的中心位置。因此,如果安裝新應用程式時電腦已經連線至網際網路,Windows XP 不僅會參照本機資料庫檔案 (SysMain 和 AppHelp ),也會在線上 Windows Update 搜尋可用的相容性修正檔和其他與應用程式有關的重要資料。

使用者介面中的應用程式相容性工具

Microsoft 在 Windows XP 使用者介面包括二個應用程式相容性工具:「程式相容性精靈」 和相容性 shell 擴充。使用者可以很容易存取和使用這些工具來調整應用程式的相容性設定。這些工具設計之目的是要幫助使用 Windows XP 之後發行之應用程式的使用者,在 SysMain 資料庫沒有資訊,以及 Windows Update 無法提供服務時提供援助。

程式相容性精靈

在大型的企業環境中,使用者通常可以依賴內部技術支援群組來解決應用程式相容性的問題。但是對於家庭使用者或小型企業環境,使用者可能必須自行執行應用程式支援。「程式相容性精靈」 可以幫助您執行這項工作。

「程式相容性精靈」 是 Windows XP 說明及支援中心的一部份,它提供方便而簡易的工具讓您調整應用程式相容性設定。此精靈使用 SysMain 資料庫檔案提供的相容性修正檔和相容性模式。您可以從已知問題的應用程式清單選取應用程式、瀏覽應用程式或選取 CD-ROM 中的應用程式來選擇要修改的應用程式。

使用「程式相容性精靈」來套用相容性模式就像選擇可以正確執行應用程式之作業系統一樣簡單。「程式相容性精靈」 有四個主要選項:

  • Microsoft Windows 95
  • Microsoft Windows NT 4.0 (Service Pack 5)
  • Microsoft Windows 98/Windows Me
  • Microsoft Windows 2000

您可以選擇略過應用程式的相容性模式。下面的圖 3 顯示「程式相容性精靈」中的相容性模式選項。


如果您的瀏覽器不支援內嵌頁框,請按一下此處 以檢視個別的頁面。

圖 3 「程式相容性精靈」讓您很容易套用應用程式的相容性模式。

選取您要的選項之後,「程式相容性精靈」 會讓您設定應用程式使用的顯示設定。色彩深度和畫面解析度通常是舊版應用程式的問題來源。精靈啟用的修正檔會強制將應用程式畫面解析度設定為 640 x 480 像素,或強制將色彩深度設定為 256 色。此外,您也可以關閉應用程式的 Windows XP 視覺主題,例如有可能發生問題的教育性標題或遊戲。

您可以在精靈的最後部份測試選取的相容性設定。如果測試相容性設定時,應用程式可以正確執行,您就可以選取將它們設定為永久設定,以便在每次執行應用程式時自動呼叫這些設定。

相容性 Shell 擴充

Windows XP 的進階使用者可能會選擇更直接的方法來調整應用程式相容性的基本設定。與「程式相容性精靈」提供的相同功能可以從執行檔 [內容] 對話方塊的 [相容性] 頁籤取得,如下圖 4 所示。


如果您的瀏覽器不支援內嵌頁框,請按一下此處以檢視個別的頁面。

圖 4 相容性 shell 擴充建立每一執行檔的相容性頁籤。

外顯的相容性設定分為二個群組方塊:[相容性模式] 和 [顯示設定]。[相容性模式] 群組方塊可以讓您選取正確執行執行檔的作業系統。它會在執行執行檔時套用適當的相容性模式。[顯示設定] 群組方塊攘您套用色彩深度、畫面解析度和 Windows XP 視覺主題的變更。

建立自訂應用程式相容性資料庫的工具

除了應用程式相容性的使用者介面工具之外,還有二個工具可以讓有經驗的系統管理員和 IT 支援員工使用: QFixApp 和 CompatAdmin。這二個工具對於支援本機或線上應用程式相容性資料庫中未分類的應用程式特別有用。您可以在 Microsoft.網站 Application Compatibility Toolkit 找到這二個工具 。

QFixApp

QFixApp 是一個小型應用程式,它提供作業系統所包括之相容性修正檔資料庫的介面。使用這個工具非常簡單:您只要瀏覽至要修復的執行檔並選取要套用的相容性模式或修正檔 (請參閱圖 5)。這是手動程序—不像「程式相容性精靈」是半自動的程序—但是它可以讓您精確控制套用至應用程式的相容性修正檔。QFixApp 的另外一個好處是它不要求應用程式必須包括在已知相容性問題的應用程式清單。對於想要判定套用至自訂應用程式之正確修正檔的使用者而言,QFixApp 將非常有用。

appxp05

圖 5 QFixApp 允許確控制套用至應用程式的修正檔。

QFixApp.exe 工具可以讓您選取任何執行檔並將該檔案套用至 SysMain 資料庫(產品隨附約 200 個修正程式) 中可使用的一個或一個以上的修正程式。您可以使用 QFixApp 來識別哪些修正檔組合可以讓您的應用程式在 Windows XP 上執行。

若要使用 QFixApp,請先決定是否要使用相容性模式或相容性修正檔。 [層] 頁籤會讓您選擇相容性模式,而 [修正檔] 頁籤讓您指定個別的修正檔。通常如果您知道應用程式可以在其他 Windows 程式成功地執行,最好先使用相容性模式。選取之後,請按一下 [執行] 按鈕, QFixApp 就會測試修正檔組合。(QFixApp 使用 ShimDBC.exe 支援公用程式來測試選取的修正檔群組。)

CompatAdmin

在大型的網路環境中可能有更多應用程式需要 Windows XP 應用程式相容性技術的幫助。因為大型網路的分散特性,要讓使用者取得正確的相容性修正檔將很困難且花時間。Microsoft 提供了「相容性管理工具」(CompatAdmin) 來幫助管理者組合和散發相容性修正檔封裝。

CompatAdmin 提供了瀏覽和編輯 Windows XP 相容性修正檔資料庫的介面 (參閱圖 6 )。這個工具可以讓您選取任何執行檔並套用作業系統中可使用的一個或一個以上的修正程式。當您決定執行應用程式所需的所有修正檔之後,您可以使用 CompatAdmin 來建立封裝將這些修正檔部署至其他 Windows XP–型電腦。


如果您的瀏覽器不支援內嵌頁框,請按一下此處以檢視個別的頁面。

圖 6 CompatAdmin 工具幫助建立相容性修正檔封裝以部署至其他電腦。

CompatAdmin 包括尋找系統或網路磁碟機之"修正的" 應用程式的搜尋功能,並分析使用的修正檔群組。這樣有助於簡化建立要部署之相容性修正檔封裝的程序。CompatAdmin 包含 Microsoft 識別為要在 Windows XP 正確執行時需要一個或一個以上之相容性修正檔的應用程式清單。

CompatAdmin 支援建立和維護自訂相容性資料庫。這是 CompatAdmin 最有用的功能之一。目前的自訂資料庫會顯示於主要 CompatAdmin 檢視左下方的視窗中。當您啟動 CompatAdmin,自訂資料庫區域就會以新的空白資料庫開啟。您可以使用 [資料庫] 功能表中的選項將圖 7 所示定義的特殊修正檔或自訂相容性模式新增至自訂資料庫或從自訂資料庫移除。


如果您的瀏覽器不支援內嵌頁框,請按一下此處以檢視個別的頁面。

圖 7 CompatAdmin 包括幫助您建立自訂相容性模式的精靈。

功能表選項只在您選取自訂資料庫視窗和 (或) 有項項目時才可以啟用。一旦新增所有自訂資料庫需要的相容性修正檔之後,您可以儲存資料庫,並將資料庫散發至任何需要相容性修正檔的 Windows XP–型電腦。

摘要

Windows XP 支援許多應用程式。對於無法在新的作業系統正確執行的應用程式而言,Microsoft 提供了不同的應用程式相容性技術和使用及擴充這些技術的工具。

Windows XP 應用程式相容性技術根據資料庫檔案來識別和修正無法在 Windows XP 執行的應用程式。用於從 Windows 95、Windows 98 和 Windows Millennium 升級或用於從 Windows NT 和 Windows 2000 升級的資料庫檔案分別是 MigDB.inf 和 NTCompat.inf。 安裝 Windows XP 之後應用程式相容性所使用的資料檔案包括 SysMain.sdb (包含相符資訊與相容性修正檔) 和 AppHelp.sdb (包含警告使用者有關目前無修正檔之應用程式相容性問題的 [說明] 訊息)。

Windows XP 包括「程式相容性精靈」用以幫助使用者透過「說明及支援中心」將相容性修正檔套用至他們的應用程式。有經驗的使用者可以使用應用程式 [內容] 對話方塊的 [相容性] 頁籤來套用相容性修正檔並修改執行檔的內容。網路管理員和 IT 支援員工可以使用 QFixApp 和 CompatAdmin 工具將相容性修正檔套用至應用程式,然後將相容性修正檔散發給網路的使用者。

相關連結

如需有關 Windows XP 的最新資訊,請查閱下列網站:http://www.microsoft.com/taiwan/windowsxp/

本文為初步的文件,本文所述的軟體正式商品化發行之前,本文可能會有大幅變動。本文件包含的資訊代表了發行之日,微軟公司對所討論問題的目前看法。因為微軟公司必須順應不斷變化的市場準則,故本文件不應被解釋為微軟公司一方的承諾,微軟公司並不保證所提供的資訊在發佈之日以後的準確性。

這份文件目的僅為提供資訊。在本文件中,微軟公司不做任何明示或暗示的保證。

 

 

©2009 Microsoft Corporation. 著作權所有,並保留一切權利。 與我們連絡 |法律相關訊息 |商標 |隱私權聲明
Microsoft