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 屬性,或目標磁片區不支援長檔名。 請參閱 Filename、 File Table、 Directory Table、 SHORTFILENAMES 屬性。 |
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 巨集指令、RemoveIniValuesAction、RemoveIniFile 資料表。 |
1.7 應用程式應該正確執行 Windows 版本檢查。 |
當您準備應用程式的安裝套件時,必須包含產品作業系統版本需求的相關資訊。 在初始化時,安裝程式會自動將特定屬性設定為目前作業系統的版本。 您的安裝程式可以使用這些安裝程式屬性來提供簡單的版本檢查。 請參閱 Properties、 Version9X 屬性、 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 屬性、 MsiSetTargetPath、 Properties、 ProgramFilesFolder 屬性。 |
2.5 應用程式應該支援正確新增/移除程式檔。 |
您可以在主控台中新增/移除程式所需的所有資訊,方法是在應用程式的 Windows Installer 套件中設定特定安裝程式屬性的值。 設定這些屬性會自動將對應的值寫入登錄中。 請參閱 Properties、 Required Properties、 ProductName 屬性、 ARPINSTALLLOCATION 屬性、 Manufacturer 屬性、 ProductVersion 屬性。 |
2.6 應用程式應該確保 Windows Installer 套件支援廣告。 |
透過組織您的應用程式進行廣告,以及包含應用程式 Windows Installer 套件中廣告所需的所有資訊,以支援廣告。 如需詳細資訊,請參閱公告、隨選公告、發佈產品、功能和元件、廣告的平臺支援、元件和功能、建議的AdvtExecuteSequence、建議的 AdvtUISequence、公告屬性、公告動作、發佈產品、功能表格、快捷方式資料表、類別表、延伸模組資料表、圖示資料表、MIME 資料表、ProgId 資料表、TypeLib 資料表、動詞資料表、MsiConfigureFeature、MsiConfigureProduct。 |
2.7 應用程式安裝套件應該確保正確的卸載支援。 |
如果您使用安裝程式來安裝應用程式,則不需要建立個別的卸載程式。 您可以撰寫可讓安裝程式安裝、卸載及修復應用程式的安裝套件。 請參閱 Windows Installer 概觀、 將應用程式組織成元件、 標準動作、 關於標準動作、 使用標準動作、 標準動作參考、 安裝應用程式、 MsiInstallProduct、 INSTALL 動作。 |
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 Installer、Resiliency、Source Resiliency、Privileged 屬性、AdminUser 屬性、系統原則、InstallValidate 動作、檔案成本、DiskCost 對話方塊、OutOfDiskSpace 屬性、OutOfNoRbDiskSpace 屬性、AllocateRegistrySpace 巨集指令、VolumeCostList 控制項、Rollback、安裝機制、 PROMPTROLLBACKCOST 屬性、DISABLEROLLBACK 屬性、EnableRollback ControlEvent。 |
4.5 應用程式應遵守系統層級群組原則設定。 |
Windows Installer 可以遵循與安裝相關的原則。 如需詳細資訊,請參閱 系統原則。 |
7.1 應用程式應該在升級至 Microsoft Windows 2000 Professional 之後繼續運作,而不重新安裝 |
安裝程式具有元件屬性,可協助準備應用程式以移轉至 Windows 2000。 如需詳細資訊,請參閱 使用可轉移元件。 |