Windows Installer 和標誌需求

Microsoft Windows 標誌認證會識別已透過獨立測試驗證的產品,以符合適用于 Windows 的應用程式規格。 此規格是由 Microsoft 與客戶和其他開發人員合作所開發,以提供建置可靠且可管理應用程式的藍圖。 符合規格的軟體廠商符合 Microsoft Windows 認證標誌的資格,然後授權標誌用於產品封裝、廣告、附屬產品和其他行銷資料。

如需您應用程式之 Windows Vista、Windows XP 和 Windows Server 2008 認證的詳細資訊,請參閱 Microsoft 合作夥伴網路

如果您要撰寫應用程式的安裝套件,您可以利用 Microsoft Windows Installer 的功能,協助滿足數個認證需求。 下表提供 Windows Installer 檔中部分認證需求相關資訊的連結。 請注意,應用程式規格中所討論的認證並非每個需求都取決於 Windows Installer。

認證的需求 請參閱下列各節
1.1 應用程式應該執行主要功能並維持穩定性。
如果您提供安裝套件,您的應用程式可以使用所有 32 位 Windows 平臺上可用的安裝程式服務。 使用安裝程式可以改善應用程式的功能和穩定性。 請參閱Windows Installer 的復原概
Windows Installer 檔的藍圖
1.3 應用程式應該支援長檔名和 UNC 路徑
安裝程式支援在 UNC 和磁片磁碟機網路之間安裝,而且一律會使用套件中提供的長檔名,除非已設定 SHORTFILENAMES 屬性,或目標磁片區不支援長檔名。 請參閱 FilenameFile TableDirectory TableSHORTFILENAMES 屬性。
1.5 應用程式不應該讀取或寫入至Win.ini、System.ini、Autoexec.bat或Config.sys。
您的安裝程式應該將專案新增至登錄 ,而不是 Win.ini、System.ini、Autoexec.bat或Config.sys。 Windows Installer 支援登錄中的資訊金鑰。 當您的應用程式使用安裝程式時,這些登錄機碼會變成安裝程式屬性。 您可以為應用程式撰寫套件,以便輕鬆檢查並設定這些索引鍵的值。 如果您的應用程式使用您不想放入登錄中的資訊,請建立私人初始化檔案,並將它放在具有應用程式可執行檔的目錄中。 您可以使用 Windows Installer 來安裝應用程式,輕鬆地管理私人.ini檔案的安裝,以及新增或移除現有.ini檔案中的資訊。 請參閱修改登錄登錄資料表群組登錄資料表RemoveRegistry Table、WriteRegistryValues 巨集指令、RemoveRegistryValues 巨集指令卸載登錄機碼屬性檔案資料表目錄資料表使用目錄資料表、IniFile資料表、RemoveIniFile 資料表IniLocator 資料表WriteIniValues 巨集指令RemoveIniValuesActionRemoveIniFile 資料表
1.7 應用程式應該正確執行 Windows 版本檢查。
當您準備應用程式的安裝套件時,必須包含產品作業系統版本需求的相關資訊。 在初始化時,安裝程式會自動將特定屬性設定為目前作業系統的版本。 您的安裝程式可以使用這些安裝程式屬性來提供簡單的版本檢查。 請參閱 PropertiesVersion9X 屬性、 VersionDatabase 屬性、 VersionNT 屬性、 WindowsBuild 屬性、 ProductCode 屬性、 ProductName 屬性、 ProductVersion 屬性、 摘要資訊資料流程修訂編號摘要 屬性。
2.1 應用程式應該使用通過驗證測試的 Windows Installer 套件進行安裝。
您可以使用一組稱為 內部一致性評估工具 - ICE的特定驗證規則,檢查您的安裝套件是否通過驗證測試。 這些 ICE 包含在 Logo.cub 檔案中。 若要符合認證資格,安裝套件在使用這些規則進行驗證時,不得產生任何錯誤。 可以接受警告,但通常應該更正。 Windows Installer SDK 包含 Logo.cub、Darice.cub 和 Mergemod.cub 檔案。 Logo.cub 檔案中的 ICE 包含在 Darice.cub 檔案中。 如果您的套件使用 Darice.cub 通過驗證,則會使用 Logo.cub 傳遞。 如需詳細資訊,請參閱 套件驗證
2.2 用來安裝應用程式的安裝套件應遵循建立元件的規則。
安裝程式元件是一部分的應用程式,一律會安裝或移除為一部分。 有一組規則可協助您決定如何將應用程式分割成元件。 如果正確定義安裝套件中的元件,安裝程式就可以安全地安裝並移除它們。 請參閱 將應用程式組織成元件元件和功能變更元件程式碼當元件規則中斷時會發生什麼情況?使用功能與元件元件資料表
2.3 應用程式安裝套件應該識別共用元件。
如果您提供將應用程式正確組織成元件的安裝套件,並在元件資料表中設定 msidbComponentAttributesSharedDllRefCount ,Windows Installer 可以使用元件金鑰檔案共用 DLL 登錄中的參考計數來追蹤共用元件。 如果您未使用安裝程式,則應用程式必須藉由遞增 SharedDLLs 登錄機碼中 DLL 的使用計數器,來追蹤其共用 DLL 的使用方式。 如需詳細資訊,請參閱 目錄資料表使用目錄資料表元件資料表。 如需 SharedDllRefCount 位的討論,請參閱 元件資料表將應用程式組織成元件
2.4 應用程式預設應安裝到 Program Files 資料夾。
在初始化時,安裝程式會將 屬性設定為 Program Files 資料夾的完整路徑。 當您準備安裝套件時,您可以指定安裝程式預設會將應用程式安裝到此資料夾。 如果您也在您的套件中包含 UI,安裝程式可以提供使用者選取另一個安裝位置的選項。 如需詳細資訊,請參閱 Directory 資料表使用目錄資料表TARGETDIR 屬性、 MsiSetTargetPathPropertiesProgramFilesFolder 屬性。
2.5 應用程式應該支援正確新增/移除程式檔。
您可以在主控台中新增/移除程式所需的所有資訊,方法是在應用程式的 Windows Installer 套件中設定特定安裝程式屬性的值。 設定這些屬性會自動將對應的值寫入登錄中。 請參閱 PropertiesRequired PropertiesProductName 屬性、 ARPINSTALLLOCATION 屬性、 Manufacturer 屬性、 ProductVersion 屬性。
2.6 應用程式應該確保 Windows Installer 套件支援廣告。
透過組織您的應用程式進行廣告,以及包含應用程式 Windows Installer 套件中廣告所需的所有資訊,以支援廣告。 如需詳細資訊,請參閱公告隨選公告、發佈產品、功能和元件廣告的平臺支援元件和功能、建議的AdvtExecuteSequence、建議的 AdvtUISequence公告屬性公告動作發佈產品、功能表格快捷方式資料表類別表延伸模組資料表圖示資料表MIME 資料表ProgId 資料表TypeLib 資料表動詞資料表MsiConfigureFeatureMsiConfigureProduct
2.7 應用程式安裝套件應該確保正確的卸載支援。
如果您使用安裝程式來安裝應用程式,則不需要建立個別的卸載程式。 您可以撰寫可讓安裝程式安裝、卸載及修復應用程式的安裝套件。 請參閱 Windows Installer 概觀將應用程式組織成元件標準動作關於標準動作使用標準動作、 標準動作參考安裝應用程式MsiInstallProductINSTALL 動作
3.1 在 Windows 2000 上,不會嘗試取代受 Windows 檔案保護保護的檔案。
Windows Installer 在 Windows 2000 上安裝基本系統檔案時,遵守 WINDOWS 檔案保護 () 。 Windows Installer 永遠不會嘗試安裝或取代受保護的檔案。 如果應用程式的自動安裝修改受保護的系統檔案,則其會將檔案還原至已驗證的檔案版本。 如需詳細資訊,請參閱 使用 Windows Installer 和 Windows 資源保護
3.2 撰寫新可轉散發元件的作者必須使用並存共用技術,以便將其元件安裝到應用程式目錄中。
Windows Installer 套件的作者可以指定安裝程式將共用檔案複製到應用程式資料夾中, (應用程式) 共用的 DLL,而不是複製到共用位置。 此私用的檔案集 (DLL) 則僅供應用程式使用。 請參閱 隔離元件
3.3 針對 Windows 2000 和 Windows 98 第二版,應用程式相依的任何並存 DLL 都必須安裝到您的應用程式目錄中:
Windows Installer 套件的作者可以指定安裝程式將共用檔案複製到應用程式資料夾中, (應用程式) 共用的 DLL,而不是複製到共用位置。 此私用的檔案集 (DLL) 則僅供應用程式使用。 請參閱 隔離元件隔離元件的安裝
4.3 如果拒絕存取,應用程式應該會正常降級。
這項需求的目標是要確保如果使用者拒絕存取資源,應用程式會以維護安全環境的方式失敗。 Windows Installer 只會在安裝期間處理許可權。 應用程式必須在執行時間處理許可權。 安裝程式可以將初始化的特定屬性設定為使用者的許可權等級,或設定為系統原則所指定的層級。 然後,您可以撰寫 Windows Installer 套件,讓安裝程式在安裝開始之前先檢查使用者的存取權限。
您可以撰寫安裝套件,讓安裝程式判斷是否有足夠的磁碟空間。 如果您為應用程式的套件撰寫使用者介面 (UI) ,它可以向使用者顯示磁碟空間不足的選項。
如果安裝失敗,安裝程式可以切換到其回復模式,並自動還原電腦的原始狀態。
如需詳細資訊,請參閱Windows InstallerResiliencySource ResiliencyPrivileged 屬性AdminUser 屬性系統原則InstallValidate 動作檔案成本DiskCost 對話方塊OutOfDiskSpace 屬性、OutOfNoRbDiskSpace 屬性AllocateRegistrySpace 巨集指令VolumeCostList 控制項、Rollback、安裝機制PROMPTROLLBACKCOST 屬性DISABLEROLLBACK 屬性EnableRollback ControlEvent
4.5 應用程式應遵守系統層級群組原則設定。
Windows Installer 可以遵循與安裝相關的原則。 如需詳細資訊,請參閱 系統原則
7.1 應用程式應該在升級至 Microsoft Windows 2000 Professional 之後繼續運作,而不重新安裝
安裝程式具有元件屬性,可協助準備應用程式以移轉至 Windows 2000。 如需詳細資訊,請參閱 使用可轉移元件